Bank Select – Program Change – MSB – LSB

MENU

Bank Select - Midi program change - MSB - LSB

Bank Select
Midi
Program Change

La lecture de l’article RPN NRPN pourra aider le lecteur à mieux cerner les explications sur ce sujet du Bank Select.

Midi Program Change

Le message Midi Program Change sert à contrôler les changements de timbres d’un synthétiseur. Au fil du temps, le program change s’est appliqué à tous les appareils compatibles MIDI disposant d’une mémoire de paramètres (consoles de mixage numériques, effets audio numérique, console de lumière etc…)

Le message midi est un message simple avec un seul octet de données

Octet Statut/Canal

Binaire : 1sss/cccc

 Octet de données (n° de programme) (128 valeurs possibles)

Binaire : 1xxxxxxx

Le format du message apporte une contrainte qui n’est apparu qu’à la suite de l’évolution des appareils MIDI. La limite d’adressage est de 128 timbres différents. Pour mémoire, le DX7 de l’époque ne disposait que de 32 mémoires de timbres.

La solution apportée à cela est le système de Bank Select qui repose sur le principe suivant :

Contrôleur 0 + valeur = Bank select MSB (Most Signifiant Byte : Octet de poids fort) – 128 valeurs possibles
Contrôleur 32 + valeur = Bank select LSB (Less Signifiant Byte : Octet de poids faible)- 128 valeurs possibles
Program Change + valeur – 128 valeurs possibles

Cela porte le nombre de mémoires appelables à 1283 soit 2 097 152 valeurs.

Pour donner une explication imagée : 

Nous disposons de 128 placards (sélectionnés par l’envoi d’un message de changement de banque MSB (128 valeurs possibles) (Contrôleur 0) -MSB -most signifiant byte – octet de poids fort-

Dans chacun de ces placards
se trouvent 128 tiroirs (sélectionnés par l’envoi d’un message de changement de banque LSB (128 valeurs possibles) (Contrôleur 32)  LSB less signifiant byte – octet de poids faible

Dans chacun de ces tiroirs
se trouvent 128 timbres (sélectionnés par l’envoi d’un message de program change (128 valeurs possibles) (Program Change)

Nous pouvons donc choisir parmi 128x128x128 sons différents (en théorie bien sûr, les générateurs de sons ne proposent pas un tel choix !)

Dans un logiciel MIDI

Dans le manuel des synthétiseurs

Ici, pour obtenir un des sons
« User Brass section »
il faudra envoyer
CC 0 valeur 1
CC 32 valeur 2
Prog .Change  valeur 1 à 36 selon le son souhaité (à voir dans la liste des sons du manuel du synthé)

Ici, pour obtenir le son
« Piano 3 w »
il faudra envoyer
CC 0 valeur 0
CC 32 valeur 3
Prog .Change  valeur 1

📍 Astuces

Si le manuel du synthétiseur ne précise pas l’un des deux contrôleurs de Bank Select, vous pouvez envoyer 0 pour sa valeur ou tenter de ne pas envoyer le contrôleur absent. (A tester ou à voir dans le manuel).

Certains manuels ou affichages de synthés vous trompent sur les n° de program change !
Le son n°1 répond au Program Change n°0
Le son n°2 répond au program change n°1
etc.

Dans Cubase

Nous ne sommes pas obligés de mettre les commandes bank select et program change dans un segment midi Nous pouvons aussi les mettre dans l’inspecteur de piste MIDI.

Il seront alors envoyés à chaque départ de la séquence.

Mais Cubase ne nous propose pas une case CC0 et une Case CC32. Il y a une seule case.
Il suffit de faire l’opération suivante :
valeur CC0x128 + Valeur CC32

Val Msb x 128) + Val LSB = Valeur à choisir dans Cubase

Vous trouverez un calculateur ici

Astuces 📍

Dans Cubase ces messages générés par l’inspecteur de piste, n’apparaissent pas dans le Midi Monitor, mais ils sont bien envoyés à la sortie MIDI ou inséré lors de la création d’un midifile.

Messages envoyés par l’inspecteur de piste (récupérés pour observation par la création puis l’importation d’un Midi File.

export midifile pour observer bank select
Export midifile pour observer bank select