ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Kullanıcı Kılavuzu
MIDI Söz Dizimleri
OnSong, MIDI komutlarını ifade etmek için metin tabanlı bir sözdizimi kullanır. MIDI Olayları öğesini Meta Veri Editörü'nde 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: sekme karakteri, virgül, noktalı virgül, dikey çizgi veya yeni satır. Virgül en yaygın sınırlayıcıdır. Örneğin:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Kanal
Her giriş bir @ sembolü içerebilir. Sembolden sonraki sayısal değer, komutun gönderileceği kanaldır. MIDI'de kanallar sıfırdan başladığından, birinci kanal sıfır (0), ikinci kanal bir (1) vb. olur.
@ sembolü kullanılmazsa, komut tüm kanallarda gönderilir veya alınır.
Önekler
Listedeki her giriş bir önek içerir. Bu önek gönderilecek MIDI komutunun türünü belirler. Bunlar şunları içerir:
- PC veya Önek Yok bir program değiştirme olayıdır.
- N bir nota olayıdır
- CC bir kontrol değiştirme olayıdır.
- SS bir şarkı seçme olayıdır.
- START bir başlat komutudur.
- STOP bir durdur komutudur.
- CONTINUE bir devam et komutudur.
- WAIT daha fazla olay göndermeden önce belirli bir süre bekler.
- F0 bir SysEx mesajının önüne geçer.
- @ bir MIDI genel etiketinin önüne geçer.
Değerler
Komutun değeri @ sembolünden hemen önce veya hiçbir @ verilmemişse girişin sonunda görünür. Bu, önek temel alınarak program değiştirme, kontrol değiştirme, nota veya şarkı seçme değeridir. SysEx girişleri durumunda, SysEx'in onaltılık değeri, tüm SysEx komutlarına başlık olarak kullanılan F0 önekinden hemen sonra sağlanır.
Alt Değerler
Bazı durumlarda, ek bilgiler MIDI komutunda alt değerler olarak iletilir. Örneğin, MSB ve LSB'nin yanı sıra 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ı bir bağlama sahiptir:
- Program Değiştirme program değiştirmenin MSB/LSB'si ile hizalanan alt değerlere sahiptir. Bu değerler, MSB sol tarafta ve LSB sağ tarafta olacak şekilde bir nokta ile ayrılır.
- Kontrol Değiştirme 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 kısa çizgi ile ayırabilirsiniz. Örneğin, 127-0 değeri 127 ile açık ve kapalı durumlar arasında tutacaktır.
- Nota Olayı notanın çalınması gereken hız ile ilgili bir alt değere sahiptir. Bu, 0 ile 127 arasında sayısal bir değere ayarlanabilir. Birden fazla nota hızında adım atmak için kısa çizgi ile ayırabilirsiniz.
Örnekler
Basit bir program değiştirme ile başlayalım. Bu senaryoda, program değiştirme 8'i kullanıyoruz ve aynı zamanda kanal 1'de 4'lük bir MSB ve 2'lik bir LSB gönderir. Örnek, bu değişkenin en karmaşık varyasyonundan başlar ve banka seçimi ve kanalı daha geniş hale getirmek için kaldırır:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Kontrol değişiklikleri benzerdir, ancak sözdiziminin sol tarafı kontrol değiştirme numarasıdır ve sağ tarafı isteğe bağlı bir değerdir. Değer sağlanmazsa, 127 gönderilir. Kanal 3'te 64 değeriyle Kontrol Değiştirme 106'yı göndereceğiz.
CC105:63@2, CC105:63. CC105@2, CC105
Şimdi nota olaylarına bakalım. OnSong, MIDI C0'ı MIDI nota ölçeğinde 0 olarak saymaya başladığından, 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önderir.
WAIT komutu ekleyerek MIDI'yi geciktirebiliriz. Aşağıdakiler MIDI'yi 2 saniye ve 500 ms (yarım saniye) geciktirir. Saniyeyi 1-10 saniye veya milisaniye olarak belirtebilirsiniz.
WAIT2, WAIT500
Son olarak, önceden yapılandırılmış MIDI olayları listesi olan MIDI globallerine başvurabiliriz. "on" etiketi olan bir MIDI globaliniz varsa (tırnak işareti olmadan), bu globalı aşağıdakilerle başvurabilirsiniz:
@on