Användarmanual
MIDI-syntax
OnSong använder en textbaserad syntax för att uttrycka MIDI-kommandon. Medan du kan använda MIDI-händelser i metadataredigeraren, kan du också uttrycka MIDI-kommandon i text.
Avgränsade värden
Först och främst kan flera MIDI-kommandon separeras av olika tecken inklusive: ett tabbavsnitt, kommatecken, semikolon, lodrätt streck eller nyrad. Kommatecknet ä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 där kommandot ska skickas. Eftersom kanaler i MIDI börjar på noll, skulle kanal ett vara en nolla (0), kanal två en (1), osv.
Om ingen @-symbol används, skickas eller tas kommandot emot på alla kanaler.
Prefixer
Varje post i listan innehåller ett prefix. Detta prefix bestämmer vilken typ av MIDI-kommando som ska skickas. Dessa inkluderar:
- PC eller ingen prefix är en programändrings-händelse.
- N är en noteringshn-händelse
- CC är en kontrolländrings-händelse.
- SS är en låtval-händelse.
- START är ett startkommando.
- STOP är ett stoppkommando.
- CONTINUE är ett fortsättningskommando.
- F0 föregår ett SysEx-meddelande.
- WAIT implementerar en fördröjning.
Värden
Kommandots värde visas precis före @-symbolen eller i slutet av posten om ingen @ anges. Detta är värdet för programändringen, kontrolländringen, noten 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, såväl som hastighet för kontrollvärden skickas på detta sätt. Detta uttrycks genom tillägget av ett kolon i värdedelen. Delvärdets sammanhang skiljer sig åt beroende på vilken typ av MIDI-kommando som skickas:
- Programändring har delvärden som överensstämmer med programändringens MSB/LSB. Dessa värden separeras med en punkt med MSB till vänster och LSB till höger.
- Kontrolländring har värdet för kontrollen som ställs in med detta. Siffran kan vara mellan 0 och 127. Om det utelämnas antas värdet 127.
- Nothändelse har ett delvärde som relaterar till hastigheten med vilken noten ska spelas. Detta kan ställas in på ett numeriskt värde mellan 0 och 127.
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 är liknande förutom att vänstersidan av syntaxen är kontrolländrings-numret och högersidan ä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
Nu låt oss ta en titt på nothändelser. Vi vill spela C4 på kanal 8 vid 75% hastighet, vi skulle ange följande eftersom OnSong börjar räkna MIDI C0 som 0 på MIDI-notskalan:
N60:95@7, N60@7, N60:95, N60
Igen är det viktigt att komma ihåg att när värden tas bort från MIDI-syntaxen blir MIDI-uttalandet mer omfattande och mindre specifikt. Till exempel skickar den sista versionen av nothändelsen C4 vid 100% hastighet på alla kanaler.
För att implementera en fördröjning mellan andra MIDI-händelser använder du WAIT-kommandot med ett nummer. Numret kan vara ett heltalsvärde. Du kan definiera sekunder att vänta som 1–10, eller definiera som millisekunder. Följande visar hur du väntar i 2 sekunder, 10 sekunder och en halv sekund.
WAIT2, WAIT10, WAIT500