ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Användarmanual
MIDI-syntax
OnSong använder en textbaserad syntax för att uttrycka MIDI-kommandon. Medan 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 tabb-tecken, komma, semikolon, lodrätt streck eller ny rad. Komma är den vanligaste avgränsaren. 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), etc.
Om ingen @-symbol används skickas eller tas kommandot emot på alla kanaler.
Prefixer
Varje post i listan innehåller ett prefix. Detta prefix avgör vilken typ av MIDI-kommando som ska skickas. Dessa inkluderar:
- PC eller Inget prefix är en programändringshandelse.
- N är en nothändelse
- CC är en kontrolländringshändelse.
- NRPN är ett icke-registrerat parameternummer.
- SS är en låtvalshändelse.
- START är ett startkommando.
- STOP är ett stoppkommando.
- CONTINUE är ett fortsättningskommando.
- WAIT väntar en viss tid innan fler händelser skickas.
- F0 föregår ett SysEx-meddelande.
- @ föregår en global MIDI-tagg.
Värden
Värdet på kommandot visas precis före @-symbolen eller i slutet av posten om ingen @ är angiven. Detta är värdet för programändringen, kontrolländringen, noten eller låtvalet baserat på prefixet. I fallet med SysEx-poster tillhandahålls det hexadecimala värdet för SysEx direkt efter F0-prefixet som används som huvud för alla SysEx-kommandon.
Undervärden
I vissa fall förmedlas ytterligare information i MIDI-kommandot som undervärden. Till exempel kan MSB och LSB, såväl som hastighet för kontrollvärden, skickas på detta sätt. Detta uttrycks genom att lägga till ett kolon i värdedelen. Undervärdets sammanhang är olika beroende på vilken typ av MIDI-kommando som skickas:
- Programändring har undervärden som motsvarar MSB/LSB för programändringen. Dessa värden separeras med en punkt där MSB är 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. Numret 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 stega igenom värden. Till exempel kommer 127-0 att låsa värdet 127 mellan på- och avstillstånden.
- Nothändelse har ett undervärde som relaterar till hastigheten med vilken noten ska spelas. Detta kan ställas in på ett numeriskt värde mellan 0 och 127. Du kan stega igenom flera nothastigheter genom att separera dem med ett bindestreck.
Exempel
Låt oss börja med en enkel programändring. I detta scenario använder vi programä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 omfattande:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Kontrolländringar liknar varandra förutom att vänster sida av syntaxen är kontrolländringsnumret och höger sida är ett valfritt värde. Om värdet inte tillhandahålls 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
Nu ska vi titta på nothändelser. Vi vill spela C4 på kanal 8 med 75 % hastighet, vi skulle skriva följande eftersom OnSong börjar räkna MIDI C0 som 0 på MIDI-notskalan:
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 nothändelsen att spela C4 med 100 % hastighet på alla kanaler.
Vi kan också fördröja MIDI genom att lägga till ett WAIT-kommando. Följande fördrömjar MIDI-signalen 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 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 citationstecken), kan du referera till denna global med följande:
@on