### 11.6 Musical Notes

Calc can convert between musical notes and their associated
frequencies. Notes can be given using either scientific pitch
notation or midi numbers. Since these note systems are basically
logarithmic scales, Calc uses the `l` prefix for functions
operating on notes.

Scientific pitch notation refers to a note by giving a letter
A through G, possibly followed by a flat or sharp) with a subscript
indicating an octave number. Each octave starts with C and ends with
B and
the octave numbered 0 was chosen to correspond to the lowest
audible frequency. Using this system, middle C (about 261.625 Hz)
corresponds to the note *C* in octave 4 and is denoted
*C*_{4}. Any frequency can be described by giving a note plus an
offset in cents (where a cent is a ratio of frequencies so that a
semitone consists of 100 cents).

The midi note number system assigns numbers to notes so that
*C*_{-1} corresponds to the midi note number 0 and *G*_{9}
corresponds to the midi note number 127. A midi controller can have
up to 128 keys and each midi note number from 0 to 127 corresponds to
a possible key.

The `l s` (`calc-spn`

) [`spn`

] command converts either
a frequency or a midi number to scientific pitch notation. For
example, `500 Hz`

gets converted to
`B_4 + 21.3094853649 cents`

and `84`

to `C_6`

.

The `l m` (`calc-midi`

) [`midi`

] command converts either
a frequency or a note given in scientific pitch notation to the
corresponding midi number. For example, `C_6`

gets converted to 84
and `440 Hz`

to 69.

The `l f` (`calc-freq`

) [`freq`

] command converts either
either a midi number or a note given in scientific pitch notation to
the corresponding frequency. For example, `Asharp_2 + 30 cents`

gets converted to `118.578040134 Hz`

and `55`

to
`195.99771799 Hz`

.

Since the frequencies of notes are not usually given exactly (and are
typically irrational), the customizable variable
`calc-note-threshold`

determines how close (in cents) a frequency
needs to be to a note to be recognized as that note
(see Customizing Calc). This variable has a default value of
`1`

. For example, middle `C` is approximately
‘`261.625565302 Hz`’; this frequency is often shortened to
‘`261.625 Hz`’. Without `calc-note-threshold`

(or a value of
‘`0`’), Calc would convert `261.625 Hz`

to scientific pitch
notation `B_3 + 99.9962592773 cents`

; with the default value of
`1`

, Calc converts `261.625 Hz`

to `C_4`

.