Gebruikershandleiding

MIDI-syntaxis

OnSong maakt gebruik van een op tekst gebaseerde syntaxis voor het uitdrukken van MIDI-opdrachten. Hoewel u de MIDI-gebeurtenissen in de Metadata-editor kunt gebruiken, kunt u ook MIDI-opdrachten in tekst uitdrukken.

Gescheiden waarden

Allereerst kunnen meerdere MIDI-opdrachten worden gescheiden door verschillende tekens, waaronder: een tabteken, komma, puntkomma, verticale streep 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 de opdracht moet worden verzonden. Aangezien kanalen in MIDI bij nul beginnen, zou kanaal één nul (0) zijn, kanaal twee één (1), enzovoort.

Als geen @ symbool wordt gebruikt, wordt de opdracht op alle kanalen verzonden of ontvangen.

Voorvoegsels

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

  • PC of Geen voorvoegsel is een programmaveranderings-event.
  • N is een note-event
  • CC is een control change-event.
  • SS is een song select-event.
  • START is een startcommando.
  • STOP is een stopcommando.
  • CONTINUE is een vervolg-commando.
  • WAIT wacht een bepaalde hoeveelheid tijd voordat meer events worden verzonden.
  • F0 voorafgegaan door een SysEx-bericht.
  • @ voorafgegaan door een MIDI globale tag.

Waarden

De waarde van de opdracht verschijnt net vóór het @ symbool of aan het einde van de invoer als geen @ wordt gegeven. Dit is de waarde van de programmaverandering, control change, note of song select op basis van het voorvoegsel. In het geval van SysEx-invoeren wordt de hexadecimale waarde van de SysEx direct na het F0-voorvoegsel gegeven, dat als koptekst voor alle SysEx-opdrachten wordt gebruikt.

Subwaarden

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

  • Programmaverandering heeft subwaarden die aansluiten bij de MSB/LSB van de programmaverandering. Deze waarden worden gescheiden door een periode met de MSB aan de linkerkant en de LSB aan de rechterkant.
  • Control Change heeft de waarde van het besturingselement dat hiermee is ingesteld. Het getal kan tussen 0 en 127 liggen. Indien weggelaten, wordt de waarde 127 afgeleid. U kunt ook meerdere waarden scheiden met een koppelteken om door waarden te stappen. Bijvoorbeeld 127-0 zal de waarde 127 tussen aan- en uitstanden vergrendelen.
  • Note Event heeft een subwaarde die betrekking heeft op de snelheid waarmee de noot moet worden gespeeld. Dit kan worden ingesteld op een numerieke waarde tussen 0 en 127. U kunt door meerdere noot-snelheden stappen door deze met een koppelteken te scheiden.

Voorbeelden

Laten we beginnen met een eenvoudige programmaverandering. In dit scenario gebruiken we programmaverandering 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

Control changes werken op dezelfde manier, behalve dat de linkerkant van de syntaxis het control change-nummer is en de rechterkant een optionele waarde. Als de waarde niet wordt opgegeven, wordt in plaats daarvan 127 verzonden. We zenden Control Change 106 met een waarde van 64 op kanaal 3.

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

Laten we nu een kijkje nemen op note-events. We willen C4 op kanaal 8 spelen met 75% snelheid, we zouden het volgende invoeren omdat OnSong MIDI C0 telt als 0 op de MIDI-nootschaal:

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

Wederom is het belangrijk om te onthouden dat wanneer waarden uit de MIDI-syntaxis worden verwijderd, de MIDI-verklaring breder en minder specifiek wordt. De laatste versie van de note-event verzendt bijvoorbeeld C4 met 100% snelheid op alle kanalen.

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

WAIT2, WAIT500

Ten slotte kunnen we verwijzen naar MIDI-globals, die van tevoren geconfigureerde lijsten met MIDI-events zijn waarnaar kan worden verwezen. Als u een MIDI-global hebt met "on" als tag (zonder aanhalingstekens), kunt u naar die global verwijzen met het volgende:

@on
OnSong 1.999 — Laatst bijgewerkt op August 29, 2019