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.
autocorrelate
, yang bagi saya sepertinya adalah MIDI Note yang merupakan output. Perhatikanmidi2pitch
array dalam rumus? Jika saya benar, itu berarti bahwa saya masih belum memilikibend
nilai atau nilai aktual pitch untuk memperkirakan nilai tikungan, dan tidak ada cara untuk mendapatkannya juga kecuali saya memiliki file MIDI. Kasus sederhana dari terlalu banyak variabel dan terlalu sedikit persamaan. Bagaimana cara memperkirakan tikungan, nilai pitch aktual, danvelocity
dalam hal ini?MIDI adalah protokol yang memungkinkan (terutama) synthesizer untuk mengontrol atau dikendalikan oleh synthesizer atau komputer lainnya.
Ini adalah protokol serial yang memungkinkan untuk bertukar pesan seperti "kunci C1 atas" "kunci D4 turun" "kecepatan tombol," perubahan suara ", dll. Banyak pengendali memiliki" pitch wheel "yang merupakan joystick atau roda modulasi. Ini memungkinkan pemain untuk secara interaktif mengubah nada not saat ini dimainkan untuk secara manual membuat vibrato atau untuk terus "geser" dari satu not ke yang berikutnya. Seperti ini sering dilakukan oleh pemain gitar dengan menekuk senar fret dengan tangan kiri mereka, sering disebut pitch bending dan karenanya namanya.
Pesan lengkungan nada MIDI adalah cara untuk mengkomunikasikan berapa banyak pergeseran nada yang seharusnya terjadi pada suatu titik waktu tertentu. Sebuah synthesizer (perangkat lunak atau perangkat keras) yang menerima pesan lengkung nada diharapkan untuk mengubah nada semua nada saat ini dimainkan oleh jumlah yang diberikan.
Pesan controller memiliki argumen yang bergerak dari -8192 ke 8191 dan dalam file MIDI standar ini seharusnya mencakup kisaran dari -200 sen hingga 200 sen, di mana 1 sen adalah 1/100 semitone, yaitu rasio 2 ^ ( 1/1200) = 1.000577789506555. Contoh: untuk membuat pergeseran nada ke bawah untuk mencapai 93% dari frekuensi nominal, nilai pengontrolnya adalah
atau -5146 dalam hal ini. 0,93 adalah rasio yang Anda inginkan, 12 jumlah semiton per oktaf, 2 rentang tikungan max pitch (200 sen atau 2 semitones dalam kasus ini), dan log2 () logaritma dengan basis 2.
Namun, di sebagian besar synthesizer rentang dapat dikonfigurasi dan mungkin bukan ide yang baik untuk mengasumsikan bahwa semua synthesizer berperilaku sama.
Berikut adalah bagan konversi yang dapat membantu. http://www.elvenminstrel.com/music/tuning/reference/pitchbends.shtml
sumber