Gebruikershandleiding
MIDI-syntaxis
OnSong gebruikt een op tekst gebaseerde syntaxis voor het uitdrukken van MIDI-commando's. Hoewel u de MIDI-gebeurtenissen in de Metadata-editor kunt gebruiken, kunt u ook MIDI-commando's in tekst uitdrukken.
Gescheiden waarden
Allereerst kunnen meerdere MIDI-commando's worden gescheiden door verschillende tekens, waaronder: een tabteken, komma, puntkomma, verticale buis of nieuwe regel. De komma is het meest gebruikte scheidingsteken. Bijvoorbeeld:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Kanaal
Elk item 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), enz.
Als geen @-symbool wordt gebruikt, wordt het commando op alle kanalen verzonden of ontvangen.
Voorvoegsels
Elk item in de lijst bevat een voorvoegsel. Dit voorvoegsel bepaalt wat voor soort MIDI-commando moet worden verzonden. Deze omvatten:
- PC of Geen voorvoegsel is een programmawijzigingsgebeurtenis.
- N is een nootgebeurtenis
- CC is een control change-gebeurtenis.
- SS is een nummerkeuzegebeurtenis.
- START is een startcommando.
- STOP is een stopcommando.
- CONTINUE is een vervolgcommando.
- F0 is voorvoegsel van een SysEx-bericht.
- WAIT implementeert een vertraging.
Waarden
De waarde van het commando verschijnt net vóór het @-symbool of aan het einde van het item als geen @ is gegeven. Dit is de waarde van de programmawijziging, control change, noot of nummerkeuze op basis van het voorvoegsel. In het geval van SysEx-items wordt de hexadecimale waarde van de SysEx direct na het F0-voorvoegsel gegeven, dat als koptekst voor alle SysEx-commando's wordt gebruikt.
Subwaarden
In sommige gevallen wordt aanvullende informatie in het MIDI-commando als subwaarden overgebracht. Bijvoorbeeld MSB en LSB, evenals snelheid van regelwaarden kunnen op deze manier worden verzonden. Dit wordt uitgedrukt door het toevoegen van een dubbele punt in het waardegedeelte. De subwaarde heeft een verschillende context afhankelijk van het type MIDI-commando dat wordt verzonden:
- Programmawijziging heeft subwaarden die aansluiten op 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.
- Control Change heeft de waarde van de ingestelde controle. Het getal kan tussen 0 en 127 liggen. Indien weggelaten, wordt de waarde 127 afgeleid.
- Nootgebeurtenis heeft een subwaarde met betrekking tot de snelheid waarmee de noot moet worden afgespeeld. Dit kan worden ingesteld op een numerieke waarde tussen 0 en 127.
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 verstuurt. 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 zijn vergelijkbaar, behalve dat de linkerkant van de syntaxis het control change-nummer is en de rechterkant een optionele waarde. Als de waarde niet is opgegeven, wordt 127 verzonden. We sturen Control Change 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 op kanaal 8 op 75% snelheid afspelen. We voeren het volgende in omdat OnSong MIDI C0 als 0 op de MIDI-nootschaal begint:
N60:95@7, N60@7, N60:95, N60
Opnieuw is het belangrijk om te onthouden dat naarmate waarden uit de MIDI-syntaxis worden verwijderd, de MIDI-instructie breder en minder specifiek wordt. De laatste versie van de nootgebeurtenis zal bijvoorbeeld C4 op 100% snelheid op alle kanalen verzenden.
Als u een vertraging tussen andere MIDI-gebeurtenissen wilt implementeren, gebruikt u het WAIT-commando met een getal. Het getal kan een geheel getal zijn. U kunt seconden om te wachten als 1-10 definiëren, of als milliseconden. Het volgende toont hoe u 2 seconden, 10 seconden en een halve seconde kunt wachten.
WAIT2, WAIT10, WAIT500