InleidingEerder is verteld control berichten, zoals gedefinieerd in de General MIDI standaard, gebruikt kunnen worden om de klank te beïnvloeden. In dit stuk wil ik iets vertellen van systeem afhankelijk berichten: de System Exclusive berichten. Deze worden ook wel aangeduid als SYSEX berichten. Zoals de naam al zegt zijn deze MIDI berichten afhankelijk van het gebruikte apparaat. In de praktijk vooral afhankelijk van de fabrikant. Fabrikanten hebben voor hun producten vaak de zelfde SYSEX berichten geïmplementeerd, die dan wel of niet in al hun producten worden ondersteund. Gezien de sterke fabrikantafhankelijkheid zal ik me beperken tot de algemene (Universal SYSEX) berichten . Deze zijn wel gelijk bij de verschillende fabrikanten. In de MIDI standaard is voor de SYSEX berichten de volgende structuur vastgelegd | Status | Data bytes
| Status | | F0H | idH | dd1H | dd2H | ..... | ddxH | F7H | N.B. Alle getallen zijn hexadecimaal aangegeven en lopen van 0 tot 15 (0....9, A...F).
Hierin is: F0H start van System Exclusive Message; idH fabrikantidentificatie; ddx data bytes, waarin in x het rangnummer van de data byte aangeeft; F7H einde van System Exclusive Message (EOX).
Enkele voorbeelden van fabrikantidentificaties zijn: 41H Roland Corporation; 42H Korg Inc.; 43H Yamaha Corporation; 44H Casio Corporation.
Daar één byte uiteraard niet genoeg is om alle fabrikanten te identificeren zijn er ook drie byte id’s. Enkele voorbeelden hiervan zijn: 00H 00H 7AH Nvidia; 00H 00H 7BH ESS Technology; 00H 01H 05H M-Audio (Midiman); 00H 01H 21H Cakewalk Music Software; 00H 20H 3AH Propellerhead Software.
Er zijn twee identificatienummers vastgelegd voor algemeen gebruik. 7EH geeft aan dat het een Universal Non-realtime Message is; 7FH geeft aan dat het een Universal Realtime Message is. Mode instellingIndien men zeker wil zijn dat een General MIDI sequence goed wordt weergegeven, is het verstandig om de synthesizer in GM mode te zetten. Om alle aangesloten synthesizers in de stand GM te zetten kan het volgende SYSEX bericht worden gebruikt:
F0H 7EH 09H 01H F7H
Hierin is: F0H start SYSEX bericht; 7EH Universal Non-Realtime Message; 7FH Device id = hier Broadcast; 09H Onder id nummer 1, (General MIDI Message) 01H Onder id nummer 2, (General MIDI 1 aan); F7H EOX.
Andere ‘onder id nummers 2’ zijn: 02H = General MIDI uit, 03H = General MIDI 2 aan. Je ziet dat dit bericht apparaat onafhankelijk is, omdat een Broadcast bericht wordt uitgezonden. Key-based controller berichtenDeze berichten zijn bedoeld om de zelfde besturing aan key-based instrumenten te geven als aan channel gerelateerde instrumenten. Een voorbeeld van een key-based instrument is een percussieset. Hierbij is iedere noot een ander instrument. Deze berichten zijn opgenomen in de General MIDI 2 standaard, maar worden ook gebruikt bij synthesizers die niet aan de GM 2 standaard voldoen.
Het bericht ziet er als volgt uit: F0H 7FH idH 0AH 01H 0nH kkH [nnH wwH] .. F7H
Hierin is: F0H start SYSEX bericht; 7FH Universal Real Time SYSEX Message; idH device id (7FH = Broadcast); 0AH sub-ID#1 = “Key-Based Instrument Control” 01H sub-ID#2 = 01, Basic Message = Controller; 0nH MIDI Channel nummer, n geeft nummer aan van 0 tot 15; kkH Key (=noot) nummer; [nnH,wwH] Controller Nummer en waarde. : F7H EOX.
Enkele algemeen gebruikte controllers: CC#
| nn
| naam | waarde
| opmerking | | 7 | 07H | noot volume | 00H…40H...FH | relatief | | 10 | 0AH | Pan | 00H…7FH | absoluut | | 71 | 47H | Timbre/Harmonic Intensity | 00H…40H…7FH | relatief | | 72 | 48H | Release Time | 00H…40H…7FH | relatief | 73
| 49H | Attack Time | 00H…40H…7FH | relatief | 74
| 4AH | Brightness | 00H…40H…7FH | relatief | | 75 | 4BH | Decay Time | 00H…40H…7FH | relatief | | 76 | 4CH
| Vibrato Rate | 00H…40H…7FH
| relatief | | 77 | 4DH
| Vibrato Depth | 00H…40H…7FH | relatief | | 78 | 4EH | Vibrato Delay | 00H…40H…7FH
| relatief | | 91 | 5BH | Reverb Send | 00H…7FH | absoluut | | 93 | 5DH | Chorus Send | 00H…7FH | absoluut | | 120 | 78H | Fine Tuning | 00H…40H…7FH | relatief | | 121 | 79H | Coarse Tuning | 00H…40H…7FH | relatief |
N.B. - De parameters 78H en 79H kunnen niet worden vergeleken met hun Control Change gebruik (Mode Change berichten), maar zijn hier gedefinieerd als fijninstelling en grofinstelling.
- Iedere controller (Control Change) kan voor "nn" worden gebruikt met uitzondering van Bank Select MSB/LSB (00H, 20H), Data Entry MSB/LSB (06H, 26H), RPN/NRPN berichten (60h – 65H), en Mode Change berichten (78H-7FH).
- Meer dan één controller/waarde paar kan worden gezonden.
- Key-Based Instrument Control berichten zijn meestal voor relatieve correcties ten opzichte van bestaande kanaal parameter instellingen. Als een nieuwe geluidsset wordt geselecteerd met een Program Change bericht, zal het ontvangende apparaat de instelling voor iedere key-based instrument toepassen. De waarde 40H zal dan als de standaard instelling voor die controller worden gekozen.
- Waarden beneden 40H verlagen de parameters; waarden hoger dan 40H verhogen de parameters.
Key-based berichten geven onder andere de mogelijkheid om het stereobeeld van percussie-instrumenten in te stellen, zonder dat voor ieder instrument een apart kanaal nodig is.
Scale/Octave Tuning AdjustHet is mogelijk om de stemming van een synthesizer aan te passen. Hierdoor kan iedere noot in een octaaf zijn eigen stemming krijgen. Toetsinstrumenten zijn volgens de evenredige stemming gestemd, maar bijvoorbeeld zangers of violisten nemen een stijgende interval anders dan een dalende interval. Daarom klinkt een duo van piano en viool vaak net ietsje vals. Met het volgende bericht kunnen de intervallen worden aangepast:
F0H 7FH idH 08H 08H ffH ggH ssH F7H
Hierin is: F0H start SYSEX bericht; 7FH Universal Realtime SYSEX Message ; idH device id (7FH = Broadcast); 08H sub-ID#1 = “MIDI Tuning Standard”; 08H sub-ID#2 = “scale/octave tuning 1-byte vorm” ; ffH Channel/Option byte 1, bits 0 tot 1 = channel 15 tot 16, bits 2 tot 6 ongedefineerd; ggH Channel byte 2, bits 0 tot 6 = channel 8 tot 14; hhH Channel byte 3, bits 0 tot 6 = channel 1 tot 7; ssH 12 byte tuning offset van 12 halvetonen van C tot B, 00h = -64 (hondersten), 40H= 0 (gelijkgestemd) 7FH=+63 (hondersten); F7H EOX.
Om bijvoorbeeld een Arabische stemming in te stellen bij de Virtual Sound Canvas van Roland, zijn de waarden voor C | C# | D | D# | E | F
| F# | G | G#
| A | A# | B | | -6 | +45 | -2 | -12 | -51
| -8
| +43
| -4
| +47 | 0 | -10 | -49 |
Het non-Realtime SYSEX bericht voor kanaal 1 ziet er dan als volgt uit:
F0H 7EH 7FH 08H 08H 00H 00H 01H 3AH 6DH 3EH 34H 0DH 38H 6BH 3CH 6FH 40H 36H 0FH F7H NawoordIk heb hier alleen een indruk willen geven, wat zoal met SYSEX berichten mogelijk is. Er zijn er echter veel meer. De handboeken van synthesizers geven aan welke SYSEX berichten worden ondersteund.
|