Bonjour !
Je réalise un contrôleur midi dans le but de l'utiliser avec le logiciel Ableton Live 9.
Au niveau du montage :
(Ce schéma est magnifique)
J'ai trouvé/modifié un code qui fonctionne parfaitement pour les 7 boutons :
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 }; 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); } } } }
Est-ce que vous avez une idée de comment le faire fonctionner ?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); } } } } }
Merci d'avance pour votre aide !
-----