Panduan Pengguna

Sintaks MIDI

OnSong menggunakan sintaks berbasis teks untuk mengekspresikan perintah MIDI. Meskipun Anda dapat menggunakan MIDI Events di Metadata Editor, Anda juga dapat mengekspresikan perintah MIDI dalam teks.

Nilai Terbatas

Pertama dan terutama, beberapa perintah MIDI dapat dipisahkan oleh berbagai karakter termasuk: karakter tab, koma, titik koma, pipa vertikal, atau baris baru. Koma adalah pembatas yang paling umum. Sebagai contoh:

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

Saluran

Setiap entri dapat berisi simbol @. Nilai numerik setelah simbol adalah saluran di mana perintah akan dikirim. Karena saluran di MIDI dimulai dari nol, saluran satu akan menjadi nol (0), saluran dua satu (1), dan seterusnya.

Jika tidak ada simbol @ yang digunakan, perintah dikirim atau diterima di semua saluran.

Prefiks

Setiap entri dalam daftar berisi prefiks. Prefiks ini menentukan jenis perintah MIDI apa yang akan dikirim. Ini termasuk:

  • PC atau Tidak Ada Prefiks adalah acara perubahan program.
  • N adalah acara catatan
  • CC adalah acara perubahan kontrol.
  • NRPN adalah nomor parameter yang tidak terdaftar.
  • SS adalah acara pemilihan lagu.
  • START adalah perintah mulai.
  • STOP adalah perintah berhenti.
  • CONTINUE adalah perintah lanjutkan.
  • WAIT menunggu jumlah waktu tertentu sebelum mengirim lebih banyak acara.
  • F0 mengawali pesan SysEx.
  • @ mengawali tag global MIDI.

Nilai

Nilai perintah muncul tepat sebelum simbol @ atau di akhir entri jika tidak ada @ yang diberikan. Ini adalah nilai perubahan program, perubahan kontrol, catatan, atau pemilihan lagu berdasarkan prefiks. Dalam kasus entri SysEx, nilai heksadesimal dari SysEx disediakan langsung setelah prefiks F0 yang digunakan sebagai header untuk semua perintah SysEx.

Subnilai

Dalam beberapa kasus, informasi tambahan dikomunikasikan dalam perintah MIDI sebagai subnilai. Misalnya, MSB dan LSB, serta kecepatan nilai kontrol dapat dikirim dengan cara ini. Ini diekspresikan melalui penambahan titik dua di bagian nilai. Subnilai memiliki konteks berbeda tergantung pada jenis perintah MIDI yang dikirim:

  • Perubahan Program memiliki subnilai yang selaras dengan MSB/LSB dari perubahan program. Nilai-nilai ini dipisahkan oleh titik dengan MSB di sebelah kiri dan LSB di sebelah kanan.
  • Perubahan Kontrol memiliki nilai kontrol yang ditetapkan menggunakan ini. Angka dapat berkisar antara 0 dan 127. Jika dihilangkan, nilai 127 disimpulkan. Anda juga dapat memisahkan beberapa nilai dengan tanda hubung untuk melangkah melalui nilai. Misalnya, 127-0 akan mengunci nilai 127 antara status hidup dan mati.
  • Acara Catatan memiliki subnilai yang berhubungan dengan kecepatan di mana catatan harus diputar. Ini dapat diatur ke nilai numerik antara 0 dan 127. Anda dapat melangkah melalui beberapa kecepatan catatan dengan memisahkannya dengan tanda hubung.

Contoh

Mari kita mulai dengan perubahan program sederhana. Dalam skenario ini kami menggunakan perubahan program 8 yang juga mengirim MSB 4 dan LSB 2 di saluran 1. Contoh dimulai dengan variasi paling kompleks dari ini dan menghapus pemilihan bank dan saluran untuk menjadi lebih luas:

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

Perubahan kontrol serupa kecuali bahwa sisi kiri sintaks adalah nomor perubahan kontrol dan sisi kanan adalah nilai opsional. Jika nilai tidak disediakan, 127 dikirim sebagai gantinya. Kami akan mengirim Perubahan Kontrol 106 dengan nilai 64 di saluran 3.

CC105:63@2, CC105:63. CC105@2, CC105

Sekarang mari kita lihat acara catatan. Kami ingin memutar C4 di saluran 8 dengan kecepatan 75%, kami akan memasukkan yang berikut karena OnSong mulai menghitung C MIDI0 sebagai 0 pada skala catatan MIDI:

N60:95@7, N60@7, N60:95, N60

Sekali lagi, penting untuk diingat bahwa saat nilai dihapus dari sintaks MIDI, pernyataan MIDI menjadi lebih luas dan kurang spesifik. Misalnya, versi terakhir dari acara catatan akan mengirim C4 dengan kecepatan 100% di semua saluran.

Kami juga dapat menunda MIDI dengan menambahkan perintah WAIT. Yang berikut akan menunda MIDI selama 2 detik serta 500 ms (setengah detik). Anda dapat menentukan detik sebagai 1-10 detik atau dalam milidetik.

WAIT2, WAIT500

Terakhir, kami dapat mereferensikan global MIDI yang merupakan daftar perintah MIDI yang telah dikonfigurasi sebelumnya yang dapat direferensikan. Jika Anda memiliki global MIDI dengan "on" sebagai tag (tanpa tanda kutip), maka Anda dapat mereferensikan global itu dengan yang berikut:

@on
OnSong 2026 — Terakhir Diperbarui pada March 11, 2020