Processing
|
- Outils disponibles :
- Patch de test de pilotage d’un actionneur en 256 pas
- Patch de test de pilotage d’un actionneur en 128 pas
Pleine résolution 256 pas
Les messages Midi acceptent 128 valeurs différentes tandis que les instructions DMX permettent d’avoir 256 pas. La carte Midi vers DMX a deux modes de fonctionnement : soit elle permet de distribuer 256 valeurs sur deux Control Change Midi, donc de piloter un actionneur avec autant de finesse que le permet le protocole DMX, soit elle utilise un seul CC en 128 pas et multiplie les valeurs par 2 pour passer en DMX.
La library Midi utilisée est TheMidiBus.
Sketch .pde : Pilotage d’un actionneur DMX en 256 pas de résolution
Sur la carte, l’interrupteur de configuration n° 5 doit être en position Off.
La valeur envoyée est affichée en vert.
Les valeurs de la glissière sont définies entre 0 et 255.
La variable envoyée en sortie est consignedmx. Le cœur du programme crée les messages Control Change en fonction de la valeur envoyée :
if (consignedmx<0) {
consignedmx = 0 ;
}
if (consignedmx>255) {
consignedmx = 255 ;
}
if (consignedmx<128) {
valeurmidi = consignedmx ;
numeromidi = (numerodmx * 2) % 128 ;
canalmidi = ((numerodmx % 512)/64) ;
}
if (consignedmx>=128) {
valeurmidi = consignedmx - 128 ;
numeromidi = ((numerodmx * 2) + 1) % 128 ;
canalmidi = ((numerodmx % 512)/64) ;
}
myBus.sendControllerChange(canalmidi, numeromidi, valeurmidi) ;
Running status Midi
Attention au phénomène éventuel de running status lié au protocole Midi. Une page dédiée à ce sujet : running status.
Résolution 128 pas
Sketch .pde : Pilotage d’un actionneur DMX en 128 pas de résolution
Sur la carte, l’interrupteur de configuration n° 5 doit être en position On.
Il n’y a pas besoin de quoi que ce soit de particulier pour traduire du Midi en DMX dans cette configuration.
Envoi d’une rampe sur les 4 premiers canaux DMX :
for(int i=0 ; i<4 ; i=i+1) {
lampes[i]=(compteur+i*20)%128 ;
// sendControllerChange(canal, numero, valeur)
// sendControllerChange(channel, number, value)
myBus.sendControllerChange(0, i, lampes[i]) ;
{
La fonction nécessaire est tout simplement un "sendControllerChange()". Le premier paramètre permet de choisir le numéro de canal Midi (entre 1 et 16) qui correspond aux interrupteurs 1 à 4 sur la carte. Le deuxième sert à choisir le numéro de l’actionneur, qui doit être compris entre 0 et 63. Le troisième sert à envoyer les valeurs à l’actionneur en gradation sur 128 pas (attention à la configuration de la carte, sur l’interrupteur n°5).
Les valeurs des sliders sont définies entre 0 et 127.
La carte se charge de la transposition des valeurs entre 0 et 255 pour les instructions DMX.