Système exclusif
Sysex : abréviation de System Exclusive
Catégorie de messages MIDI autorisant notamment l'échange de données non normalisées, puisque chaque constructeur
muni d'un numéro d'identification est libre d'en créer.
Les sysexs permettent donc de communiquer avec le synthétiseur, et d'en modifier tous les paramètres internes. Les données
sont représentées en hexadécimal (votre système d'exploitation inclus certainement une calculatrice qui permet de faire les
conversions entre décimal et hexadécimal).Voici quelques explications sur les Sysexs du Korg X3 :
Tout message exclusif est composé de 4 éléments :
Quelques exemples concrets sont détaillés ici
L'entête
L'entête comporte le code du constructeur et le modèle du synthé. Ceci permet au synthé de savoir si le
sysex reçu s'adresse effectivement à lui (indispensable si plusieurs synthé sont reliés en série). Le header pour le Korg
X3 est le suivant :
F0 42 3g 35
F0 |
Status de système exclusif |
42 |
Code du constructeur Korg |
3g |
canal midi global |
35 |
code du modèle X3 |
tableau 1 (page 190 du manuel d'utilisation)
La correspondance entre g et de canal midi global est donnée dans le tableau suivant :
canal midi global |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
valeur de g |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
tableau 2
Dans le cas général, le synthé est rêglé sur le canal 1. Le header est donc F0 42 30 35
Le code de fonction
L'entête est suivie du code de fonction, dont la liste pour le X3 est donnée dans le tableau suivant :
code de fonction |
Description |
42 |
Mode Data |
47 |
All Drum Sound (PCM Card) Name Dump |
45 |
All Multisound Sound (PCM Card) Name Dump |
4E |
Mode Change |
41 |
Parameter Change |
53 |
Drumkit Parameter Change |
40 |
Program Parameter Dump |
4C |
All Program Parameter Dump |
49 |
Combination Parameter Dump |
4D |
All Combination Parameter Dump |
48 |
All Sequence Data Dump |
51 |
Global Data Dump |
52 |
Drums Data Dump |
50 |
All Data (Global, Drum, Combi) Dump |
26 |
Received Message Format Error |
23 |
Data Load Complete |
24 |
Data Load Error |
21 |
Write Completed |
22 |
Write Error |
tableau 3 (page 190 du manuel d'utilisation)
Les données
Dans le cas général, cette partie du sysex comporte deux choses : le numéro du paramètre que l'on veut modifier, et la nouvelle
valeur affectée à ce paramètre. Ces deux informations sont représentées chacunes sur deux octets suivant la forme LSB MSB
(Low Significant Byte / Most Significant Byte). Ceci implique qu'il faut écrire ne numéro du paramètre et sa valeur à
l'envers. Voici un exemple concret : considérons que nous voulons affecter la valeur 5 au paramètre numéro 1.
Le numéro de paramètre est alors 00 01, et nous l'écrirons 01 00 (à l'envers)
La valeur du paramètre est 00 05, et nous l'écrirons 05 00 (à l'envers)
Il faudra donc envoyer 01 00 05 00.
le message de fin de système exclusif
Tout message exclusif se termine par F7 (EOX = End of exclusive)
Exemples
Exemple 1 : Changement de mode
Nous allons dans cet exemple détailler les sysex permettant de changer le mode du X3, c'est à dire le placer en mode PROGAM,
COMBI, EDIT PROGRAM, EDIT COMBI, SEQ, EDIT SEQ, GLOBAL et DISK.
D'après le tableau 3, le code de fonction pour le changement de mode est 4E
L'utilisation de ce code de fonction est illustrée dans le tableau suivant :
Octets |
Description |
F0 42 3g 35 |
Entête |
4E |
Mode Change |
0m |
Mode data |
00 |
|
F7 |
EOX |
tableau 4 (page 193 du manuel d'utilisation)
Le mode est donné par la valeur de m :
0 : Combination |
3 : Edit Program |
6 : Global |
1 : Edit Combi |
4 : Sequencer |
7 : Disk |
2 : Program |
5 : Edit Sequencer |
|
tableau 5 (note 11 de la page 195 du manuel d'utilisation)
Pour faire passer le synthé en mode combinaison par exemple, le sysex à envoyer est donc (pour le
canal global 1) :
F0 42 30 35 4E 00 00 F7
Pour le mode séquenceur, le sysex est alors
F0 42 30 35 4E 04 00 F7
Facile non ?
Vous pouvez par exemple placer au début de votre séquence (sur Cubase ou Cakewalk par exemple) le sysex
ci-dessus. Celui ci se placera alors en mode séquenceur dès le lancement de la séquence, quelque soit le mode dans lequel il se
trouvait.
Exemple 2 : Modification des paramètres d'un son
Nous allons ici modifier les paramètres d'un son (program) via les sysex. Plus précisément, nous allons changer
la panoramique de l'oscillateur 1. Il faut tout d'abord se placer en mode edit program. D'après l'exemple 2, le sysex correspondant
est F0 42 30 35 4E 03 00 F7.
D'après le tableau 3, le code de fonction pour la modification des paramètres est 41.
L'utilisation de ce code de fonction est illustrée dans le tableau suivant :
Octets |
Description |
F0 42 3g 35 |
Entête |
0100 0001 (41) |
Parameter change |
0ppp pppp (pp) |
No. du paramètre (LSB) (table 6~9) |
0ppp pppp (pp) |
No. du paramètre (MSB) (table 6~9) |
0vvv vvvv (vv) |
Valeur (LSB bit6~0) (note 12) |
0vvv vvvv (vv) |
Valeur (MSB bit13~7) (note 12) |
1111 0111 (F7) |
EOX |
tableau 6 (note 23 de la page 194 du manuel d'utilisation)
Les notes en italiques font référence aux tables et notes du mode d'emploi. C'est ici que nous allons
trouver comment utiliser le code de fonction parameter change. La table 6 correspond aux paramètres de programmes. Cette table
regroupe tous les paramètres d'un son sur le X3. Voici un extrait de cette table. Le paramètre qui nous intéresse est en rouge.
N0. |
PARAMETER |
N0 of table 1 |
..... |
.......... |
....... |
20 |
VDA Amplitude |
36 |
JOYSTICK |
21 |
VDF MG Int |
39 |
22 |
Pitch Bend Range |
37 |
23 |
VDF Sweep Int |
38 |
OSC-1 |
24 |
Multisound |
12,13 |
25 |
Level |
65 |
26 |
Octave |
14 |
27 |
Pitch EG Int |
40 |
28 |
A:B Pan |
86 |
29 |
C Send Level |
82 bit4~7 |
30 |
D Send Level |
82 bit0~3 |
VDF-1 |
31 |
Cutoff Value |
50 |
32 |
EG Intensity |
53 |
..... |
......... |
......... |
tableau 7 (extrait de la table 6 de la page 199 du manuel d'utilisation)
Le numéro de paramètre qui nous intéresse est donc 28. Attention cette valeur est en décimal. Il faut donc
la convertir en hexadécimal, ce qui nous donne 1C. Rappelez vous qu'il faut toujours écrire le code de fonction à
l'envers. Nous écrirons donc 1C 00. La troisième colonne du tableau 7 fait référence à la table 1. C'est dans cette
table qu'est indiqué la façon de calculer la valeur à envoyer. Nous devons donc nous référencer au numéro 86 de la table 1.
Voici un extrait de cette table :
N0. |
PARAMETER |
DATA (Hex) : VALUE |
..... |
........ |
........... |
VDF-1, VDA-1 KBD TRACK MODE |
85 |
F-1, A-1 KBD Track Mode |
*4 |
OSC-1 PANPOT |
86 |
A:B PAN |
00~1E,FF *5 |
OSC-2 PARAMETER |
87.....133 |
Same as Osc-1 (40~86) |
..... |
........ |
........... |
tableau 8 (extrait de la table 1 de la page 196 du manuel d'utilisation)
Les valeurs de la panoramique sont donc comprises entre 00 et 1E. Il est indiqué que des informations
supplémentaires sont disponibles (*5). Ces remarques sont décrites ci-dessous :
00 |
A |
.... |
.... |
0F |
CNT |
.... |
.... |
1E |
B |
1F |
PRG (Only Comb. Seq data) |
FF |
OFF |
tableau 9 (remarque 5 de la page 196 du manuel d'utilisation)
Pour positionner la panoramique de l'oscillateur 1 à A, il faut envoyer la valeur 00 00, pour 14A,
la valeur 01 00, pour 13A, la valeur 02 00 ... (n'oubliez pas d'écrire la valeur à l'envers, c'est-à-dire 02 00 au lieu de
00 02).
Par exemple, pour positionner la panoramique à CNT, il faut envoyer la valeur 0F 00. Récapitulons toutes les
étapes qui composent le sysex :
Octets |
Description |
F0 42 30 35 |
Entête (pour le cannal global 1) |
41 |
Parameter change |
1C |
Paramètres panoramique de l'osc. 1 (LSB) |
00 |
Paramètres panoramique de l'osc. 1 (MSB) |
0F |
Valeur de la panoramique (LSB) |
00 |
Valeur de la panoramique (MSB) |
F7 |
EOX |
Le sysex à envoyer est donc : F0 42 30 35 41 1C 00 0F 00 F7
Pour modifier les autres paramètres, il suffit de suivre les instructions données par les différents tableaux
|