Kullanıcı Kılavuzu

MIDI Söz Dizimi

OnSong, MIDI komutlarını ifade etmek için metin tabanlı bir sözdizimi kullanır. Metadata Editörü'nde MIDI Olayları'nı kullanabilirsiniz, ancak MIDI komutlarını metinde de ifade edebilirsiniz.

Sınırlandırılmış Değerler

Her şeyden önce, birden fazla MIDI komutu çeşitli karakterlerle ayrılabilir; bunlar arasında: sekme karakteri, virgül, noktalı virgül, dikey çizgi veya yeni satır bulunur. Virgül en yaygın sınırlandırıcıdır. Örneğin:

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

Kanal

Her giriş bir @ sembolü içerebilir. Sembolün sonrasındaki sayısal değer, komutun gönderileceği kanaldır. MIDI'de kanallar sıfırdan başladığı için, birinci kanal sıfır (0), ikinci kanal bir (1) olur vb.

Eğer @ sembolü kullanılmazsa, komut tüm kanallara gönderilir veya alınır.

Ön Ekler

Listedeki her giriş bir ön ek içerir. Bu ön ek, gönderilecek MIDI komutunun türünü belirler. Bunlar arasında:

  • PC veya Ön Ek Yok bir program değişikliği olayıdır.
  • N bir nota olayıdır
  • CC bir kontrol değişikliği olayıdır.
  • NRPN kaydedilmemiş bir parametre numarasıdır.
  • SS bir şarkı seçme olayıdır.
  • START bir başlatma komutudur.
  • STOP bir durdurma komutudur.
  • CONTINUE bir devam komutudur.
  • WAIT daha fazla olay gönderilmeden önce belirli bir süre bekler.
  • F0 bir SysEx mesajından öncedir.
  • @ bir MIDI genel etiketinden öncedir.

Değerler

Komutun değeri, @ sembolünün hemen önünde veya eğer @ verilmemişse girdinin sonunda görülür. Bu, ön eke dayalı olarak program değişikliğinin, kontrol değişikliğinin, notanın veya şarkı seçiminin değeridir. SysEx girdileri söz konusu olduğunda, SysEx'in onaltılı değeri, tüm SysEx komutlarına başlık olarak kullanılan F0 ön ekinin hemen sonrasında sağlanır.

Alt Değerler

Bazı durumlarda, ek bilgiler MIDI komutunda alt değerler olarak aktarılır. Örneğin, MSB ve LSB, ayrıca kontrol değerlerinin hızı bu şekilde gönderilebilir. Bu, değer bölümüne iki nokta eklenerek ifade edilir. Alt değer, gönderilen MIDI komutunun türüne bağlı olarak farklı bağlama sahiptir:

  • Program Değişikliği program değişikliğinin MSB/LSB'si ile hizalanan alt değerlere sahiptir. Bu değerler solda MSB ve sağda LSB ile bir nokta ile ayrılır.
  • Kontrol Değişikliği bunu kullanarak ayarlanan kontrol değerine sahiptir. Sayı 0 ile 127 arasında olabilir. Atlanırsa, 127 değeri çıkarılır. Değerler arasında adım atmak için birden fazla değeri tire ile ayırabilirsiniz. Örneğin, 127-0 değeri açık ve kapalı durumlar arasında 127'yi kilitleyecektir.
  • Nota Olayı notanın çalınması gereken hızla ilgili bir alt değere sahiptir. Bu, 0 ile 127 arasında sayısal bir değere ayarlanabilir. Tireler ile birbirinden ayırarak birden fazla nota hızında adım atabilirsiniz.

Örnekler

Basit bir program değişikliğiyle başlayalım. Bu senaryoda, kanal 1'de 4'lük bir MSB ve 2'lik bir LSB de gönderen program değişikliği 8'ini kullanıyoruz. Örnek, bu değişikliğin en karmaşık varyasyonundan başlar ve banka seçimini ve kanalı kaldırarak daha geniş hale gelir:

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

Kontrol değişiklikleri benzer şekildedir, ancak sözdiziminin sol tarafı kontrol değişikliği numarası ve sağ tarafı isteğe bağlı bir değerdir. Değer sağlanmamışsa, 127 gönderilir. Kontrol Değişikliği 106'yı kanal 3'te 64 değeri ile göndereceğiz.

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

Şimdi nota olaylarına bakalım. OnSong MIDI C0'ı MIDI nota skalasında 0 olarak saymaya başladığı için, C4'ü kanal 8'de %75 hızda çalmak istiyorsak aşağıdakileri gireriz:

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

Yine, MIDI sözdiziminden değerler kaldırıldıkça, MIDI ifadesinin daha geniş ve daha az spesifik hale geldiğini hatırlamak önemlidir. Örneğin, nota olayının son versiyonu, C4'ü tüm kanallarda %100 hızda gönderecektir.

Ayrıca WAIT komutu ekleyerek MIDI'yi geciktirebiliriz. Aşağıdakiler, MIDI'yi 2 saniye kadar ve 500 ms (yarım saniye) kadar geciktirecektir. Saniyeler olarak 1-10 saniye veya milisaniye cinsinden belirtebilirsiniz.

WAIT2, WAIT500

Son olarak, önceden yapılandırılmış MIDI olay listelerinin başvurulabileceği MIDI globallerine başvurabiliriz. "on" etiketi (tırnak işareti olmadan) ile bir MIDI globaliniz varsa, o globalı aşağıdakilerle başvurabilirsiniz:

@on
OnSong 2026 — Son Güncelleme March 11, 2020