Learn R Programming

seewave (version 2.2.3)

notefreq: Frequency of a muscical note

Description

This function computes the frequency of a musical note (Equal temperament)

Usage

notefreq(note, ref = 440, octave = 3)

Value

The frequency in Hz is returned.

Arguments

note

a numerical or a character vector. See Note.

ref

a numerical vector of length 1 for the reference frequency.

octave

a numerical vector of length for the octave number.

Author

Jerome Sueur

Details

The frequency is computed according to:
$$f = ref \times 2 ^{octave - 3 + \frac{note-10}{12}}$$

with:
ref = reference frequency,
octave = octave number, and
note = rank of the note along the scale.

See Also

octaves

Examples

Run this code
# Some notes frequency (use apply-like functions when dealing with character strings)
sapply(c("C", "A", "Gb"), notefreq)

# C major scale plot
n <- 1:12
freq <- notefreq(n)
names <- c("C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B") 
plot(n, freq, pch=19, cex=1.5,
     xlab = "Note name",
     ylab = "Frequency (Hz)",
     xaxt="n", las=1, main="Third octave")
axis(side=1, at=n, labels=names)
abline(h=freq, col="lightgrey")

# C major scale sound
f <- 2000 # sampling rate
s <- NULL
for (i in 1:length(freq))
  {
    tmp <- synth(d=0.5, f=f, cf=freq[i])
    s <- pastew(s, tmp, at="start", f)
  }
spectro(s, f, ovlp=75)

Run the code above in your browser using DataLab