Wachtwoord kwijt?
Home arrow System Exclusive
System Exclusive berichten Print E-mail

Inleiding

Eerder 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 dd1 dd2 .....  ddx 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 instelling

Indien 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 berichten

Deze 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 Adjust

Het 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

Nawoord

Ik 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.

 
< Vorige   Volgende >
© 2010 HCCmuziek.nl
Joomla! is Free Software released under the GNU/GPL License.