Mozzi  version v1.1.0
sound synthesis library for Arduino
Midi

Midi note number to frequency conversions. More...

Functions

float mtof (float midival)
 Converts midi note number to frequency. More...
 
Q16n16 Q16n16_mtof (Q16n16 midival_fractional)
 Converts midi note number to frequency with speed and accuracy. More...
 
int mtof (uint8_t midi_note)
 A good choice if you're using whole note values, want speed and simplicity, and accuracy isn't important. More...
 
int mtof (int midi_note)
 A good choice if you're using whole note values, want speed and simplicity, and accuracy isn't important. More...
 

Detailed Description

Midi note number to frequency conversions.

Useful if you like playing notes in tune.

Function Documentation

◆ mtof() [1/3]

float mtof ( float  midival)

Converts midi note number to frequency.

Caution: this can take up to 400 microseconds to run. It can seriously mess up the audio output if you use it in updateControl() or updateAudio(). This is a good choice in setup(), or where you need precise midi-pitch conversion and aren't doing much other audio calculation.

Note
Beware this returns an invalid result for midi note 0.
Timing: ~350 us
Parameters
midivala midi note number, 1.0 or greater. Like the mtof object in Pd, midi values can have fractions.
Returns
the frequency represented by the input midi note number..

Definition at line 18 of file mozzi_midi.cpp.

◆ mtof() [2/3]

int mtof ( uint8_t  midi_note)

A good choice if you're using whole note values, want speed and simplicity, and accuracy isn't important.

Parameters
midi_notea midi note number.
Returns
an integer approximation of the midi note's frequency.

Definition at line 156 of file mozzi_midi.cpp.

◆ mtof() [3/3]

int mtof ( int  midi_note)

A good choice if you're using whole note values, want speed and simplicity, and accuracy isn't important.

Parameters
midi_notea midi note number.
Returns
an integer approximation of the midi note's frequency.

Definition at line 166 of file mozzi_midi.cpp.

◆ Q16n16_mtof()

Q16n16 Q16n16_mtof ( Q16n16  midival_fractional)

Converts midi note number to frequency with speed and accuracy.

Q16n16_mtofLookup() is a fast alternative to (float) mtof(), and more accurate than (uint8_t) mtof(), using Q16n16 fixed-point format instead of floats or uint8_t values. Q16n16_mtof() uses cheap linear interpolation between whole midi-note frequency equivalents stored in a lookup table, so is less accurate than the float version, mtof(), for non-whole midi values.

Note
Timing: ~8 us.
Parameters
midival_fractionala midi note number in Q16n16 format, for fractional values.
Returns
the frequency represented by the input midi note number, in Q16n16 fixed point fractional integer format, where the lower word is a fractional value.

Definition at line 132 of file mozzi_midi.cpp.