General MIDI atau GM adalah spesifikasi standar untuk alat musik elektronik yang merespon terhadap pesan MIDI. GM dikembangkan oleh MIDI Manufacturers Association (MMA) dari Amerika Serikat dan Japan MIDI Standards Commitee (JMSC) dan pertama kali diterbitkan pada tahun 1991. Spesifikasi resminya tersedia dalam bahasa Inggris dari MMA, dibundel bersama dengan spesifikasi MIDI 1.0, dan dalam bahasa Jepang dari Association of Musical Electronics Industry (AMEI).
GM memberlakukan beberapa persyaratan di luar spesifikasi MIDI 1.0 yang lebih abstrak. Sementara MIDI 1.0 dengan sendirinya menyediakan protokol komunikasi yang memastikan bahwa instrumen yang berbeda dapat beroperasi pada tingkat dasar (misalnya, menekan tombol pada kibor MIDI akan menyebabkan modul suara MIDI yang terpasang memainkan not musik), GM pergi lebih jauh dalam dua cara: GM membutuhkan bahwa semua instrumen yang kompatibel dengan GM memenuhi fitur, seperti mampu memainkan setidaknya 24 not secara bersamaan (polifoni), dan itu menempelkan interpretasi tertentu untuk banyak parameter dan pesan-pesan kontrol yang dibiarkan tidak ditentukan dalam spesifikasi MIDI 1.0, seperti mendefinisikan suara instrumen untuk masing-masing 128 nomor program yang mungkin.
Instrumen GM diperlukan untuk dapat:
Memungkinkan 24 suara untuk menjadi aktif secara bersamaan (termasuk setidaknya 16 suara melodi dan 8 suara perkusi)
Menanggapi percepatan not
Mendukung semua 16 saluran secara bersamaan (dengan saluran 10 dicadangkan untuk perkusi)
Dukungan polifoni (beberapa not simultan) pada masing-masing saluran
Interpretasi parameter
Instrumen GM juga harus mematuhi konvensi berikut untuk peristiwa program dan pengendali:
Peristiwa Program Change
Dalam MIDI, suara instrumen atau "program" untuk masing-masing dari 16 saluran MIDI yang mungkin dipilih dengan pesan Program Change, yang memiliki parameter Nomor Program. Tabel berikut menunjukkan suara instrumen yang sesuai untuk masing-masing 128 Nomor Program yang mungkin untuk GM saja. Ada 128 nomor program. Nomor-nomor dapat ditampilkan sebagai nilai 1 sampai 128, atau 0 sampai 127. Penomoran 0-127 biasanya hanya digunakan secara internal oleh penyintesis; sebagian besar perangkat MIDI, digital audio workstation dan MIDI sequencer menampilkan Nomor Program seperti yang ditunjukkan pada tabel (1-128).
Dalam berkas MIDI standar GM, saluran 10 dicadangkan untuk instrumen perkusi saja. Not yang direkam pada saluran 10 selalu menghasilkan suara perkusi ketika dikirim ke kibor atau modul synth yang menggunakan standar GM. Masing-masing 128 nomor not yang berbeda berkorelasi dengan instrumen perkusi yang unik, tapi tekanan suara tidak relatif terhadap nomor not.
Jika berkas MIDI diprogram untuk protokol General MIDI, maka hasil yang dapat diprediksi, tapi kejernihan suara dapat bervariasi tergantung pada kualitas penyintesis GM:
Dalam MIDI, parameter yang dapat disesuaikan untuk masing-masing dari 16 saluran MIDI dapat diatur dengan pesan Control Change, yang memiliki parameter Nomor Kontrol dan Nilai Kontrol. GM juga menentukan operasi yang harus dilakukan oleh beberapa Nomor Kontrol:[1]
1 Roda modulasi
7 Volume
10 Pan
11 Ekspresi
64 Sustain pedal
100 RPN LSB
101 RPN MSB
121 Semua pengendali off
123 Semua not off
RPN
GM mendefinisikan beberapa Parameter Terdaftar (Registered Parameters), yang bertindak seperti Controller tapi ditangani dengan cara yang berbeda. Dalam MIDI, setiap Parameter Terdaftar diberikan Nomor Parameter Terdaftar atau RPN. Parameter yang terdaftar biasanya disebut RPN untuk jangka pendek.
Pengaturan Parameter yang Terdaftar memerlukan pengiriman (angka desimal):
dua pesan Control Change menggunakan Nomor Kontrol 101 dan 100 untuk memilih parameter, diikuti oleh
sejumlah pesan Data Entry yang terdiri dari satu atau dua bita (MSB = Controller #6, LSB = Controller #38), dan akhirnya
pesan "Akhir RPN"
Nomor Parameter Terdaftar (RPNs) berikut ini adalah standar [2] (parameter ditentukan oleh pasangan RPN LSB/MSB dan nilai ditetapkan oleh pasangan Entri Data LSB/MSB):
0,0 kisaran Pitch bend
1,0 Channel Fine tuning
2,0 Channel Coarse tuning
Misalnya: Urutan kontrol RPN untuk mengatur tuning kasar untuk A440 (parm 2, nilai 64):
101:0, 100:2, 6:64, 101:127, 100:127
Pesan Sistem Eksklusif
Dua pesan GM Sistem Eksklusif ("SysEx") yang didefinisikan: satu untuk mengaktifkan dan menonaktifkan modus General MIDI (untuk penyintesis yang juga memiliki modus non-GM); dan yang lain untuk mengatur volume induk penyintesis.
Ekstensi GS
Superset dari standar General MIDI yang menambahkan beberapa ekstensi eksklusif. Penambahan paling menonjol adalah kemampuan untuk mengalamatkan beberapa bank program (suara instrumen) dengan menggunakan sepasang tambahan dari kontroler Bank Select untuk menentukan hingga 16384 "variasi" suara (cc#0 adalah Bank Select MSB, dan cc#32 adalah Bank Select LSB). Fitur-fitur lain yang paling penting adalah 9 Drum kit dengan tambahan 14 suara drum masing-masing, Kit Perkusi simultan - sampai dengan 2 (Saluran 10/11), pesan Control Change untuk mengendalikan tingkat pengiriman blok efek suara (cc#91-94), memasukkan parameter tambahan (cc#98-101), portamento, sostenuto, pedal lunak (cc no. 65-67), dan pesan SysEx khusus untuk menetapkan berbagai parameter mesin synth.
GS diperkenalkan pada tahun 1991 dengan lini Roland Sound Canvas, yang juga modul penyintesis pertama dari Roland yang mendukung General MIDI.
General MIDI Level 2
Pada tahun 1999, standar resmi GM telah diperbarui untuk menyertakan pengontrol, patch, RPNs dan pesan SysEx yang lebih banyak, dalam upaya untuk merekonsiliasi ekstensi Roland GS dan Yamaha XG yang tidak kompatibel dan berhak milk. Berikut adalah gambaran singkat dari perubahan GM2 dalam perbandingan untuk GM/GS:
Jumlah not - minimal 32 not simultan
Kit perkusi - sampai dengan 2 (Saluran 10/11)
Hingga 16384 bank variasi diperbolehkan, masing-masing berisi suatu versi dari 128 Suara Melodi (penggunaan yang tepat dari bank-bank tersebut adalah tergantung produsen.)