Al centro del MIDI c'è una rappresentazione della musica come eventi di nota discreti, ciascuno con un tono statico. Questo è perfetto per rappresentare la musica suonata su strumenti a tastiera. Puoi convertire qualsiasi frequenza corrispondente a una nota sulla scala temperata in un numero di nota MIDI, usando:
69+12×log2frequency440
Partendo dal presupposto che il ricevitore MIDI è calibrato per A4 = 440 Hz.
Questa rappresentazione va bene per la musica per pianoforte, ma il problema è come rappresentare le tonalità che non sono mappate sulla scala temperata (musica non occidentale, suoni non musicali) e come rappresentare le variazioni di tonalità durante la durata di una nota (glissando, vibrato).
Questo viene fatto in MIDI usando "messaggi pitch bend" che istruiscono il sintetizzatore di spostare il pitch della nota attualmente suonata di un piccolo intervallo. La maggior parte dei sintetizzatori sono calibrati per impostazione predefinita per +/- 2 semitoni nel corso dell'intervallo del messaggio di pitch bend (0 .. 16383). 8192 corrisponde a nessuna flessione del tono - il tono emesso è esattamente quello del valore della nota. La mappatura tra il valore di pitch bend e il rapporto di spostamento di frequenza è data da:
femitted_notefnote_message=2pitchbend−81924096×12
È quindi possibile ottenere la frequenza di una nota suonata da un sintetizzatore dalla seguente formula:
440×2note−6912.0+pitchbend−81924096×12
Dove note è il numero di nota MIDI a 7 bit dell'ultimo messaggio Note On ricevuto ; e pitchbend è il valore di 14 bit dell'ultimo messaggio Pitch bend ricevuto . Un sintetizzatore inizia con il suo registro di pitch bend impostato su 8192 e questo valore viene anche ripristinato durante la ricezione di un messaggio "Ripristina tutti i controller".
Facciamo l'esempio seguente. Volete esprimere un trillo di flauto con la seguente traiettoria di frequenza: 500 Hz, 510 Hz, 500 Hz, come messaggi MIDI.
Il numero della nota di base è:
round(69+12×log2(500/440))=71
Quindi invii un messaggio "note on" con nota # uguale a 71. Ciò equivale a un tono di:
440×2(71−69)/12=493.88
Qual è il tono più vicino sulla scala temperata. È necessario inviare un messaggio di pitch bend per aumentare il pitch di un fattore di:
500493.88=1.0124
E ottieni i tuoi 500 Hz. Il valore di pitch bend corrispondente è:
round(8192+4096×12×log21.0124)=9065
Per ottenere 510 Hz, il valore di pitch bend sarebbe:
round(8192+4096×12×log2510493.88)=10469
Quindi la sequenza di messaggi MIDI per 500, 510, 500 Hz sarebbe:
- NOTA 71
- PITCH BEND 9065
- ...
- CURVA DI PASSO 10469
- ...
- PITCH BEND 9065
Puoi pensare al numero di nota MIDI come alla parte "integrale" del tono; e il pitch bend come una parte "frazionaria" ridondante del pitch.