ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Brukerhåndbok
MIDI-syntaks
OnSong bruker en tekstbasert syntaks for å uttrykke MIDI-kommandoer. Selv om du kan bruke MIDI-hendelser i Metadataredigeringen, kan du også uttrykke MIDI-kommandoer i tekst.
Avgrenset verdier
Først og fremst kan flere MIDI-kommandoer skilles ved ulike tegn, inkludert: et tabulator-tegn, komma, semikolon, loddrett strek eller ny linje. Kommaet er den mest vanlige skilletegnet. For eksempel:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Kanal
Hver oppføring kan inneholde et @-symbol. Den numeriske verdien etter symbolet er kanalen som kommandoen skal sendes på. Siden kanaler i MIDI starter på null, ville kanal én være null (0), kanal to en (1), osv.
Hvis ingen @-symbol brukes, sendes eller mottas kommandoen på alle kanaler.
Prefikser
Hver oppføring i listen inneholder et prefiks. Dette prefikset bestemmer hva slags MIDI-kommando som skal sendes. Disse inkluderer:
- PC eller Ingen prefiks er en programendringshendelse.
- N er en notat-hendelse
- CC er en kontrollendringshendelse.
- SS er en låtvalghendelse.
- START er en startkommando.
- STOP er en stoppkommando.
- CONTINUE er en fortsettkommando.
- F0 prefiks en SysEx-melding.
- WAIT implementerer en forsinkelse.
Verdier
Verdien av kommandoen vises rett før @-symbolet eller på slutten av oppføringen hvis ingen @ er gitt. Dette er verdien av programendringen, kontrollendringen, notatet eller låtvalgvalget basert på prefikset. I tilfelle SysEx-oppføringer gis den heksadesimale verdien av SysEx direkte etter F0-prefikset som brukes som overskrift for alle SysEx-kommandoer.
Underverdier
I noen tilfeller formidles tilleggsinformasjon i MIDI-kommandoen som underverdier. For eksempel kan MSB og LSB, samt hastighet av kontrollverdier sendes på denne måten. Dette uttrykkes gjennom tilføyelse av et kolon i verdidelen. Underverdien har ulik kontekst avhengig av typen MIDI-kommando som sendes:
- Programendring har underverdier som samsvarer med MSB/LSB for programendringen. Disse verdiene er separert med en periode med MSB på venstre side og LSB på høyre side.
- Kontrollendring har verdien av kontrollen som er satt ved hjelp av denne. Tallet kan være mellom 0 og 127. Hvis det utelates, antas verdien 127.
- Notat-hendelse har en underverdi som relaterer seg til hastigheten som notatet skal spilles med. Dette kan settes til en numerisk verdi mellom 0 og 127.
Eksempler
La oss starte med en enkel programendring. I dette scenariet bruker vi programendring 8 som også sender en MSB på 4 og en LSB på 2 på kanal 1. Eksemplet starter med den mest komplekse variasjonen av denne og fjerner bankvalget og kanalen for å bli bredere:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Kontrollendringer er lignende bortsett fra at venstre side av syntaksen er kontrollendringsnummeret og høyre side er en valgfri verdi. Hvis verdien ikke er gitt, sendes 127 i stedet. Vi vil sende kontrollendring 106 med en verdi på 64 på kanal 3.
CC105:63@2, CC105:63. CC105@2, CC105
Nå skal vi se på notat-hendelser. Vi ønsker å spille C4 på kanal 8 med 75% hastighet, ville vi oppgi følgende fordi OnSong begynner å telle MIDI C0 som 0 på MIDI-notatskalaen:
N60:95@7, N60@7, N60:95, N60
Igjen er det viktig å huske at ettersom verdier fjernes fra MIDI-syntaksen, blir MIDI-setningen bredere og mindre spesifikk. For eksempel vil den siste versjonen av notat-hendelsen spille C4 med 100% hastighet på alle kanaler.
For å implementere en forsinkelse mellom andre MIDI-hendelser, bruk WAIT-kommandoen med et tall. Tallet kan være en heltallsverdi. Du kan definere sekunder som skal ventes som 1-10, eller definere som millisekunder. Følgende viser hvordan du venter i 2 sekunder, 10 sekunder og et halvt sekund.
WAIT2, WAIT10, WAIT500