• *
  • Isadora
  • Max
  • Processing
  • Pure Data
  • Midi vers DMX

    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.

    bouton-bleuSketch .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.

    midi-dmx-envoi256
    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) ;

    bouton-bleuRunning 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

    bouton-bleuSketch .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.

    midi-dmx-envoi
    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.