ONSONG CHARTS AVAILABLE NOW! LEARN MORE HERE

Brukerveiledning

MIDI-syntaks

OnSong bruker en tekstbasert syntaks for å uttrykke MIDI-kommandoer. Selv om du kan bruke MIDI-hendelsene i Metadataredigereren, kan du også uttrykke MIDI-kommandoer i tekst.

Avgrensede verdier

Først og fremst kan flere MIDI-kommandoer separeres med ulike tegn, inkludert: et tabulatortegn, komma, semikolon, loddrett strek eller linjeskift. Kommaet er den vanligste avgrensingeren. 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 være én (1), og så videre.

Hvis ingen @-symbol brukes, sendes eller mottas kommandoen på alle kanaler.

Prefikser

Hver oppføring i listen inneholder et prefiks. Dette prefikset bestemmer hvilken type MIDI-kommando som skal sendes. Disse inkluderer:

  • PC eller Ingen prefiks er en programendringshendelse.
  • N er en notehendelse
  • CC er en kontrollendringsshendelse.
  • SS er en sangvelgelsehhendelse.
  • START er en startkommando.
  • STOP er en stoppkommando.
  • CONTINUE er en fortsettkommando.
  • F0 foran 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, kontrolendringen, noten eller sangvalget basert på prefikset. I tilfelle SysEx-oppføringer gis den heksadesimale verdien av SysEx direkte etter F0-prefikset som brukes som en header for alle SysEx-kommandoer.

Underverdier

I noen tilfeller formidles tilleggsinformasjon i MIDI-kommandoen som underverdier. For eksempel kan MSB og LSB, samt hastighet på kontrollverdier sendes på denne måten. Dette uttrykkes gjennom tillegg 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.
  • Kontrollendringskommando har verdien av kontrollen som angis ved hjelp av dette. Tallet kan være mellom 0 og 127. Hvis det utelates, antas verdien 127.
  • Notehendelse har en underverdi som gjelder hastigheten som noten skal spilles med. Dette kan angis 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 dette og fjerner bankvalg og kanal for å bli mer generell:

PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7

Kontrollendringskommandoer er lignende bortsett fra at venstre side av syntaksen er kontrollendringstallet og høyre side er en valgfri verdi. Hvis verdien ikke angis, sendes 127 i stedet. Vi vil sende kontrollendringskommando 106 med en verdi på 64 på kanal 3.

CC105:63@2, CC105:63. CC105@2, CC105

Nå skal vi se på notehendelser. Vi vil spille C4 på kanal 8 med 75% hastighet. Vi vil skrive det følgende fordi OnSong begynner å telle MIDI C0 som 0 på MIDI-notetabellen:

N60:95@7, N60@7, N60:95, N60

Igjen er det viktig å huske at når verdier fjernes fra MIDI-syntaksen, blir MIDI-setningen mer generell og mindre spesifikk. For eksempel vil den siste versjonen av notehendelsen spille C4 med 100% hastighet på alle kanaler.

For å implementere en forsinkelse mellom andre MIDI-hendelser, bruker du WAIT-kommandoen med et tall. Tallet kan være en heltallsverdi. Du kan angi sekunder du vil vente som 1-10, eller definere som millisekunder. Det følgende viser hvordan du venter i 2 sekunder, 10 sekunder og et halvt sekund.

WAIT2, WAIT10, WAIT500
OnSong 2023 — Sist oppdatert January 17, 2018