an open-source digital signal processing and sound synthesis language
about · links · contact
pchlet - convert text-string note letter representation to octave.pitch-class (oct.pc)


Synopsis

octpc = pchlet("lettername")


Description

pchlet returns a corresponding "octave.pitch-class" (oct.pc) value for a text-string note letter representation. oct.pc is a way to use standard "western" keyboard notes without having to look up the pitch-frequency conversion. It works by arbitrarily assigning the octave of middle C to 8.00. Any semitone above middle C is added as a "hundredth" to the left of the decimal point, i.e. 8.01 is the C# just above middle C, 8.02 is the D, 8.03 is the D# (Eb), etc. up to 8.12, which is equivalent to 9.00. 9.01 is then the C# one octave and a semitone abouve midddle C.

The fun thing about this notation is that you are not limited to keyboard-notes. An octave.pitch-class specification of 7.07542389 will select a frequency that is somewhere about half-way between the G (7.07)and Ab (7.08) just below middle-C. The linear octave representation will reflect this absolute frequency value. Different RTcmix instruments will require the pitch or frequency to be specified in different ways.

In text-string note letter representation, the note letter-name is given with a capital letter ("A", "B", "C", etc.) followed by an optional "#" (sharp) or "b" (flat) modifier, and then an octave-specifier (octave "4" is middle C). See pitch-reps for more information about this method of represetation.

If the pitch-specification is invalid or malformed, octlet will return the value for middle C (8.00).

NOTE: With the exception of boost, The RTcmix conversion functions follow a pattern. The command isdivided into two halves, the one closest to the argument represent the format of the argument, and the one closest to the assignment represents the format to be returned. For example, "cpspch" is divided into "cps" and "pch". The argument is in oct.pc form ("pch") and the return value will be in cps ("cps").

The various format specifiers are:

   amp = absolute amplitude (16-bit, 0-32768)
   cps = cycles per second (Hz)
   db = decibels
   midi = midi note # (60 is middle C)
   oct = linear octaves (8.5 is halfway between octave 8.00 [middle C] and 9.00)
   pch = octave.pitch-class (oct.pc; 8.00 is middle C, 8.02 is D, 8.12 = 9.00 = C above middle C)
   let = note-letter specification ("C4" is middle C, "C#4" is C-sharp above middle C,
      "Gb5" is G-flat the octave above middle C octave. [again, see pitch-reps for more info])


Arguments

"lettername"
A text-string representing a valid note name (see above)


Examples

   pval = pchlet("G8")
   pval = pchlet("Bb3")

See Also

ampdb, boost, dbamp, cpslet, cpsmidi, cpsoct, cpspch, midipch, octcps, octlet, octmidi, octpch, pchcps, pchmidi, pchoct