Das Herzstück von MIDI ist die Darstellung von Musik als diskrete Notenereignisse, von denen jedes eine statische Tonhöhe hat. Dies ist perfekt für die Darstellung von Musik, wie sie auf Tasteninstrumenten gespielt wird. Sie können jede Frequenz, die einer Note auf der temperierten Skala entspricht, in eine MIDI-Notennummer umwandeln, indem Sie:
69 + 12 × log2fr e qu e n c y440
Unter der Annahme, dass der MIDI-Receiver für A4 = 440 Hz kalibriert ist.
Diese Darstellung ist für Klaviermusik in Ordnung, aber das Problem besteht darin, wie Tonhöhen dargestellt werden, die nicht der temperierten Skala zugeordnet sind (nicht-westliche Musik, nicht-musikalische Klänge), und wie Tonhöhenvariationen über die Dauer einer Note dargestellt werden (glissando, Vibrato).
Dies erfolgt in MIDI mithilfe von "Pitch Bend Messages", die den Synthesizer anweisen, die Tonhöhe der aktuell gespielten Note um ein kleines Intervall zu verschieben. Die meisten Synthesizer sind standardmäßig für +/- 2 Halbtöne im Verlauf des Pitch-Bend-Nachrichtenbereichs (0 .. 16383) kalibriert. 8192 entspricht keiner Tonhöhenbiegung - die emittierte Tonhöhe entspricht genau der des Notenwerts. Die Abbildung zwischen dem Pitch Bend-Wert und dem Frequenzverschiebungsverhältnis ist gegeben durch:
fe m i t t e d_ N o t efn o t e _ m e s s a ge= 2p i t c h b e n d- 81924096 × 12
Sie können also die Frequenz einer von einem Synthesizer gespielten Note aus der folgenden Formel ermitteln:
440 × 2n o t e - 6912.0+ p i t c h b e n d- 81924096 × 12
Wobei Note die 7-Bit-MIDI-Notennummer der zuletzt empfangenen Note On- Nachricht ist; und Pitchbend ist der 14-Bit-Wert der zuletzt empfangenen Pitch-Bend- Nachricht. Ein Synthesizer beginnt mit einem auf 8192 eingestellten Pitch-Bend-Register, und dieser Wert wird auch während des Empfangs einer Meldung "Alle Controller zurücksetzen" zurückgesetzt.
Nehmen wir das folgende Beispiel. Sie möchten einen Flötentriller mit der folgenden Frequenzbahn ausdrücken: 500 Hz, 510 Hz, 500 Hz als MIDI-Meldungen.
Die Basisnotennummer lautet:
r o u n d( 69 + 12 × log2( 500 / 440 ) ) = 71
Sie senden also eine "Note on" -Nachricht mit der Note # 71. Dies entspricht einer Tonhöhe von:
440 × 2( 71 - 69 ) / 12= 493,88
Welches ist die nächste Tonhöhe auf der temperierten Skala. Sie müssen eine Pitch Bend-Nachricht senden, um die Tonhöhe um den Faktor zu erhöhen:
500493,88= 1,0124
Und holen Sie sich Ihre 500 Hz. Der entsprechende Pitch Bend-Wert ist:
r o u n d( 8192 + 4096 × 12 × l o g21,0124 ) = 9065
Um Ihre 510 Hz zu erhalten, wäre der Pitch Bend-Wert:
r o u n d( 8192 + 4096 × 12 × l o g2510493,88) = 10469
Ihre Folge von MIDI-Nachrichten für 500, 510, 500 Hz wäre also:
- ANMERKUNG 71
- PITCH BEND 9065
- ...
- PITCH BEND 10469
- ...
- PITCH BEND 9065
Sie können sich die MIDI-Notennummer als "integralen" Teil der Tonhöhe vorstellen. und die Tonhöhenbiegung als redundanter "Bruchteil" der Tonhöhe.