Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Interrupteur contrôleur midi Arduino



  1. #1
    JasonMatt

    Interrupteur contrôleur midi Arduino


    ------

    Bonjour !

    Je réalise un contrôleur midi dans le but de l'utiliser avec le logiciel Ableton Live 9.
    Au niveau du montage :
    1440847099-montage.png
    (Ce schéma est magnifique)

    J'ai trouvé/modifié un code qui fonctionne parfaitement pour les 7 boutons :

    Code:
    #include <MIDI.h>
    
    MIDI_CREATE_DEFAULT_INSTANCE();
    
    int mem[] = { 0, 0, 0, 0, 0, 0, 0 };
    
    void setup()
    {
      MIDI.begin(MIDI_CHANNEL_OMNI);
    
      pinMode(2, INPUT_PULLUP);
      pinMode(3, INPUT_PULLUP);
      pinMode(4, INPUT_PULLUP);
      pinMode(5, INPUT_PULLUP);
      pinMode(6, INPUT_PULLUP);
      pinMode(7, INPUT_PULLUP);
      pinMode(8, INPUT_PULLUP);
    }
    
    void loop() {
      int sensorVal[] = {
        !digitalRead(2), !digitalRead(3),
        !digitalRead(4), !digitalRead(5),
        !digitalRead(6), !digitalRead(7), !digitalRead(8)
      };
    
      for (int j = 0; j < 7; j++) {
        if (sensorVal [j] != mem [j]) {
          mem [j] = sensorVal [j];
    
          if (mem[j]) {
            MIDI.sendNoteOn(j + 48, 64, 1);
          } else {
            MIDI.sendNoteOff(j + 48, 64, 1);        
          }
        }
      }
    }
    Cependant j'essaye de faire fonctionner l'interrupteur de façon à pouvoir utiliser les boutons de 2 façons différentes (Selon la position de l'interrupteur) pour avoir 14 possibilités de mappage midi mais ça ne fonctionne pas du tout :
    Code:
    #include <MIDI.h>
    
    MIDI_CREATE_DEFAULT_INSTANCE();
    
    int mem[] = { 0, 0, 0, 0, 0, 0, 0 };
    
    
    int interA;
    int interB;
    
    void setup()
    {
      
      MIDI.begin(MIDI_CHANNEL_OMNI);
    
      pinMode(2, INPUT_PULLUP);
      pinMode(3, INPUT_PULLUP);
      pinMode(4, INPUT_PULLUP);
      pinMode(5, INPUT_PULLUP);
      pinMode(6, INPUT_PULLUP);
      pinMode(7, INPUT_PULLUP);
      pinMode(8, INPUT_PULLUP);
    
      pinMode(9, INPUT_PULLUP);
      pinMode(10, INPUT);
      
      interA = HIGH;
      interB = LOW;
    
    }
    
    void loop() {
      int sensorVal[] = {
        !digitalRead(2), !digitalRead(3),
        !digitalRead(4), !digitalRead(5),
        !digitalRead(6), !digitalRead(7), 
        !digitalRead(8), 
      };
    
    interA = { !digitalRead(9) } ; 
    interB = { !digitalRead(10) };    
    
        
    if (interA = LOW)
    {
      for (int j = 0; j < 7; j++) {
        if (sensorVal [j] != mem [j]) {
          mem [j] = sensorVal [j];
    
          if (mem[j]) {
            MIDI.sendNoteOn(j + 48, 64, 1);
          } else {
            MIDI.sendNoteOff(j + 48, 64, 1);        
          }
        }
      }
    }
    
    if (interB = LOW)
    { 
      for (int j = 0; j < 7; j++) {
        if (sensorVal [j] != mem [j]) {
          mem [j] = sensorVal [j];
    
          if (mem[j]) {
            MIDI.sendNoteOn(j + 80, 64, 1);
          } else {
            MIDI.sendNoteOff(j + 80, 64, 1);        
          }
        }
      }
    }  
    }
    Est-ce que vous avez une idée de comment le faire fonctionner ?
    Merci d'avance pour votre aide !

    -----
    Dernière modification par gienas ; 02/08/2017 à 07h01. Motif: Ajouté les balises code obligatoires pour les programmes

Discussions similaires

  1. [Programmation] Fabrication d'une batterie électronique avec Arduino et MIDI
    Par paseninfo dans le forum Électronique
    Réponses: 0
    Dernier message: 28/05/2016, 17h43
  2. Arduino et contrôleur moteur
    Par Thooto dans le forum Électronique
    Réponses: 6
    Dernier message: 22/06/2015, 08h06
  3. Probleme usb sur controleur midi
    Par LopDog dans le forum Électronique
    Réponses: 0
    Dernier message: 06/06/2011, 19h45
  4. Réponses: 11
    Dernier message: 22/11/2010, 14h33
  5. controleur midi
    Par laglotte dans le forum Électronique
    Réponses: 0
    Dernier message: 02/09/2008, 19h05
Découvrez nos comparatifs produits sur l'informatique et les technologies.