Gebruikersgids
MIDI-Sintaksis
OnSong gebruik 'n teksgebaseerde sintaksis vir die uitdrukking van MIDI-bevele. Terwyl jy die MIDI-Gebeure in die Metadata-Redigeerder kan gebruik, kan jy ook MIDI-bevele in teks uitdruk.
Afgegrensde Waardes
Eerstens en voralal kan verskeie MIDI-bevele deur verskeie karakters geskei word, insluitend: 'n tabulasiekarakter, komma, puntkomma, vertikale pyp of nuwe lyn. Die komma is die mees algemene afgrenzer. Byvoorbeeld:
1.2:0@0, PC1.2:3@0, N67@1, START, SS8
Kanaal
Elke inskrywing mag 'n @-simbool bevat. Die numeriese waarde na die simbool is die kanaal waarop die bevel gestuur moet word. Aangesien kanale in MIDI op nul begin, sou kanaal een nul (0) wees, kanaal twee een (1), ensovoorts.
Indien geen @-simbool gebruik word nie, word die bevel op alle kanale gestuur of ontvang.
Voorvoegsels
Elke inskrywing in die lys bevat 'n voorvoegsel. Hierdie voorvoegsel bepaal watter tipe MIDI-bevel om te stuur. Hierdie sluit in:
- PC of Geen Voorvoegsel is 'n programveranderingagebeurtenis.
- N is 'n nootagbeurtenis
- CC is 'n kontroleveranderingagebeurtenis.
- SS is 'n liedjieseleksie-agbeurtenis.
- START is 'n beginbevel.
- STOP is 'n stoppebevel.
- CONTINUE is 'n voortsettingsbevel.
- F0 het 'n SysEx-boodskap voorvoegsel.
- WAIT implementeer 'n vertraging.
Waardes
Die waarde van die bevel verskyn net voor die @-simbool of aan die einde van die inskrywing as geen @ gegee word nie. Dit is die waarde van die programverandering, kontroleverandering, noot of liedjieseleksie gebaseer op die voorvoegsel. In die geval van SysEx-inskrywings word die heksadesimale waarde van die SysEx direk na die F0-voorvoegsel verskaf, wat as 'n kopskrif vir alle SysEx-bevele gebruik word.
Subwaardes
In sommige gevalle word addisionele inligting in die MIDI-bevel as subwaardes oorgedra. Byvoorbeeld, MSB en LSB, sowel as snelheid van kontrolewaardes kan op hierdie manier gestuur word. Dit word uitgedruk deur die toevoeging van 'n dubbelpunt in die waardegedeelte. Die subwaarde het verskillende konteks afhangende van die tipe MIDI-bevel wat gestuur word:
- Programverandering het subwaardes wat ooreenstem met die MSB/LSB van die programverandering. Hierdie waardes word deur 'n punt geskei met die MSB aan die linkerkant en die LSB aan die regterkant.
- Kontroleverandering het die waarde van die kontrole wat hierdie manier gestel word. Die nommer kan tussen 0 en 127 wees. Indien weggelaat, word die waarde van 127 aanvaar.
- Nootagbeurtenis het 'n subwaarde wat verband hou met die snelheid waarteen die noot gespeel moet word. Dit kan op 'n numeriese waarde tussen 0 en 127 gestel word.
Voorbeelde
Laat ons begin met 'n eenvoudige programverandering. In hierdie scenario gebruik ons programverandering 8 wat ook 'n MSB van 4 en 'n LSB van 2 op kanaal 1 stuur. Die voorbeeld begin met die mees komplekse variasie hiervan en verwyder die bankseleksie en kanaal om breër te raak:
PC3.1:7@0, 3.1:7@0, 3:7@0, 3:7, 7@0, 7
Kontroleveranderinge is soortgelyk, behalwe dat die linkerkant van die sintaksis die kontroleveranderingsnommer is en die regterkant 'n opsionele waarde is. Indien die waarde nie verskaf word nie, word 127 gestuur. Ons sal Kontroleverandering 106 met 'n waarde van 64 op kanaal 3 stuur.
CC105:63@2, CC105:63. CC105@2, CC105
Laat ons nou nootagebeurtenisse beskou. Ons wil C4 op kanaal 8 op 75% snelheid speel, ons sal die volgende inskryf omdat OnSong met die telling van MIDI C0 as 0 op die MIDI-nootskaal begin:
N60:95@7, N60@7, N60:95, N60
Weereens is dit belangrik om te onthou dat soos waardes uit die MIDI-sintaksis verwyder word, die MIDI-verklaring breër en minder spesifiek word. Byvoorbeeld, die laaste weergawe van die nootagbeurtenis sal C4 op 100% snelheid op alle kanale stuur.
Om 'n vertraging tussen ander MIDI-gebeure in te stel, gebruik die WAIT-bevel met 'n nommer. Die nommer kan 'n heeltalwaarde wees. Jy kan sekondes om te wag as 1-10 definieer, of as millisekondes. Die volgende toon hoe om 2 sekondes, 10 sekondes en halwe sekonde te wag.
WAIT2, WAIT10, WAIT500