Gebruikershandleiding

MIDI-syntaxis

OnSong gebruikt een op tekst gebaseerde syntaxis voor het uitdrukken van MIDI-commando's. Hoewel u de MIDI-events in de metadata-editor kunt gebruiken, kunt u ook MIDI-commando's in tekst uitdrukken.

Gescheiden waarden

Eerst en vooral kunnen meerdere MIDI-commando's gescheiden worden door verschillende tekens, waaronder: een tabteken, komma, puntkomma, verticale pipe of nieuwe regel. De komma is het meest gebruikte scheidingsteken. Bijvoorbeeld:

1.2:0@0, PC1.2:3@0, N67@1, START, SS8

Kanaal

Elke invoer kan een @-symbool bevatten. De numerieke waarde na het symbool is het kanaal waarop het commando moet worden verzonden. Omdat kanalen in MIDI op nul beginnen, zou kanaal één nul (0) zijn, kanaal twee één (1), enzovoort.

Als er geen @-symbool wordt gebruikt, wordt het commando op alle kanalen verzonden of ontvangen.

Voorvoegsels

Elke invoer in de lijst bevat een voorvoegsel. Dit voorvoegsel bepaalt welk type MIDI-commando moet worden verzonden. Deze omvatten:

  • PC of Geen voorvoegsel is een programmawijzigingsgebeurtenis.
  • N is een nootgebeurtenis
  • CC is een controlewijzigingsgebeurtenis.
  • NRPN is een niet-geregistreerd parameternummer.
  • SS is een nummerselectiegebeurtenis.
  • START is een startcommando.
  • STOP is een stopcommando.
  • CONTINUE is een vervolgcommando.
  • WAIT wacht een bepaalde tijd voordat meer events worden verzonden.
  • F0 voorvoegsel een SysEx-bericht.
  • @ voorvoegsel een MIDI-globale tag.

Waarden

De waarde van het commando verschijnt net voor het @-symbool of aan het einde van de invoer als er geen @ is opgegeven. Dit is de waarde van de programmawijziging, controlewijziging, noot of nummerselectie op basis van het voorvoegsel. In het geval van SysEx-invoeren wordt de hexadecimale waarde van de SysEx direct na het F0-voorvoegsel opgegeven, dat als header voor alle SysEx-commando's wordt gebruikt.

Subwaarden

In sommige gevallen wordt aanvullende informatie in het MIDI-commando als subwaarden doorgegeven. Bijvoorbeeld MSB en LSB, evenals snelheid van controlewaarden kunnen op deze manier worden verzonden. Dit wordt uitgedrukt door het toevoegen van een dubbele punt in het waardegedeelte. De subwaarde heeft een andere context, afhankelijk van het type MIDI-commando dat wordt verzonden:

  • Programmawijziging heeft subwaarden die aansluiten bij de MSB/LSB van de programmawijziging. Deze waarden worden gescheiden door een punt met de MSB aan de linkerkant en de LSB aan de rechterkant.
  • Controlewijziging heeft de waarde van het besturingselement dat hiermee is ingesteld. Het getal kan tussen 0 en 127 liggen. Indien weggelaten, wordt een waarde van 127 afgeleid. U kunt ook meerdere waarden scheiden met een koppelteken om waarden stap voor stap door te lopen. Bijvoorbeeld 127-0 zal de waarde 127 laten vergrendelen tussen aan- en uittoestanden.
  • Nootgebeurtenis heeft een subwaarde die betrekking heeft op de snelheid waarmee de noot moet worden afgespeeld. Dit kan worden ingesteld op een numerieke waarde tussen 0 en 127. U kunt meerdere nootsnelheden stap voor stap doorlopen door deze te scheiden met een koppelteken.

Voorbeelden

Laten we beginnen met een eenvoudige programmawijziging. In dit scenario gebruiken we programmawijziging 8 die ook een MSB van 4 en een LSB van 2 op kanaal 1 verzendt. Het voorbeeld begint met de meest complexe variatie hiervan en verwijdert de bankselectie en het kanaal om breder te worden:

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

Controlewijzigingen zijn vergelijkbaar, behalve dat de linkerkant van de syntaxis het controlewijzigingsnummer is en de rechterkant een optionele waarde. Als de waarde niet is opgegeven, wordt in plaats daarvan 127 verzonden. We verzenden Controlewijziging 106 met een waarde van 64 op kanaal 3.

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

Laten we nu naar nootgebeurtenissen kijken. We willen C4 afspelen op kanaal 8 met 75% snelheid. We zouden het volgende invoeren omdat OnSong begint met tellen MIDI C0 als 0 op de MIDI-notenschaal:

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

Wederom is het belangrijk om te onthouden dat naarmate waarden uit de MIDI-syntaxis worden verwijderd, de MIDI-verklaring breder en minder specifiek wordt. Bijvoorbeeld, de laatste versie van de nootgebeurtenis zal C4 op 100% snelheid op alle kanalen verzenden.

We kunnen MIDI ook vertragen door een WAIT-commando toe te voegen. Het volgende zal de MIDI met 2 seconden en 500 ms (half seconde) vertragen. U kunt seconden opgeven tussen 1-10 seconden of in milliseconden.

WAIT2, WAIT500

Tot slot kunnen we verwijzen naar MIDI-globals, wat vooraf ingestelde lijsten met MIDI-events zijn die kunnen worden gebruikt. Als u een MIDI-global met "on" als tag hebt (zonder aanhalingstekens), kunt u naar die global verwijzen met het volgende:

@on
OnSong 2026 — Laatst bijgewerkt op March 11, 2020