Pada intinya MIDI adalah representasi musik sebagai peristiwa catatan diskrit, masing-masing memiliki nada statis. Ini sempurna untuk merepresentasikan musik yang dimainkan pada instrumen keyboard. Anda dapat mengubah frekuensi apa pun yang terkait dengan catatan pada skala temper menjadi nomor catatan MIDI, menggunakan:
69 + 12 × log2fr e qu e n c y440
Dengan asumsi bahwa penerima MIDI dikalibrasi untuk A4 = 440 Hz.
Representasi ini baik untuk musik piano, tetapi masalahnya adalah bagaimana merepresentasikan nada yang tidak dipetakan ke skala temper (musik non-barat, suara non musik), dan bagaimana merepresentasikan variasi nada selama durasi not (glissando, vibrato).
Ini dilakukan dalam MIDI dengan menggunakan "pesan lengkungan nada" yang menginstruksikan synthesizer untuk menggeser nada not yang saat ini diputar dengan interval kecil. Sebagian besar synthesizer dikalibrasi secara default untuk +/- semitones selama rentang pesan pitch bend (0 .. 16383). 8192 sesuai dengan no pitch bending - pitch yang dipancarkan persis dengan nilai not. Pemetaan antara nilai lengkungan pitch dan rasio pergeseran frekuensi diberikan oleh:
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
Dengan demikian Anda bisa mendapatkan frekuensi not yang dimainkan oleh syntheszier dari rumus berikut:
440 × 2n o t e - 6912.0+ p i t c h b e n d- 81924096 × 12
Di mana note adalah nomor note MIDI 7-bit dari pesan Note On yang terakhir diterima ; dan pitchbend adalah nilai 14-bit dari pesan Pitch bend yang terakhir diterima . Sebuah synthesizer dimulai dengan register pitch bendnya diatur ke 8192, dan nilai ini juga diatur ulang selama penerimaan pesan "Reset semua pengontrol".
Mari kita ambil contoh berikut ini. Anda ingin mengekspresikan flute trill dengan lintasan frekuensi berikut: 500 Hz, 510 Hz, 500 Hz, sebagai pesan MIDI.
Nomor catatan dasar adalah:
r o u n d( 69 + 12 × log2( 500 / 440 ) ) = 71 .
Jadi, Anda mengirim pesan "note on" dengan note # sama dengan 71. Ini setara dengan nada:
440 × 2( 71 - 69 ) / 12= 493,88
Yang merupakan nada terdekat pada skala temper. Anda perlu mengirim pesan lengkungan pitch untuk menaikkan pitch dengan faktor:
500493.88= 1.0124
Dan dapatkan 500 Hz Anda. Nilai lengkungan pitch yang sesuai adalah:
r o u n d( 8192 + 4096 × 12 × l o g21,0124 ) = 9065
Untuk mendapatkan 510 Hz Anda, nilai pitch bend adalah:
r o u n d( 8192 + 4096 × 12 × l o g2510493.88) = 10469
Jadi urutan pesan MIDI Anda untuk 500, 510, 500 Hz adalah:
- CATATAN 71
- PITCH BEND 9065
- ...
- PITCH BEND 10469
- ...
- PITCH BEND 9065
Anda dapat menganggap nomor not MIDI sebagai bagian "integral" dari pitch; dan pitch bend sebagai bagian "fraksional" yang berlebihan dari pitch.