ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Användarhandbok
MIDI-syntax
OnSong använder en textbaserad syntax för att uttrycka MIDI-kommandon. Även om du kan använda MIDI-händelserna i Metadataredigeraren, kan du också uttrycka MIDI-kommandon i text.
Avgränsade värden
Först och främst kan flera MIDI-kommandon separeras med olika tecken, inklusive: ett tabulatortecken, komma, semikolon, lodrät linje eller ny rad. Kommat är den vanligaste avgränsaren. Till exempel:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Kanal
Varje post kan innehålla en @-symbol. Det numeriska värdet efter symbolen är kanalen på vilken kommandot ska skickas. Eftersom kanaler i MIDI börjar på noll, skulle kanal ett vara noll (0), kanal två en (1), osv.
Om ingen @-symbol används skickas eller tas kommandot emot på alla kanaler.
Prefix
Varje post i listan innehåller ett prefix. Detta prefix bestämmer vilken typ av MIDI-kommando som ska skickas. Dessa inkluderar:
- PC eller Inget prefix är en programmändrings-händelse.
- N är en notis-händelse
- CC är en kontrolländrings-händelse.
- SS är en låtvals-händelse.
- START är ett startkommando.
- STOP är ett stoppkommando.
- CONTINUE är ett fortsättningskommando.
- WAIT väntar en specifik tid innan fler händelser skickas.
- F0 anger ett SysEx-meddelande.
- @ anger en MIDI-global tagg.
Värden
Värdet för kommandot visas precis före @-symbolen eller i slutet av posten om ingen @ är angiven. Detta är värdet för programmändringen, kontrolländringen, notisen eller låtvalet baserat på prefixet. I fallet med SysEx-poster anges det hexadecimala värdet för SysEx direkt efter F0-prefixet som används som rubrik för alla SysEx-kommandon.
Delvärden
I vissa fall förmedlas ytterligare information i MIDI-kommandot som delvärden. Till exempel kan MSB och LSB, liksom hastigheten för kontrollavärden skickas på detta sätt. Detta uttrycks genom tillägg av ett kolon i värdedelen. Delvärdets sammanhang varierar beroende på vilken typ av MIDI-kommando som skickas:
- Programmändring har delvärden som anpassas till MSB/LSB för programmändringen. Dessa värden separeras med en punkt med MSB på vänster sida och LSB på höger sida.
- Kontrolländring har värdet för den kontroll som ställs in med detta. Siffran kan vara mellan 0 och 127. Om det utelämnas antas värdet 127. Du kan också separera flera värden med ett bindestreck för att gå igenom värden. Till exempel kommer 127-0 att låsa värdet 127 mellan på- och avstängda tillstånd.
- Notis-händelse har ett delvärde som avser hastigheten med vilken noten ska spelas. Detta kan ställas in på ett numeriskt värde mellan 0 och 127. Du kan gå igenom flera notishastigheter genom att separera dem med ett bindestreck.
Exempel
Låt oss börja med en enkel programmändring. I detta scenario använder vi programmändring 8 som också skickar en MSB på 4 och en LSB på 2 på kanal 1. Exemplet börjar med den mest komplexa variationen av detta och tar bort bankväljaren och kanalen för att bli mer bred:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Kontrolländringar är liknande förutom att den vänstra delen av syntaxen är kontrolländringsnumret och den högra delen är ett valfritt värde. Om värdet inte anges skickas 127 istället. Vi skickar Kontrolländring 106 med ett värde på 64 på kanal 3.
CC105:63@2, CC105:63. CC105@2, CC105
Låt oss nu titta på notis-händelser. Vi vill spela C4 på kanal 8 med 75 % hastighet, så skulle vi ange följande eftersom OnSong börjar räkna MIDI C0 som 0 på MIDI-notsskalan:
N60:95@7, N60@7, N60:95, N60
Återigen är det viktigt att komma ihåg att när värden tas bort från MIDI-syntaxen blir MIDI-satsen bredare och mindre specifik. Till exempel kommer den sista versionen av notis-händelsen att spela C4 med 100 % hastighet på alla kanaler.
Vi kan också försena MIDI genom att lägga till ett WAIT-kommando. Följande kommer att försena MIDI i 2 sekunder samt 500 ms (en halv sekund). Du kan ange sekunder som 1-10 sekunder eller i millisekunder.
WAIT2, WAIT500
Slutligen kan vi referera till MIDI-globaler som är förkonfigurerade listor med MIDI-händelser som kan refereras. Om du har en MIDI-global med "on" som taggen (utan citattecken), kan du referera till denna global med följande:
@on