ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE
Brugerhåndbog
MIDI-syntaks
OnSong bruger en tekstbaseret syntaks til at udtrykke MIDI-kommandoer. Selvom du kan bruge MIDI-hændelserne i Metadataredigeringen, kan du også udtrykke MIDI-kommandoer i tekst.
Afgrænset værdier
Først og fremmest kan flere MIDI-kommandoer adskilles med forskellige tegn, herunder: et tabulator-tegn, komma, semikolon, lodret streg eller linjeskift. Kommaet er den mest almindelige afgrænser. For eksempel:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Kanal
Hver post kan indeholde et @-symbol. Den numeriske værdi efter symbolet er den kanal, som kommandoen skal sendes på. Da kanaler i MIDI starter på nul, ville kanal et være nul (0), kanal to en (1) osv.
Hvis der ikke bruges et @-symbol, sendes eller modtages kommandoen på alle kanaler.
Præfikser
Hver post på listen indeholder et præfiks. Dette præfiks bestemmer, hvilken type MIDI-kommando der skal sendes. Disse omfatter:
- PC eller Intet præfiks er en programændrings-hændelse.
- N er en notat-hændelse
- CC er en kontrolændrings-hændelse.
- SS er en sangvalg-hændelse.
- START er en startkommando.
- STOP er en stopkommando.
- CONTINUE er en fortsæt-kommando.
- WAIT venter et bestemt tidsrum før der sendes flere hændelser.
- F0 præfikserer en SysEx-besked.
- @ præfikserer et MIDI-globalt tag.
Værdier
Værdien af kommandoen vises lige før @-symbolet eller i slutningen af posten, hvis der ikke er givet et @. Dette er værdien af programændringen, kontrolændringen, notatet eller sangvalget baseret på præfikset. I tilfælde af SysEx-poster gives den heksadecimale værdi af SysEx direkte efter F0-præfikset, som bruges som overskrift til alle SysEx-kommandoer.
Underværdier
I nogle tilfælde formidles yderligere oplysninger i MIDI-kommandoen som underværdier. For eksempel kan MSB og LSB samt hastighed af kontrolværdier sendes på denne måde. Dette udtrykkes gennem tilføjelsen af et kolon i værdidelen. Underværdien har forskellig kontekst afhængig af typen af MIDI-kommando, der sendes:
- Programændring har underværdier, der stemmer overens med MSB/LSB for programændringen. Disse værdier adskilles med et punktum med MSB til venstre og LSB til højre.
- Kontrolændring har værdien af kontrollen, der er indstillet ved hjælp af denne. Tallet kan være mellem 0 og 127. Hvis det udelades, er værdien 127 antaget. Du kan også adskille flere værdier med en bindestreg for at gå gennem værdier. For eksempel vil 127-0 låse værdien 127 mellem til og fra-tilstande.
- Notat-hændelse har en underværdi, der vedrører hastigheden, hvormed noten skal afspilles. Dette kan indstilles til en numerisk værdi mellem 0 og 127. Du kan gå gennem flere notathastigheder ved at adskille dem med en bindestreg.
Eksempler
Lad os starte med en simpel programændring. I dette scenarie bruger vi programændring 8, som også sender et MSB på 4 og et LSB på 2 på kanal 1. Eksemplet starter med den mest komplekse variation af dette og fjerner bankvalget og kanalen for at blive mere bredt:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Kontrolændringer ligner hinanden bortset fra at venstre side af syntaksen er kontrolændringsnummeret og højre side er en valgfri værdi. Hvis værdien ikke er angivet, sendes 127 i stedet. Vi sender Kontrolændring 106 med en værdi på 64 på kanal 3.
CC105:63@2, CC105:63. CC105@2, CC105
Nu lad os se på notat-hændelser. Vi vil afspille C4 på kanal 8 med 75 % hastighed, vi ville indtaste følgende, fordi OnSong starter med at tælle MIDI C0 som 0 på MIDI-notatskalaen:
N60:95@7, N60@7, N60:95, N60
Igen er det vigtigt at huske, at når værdier fjernes fra MIDI-syntaksen, bliver MIDI-sætningen bredere og mindre specifik. For eksempel vil den sidste version af notat-hændelsen afspille C4 med 100 % hastighed på alle kanaler.
Vi kan også forsinke MIDI ved at tilføje en WAIT-kommando. Følgende vil forsinke MIDI i 2 sekunder samt 500 ms (et halvt sekund). Du kan angive sekunder som 1-10 sekunder eller i millisekunder.
WAIT2, WAIT500
Til sidst kan vi referere til MIDI-globaler, som er prækonfigurerede lister over MIDI-hændelser, der kan refereres til. Hvis du har en MIDI-global med "on" som tag (uden anførselstegn), kan du referere til denne global med følgende:
@on