Codage pour microcontrôleur Arduino [Résolu]
Bonjour,
Je suis sur Librazik3.
Je voudrais midifier un clavier avec ma carte arduino 2560 en utilisant chaque pin pour une note distincte.
En utilisant hairless-midiserial avec QjackCtl, ce sketch que je téléverse avec l'IDE d'Arduino fonctionne bien, mais il n'est pas exploitable avec un instrument virtuel. Le message qui s'affiche sur Gmidimonitor lorsque je connecte GND aux pins 2,3,4 ou 5 est:
Channel 1 / Message: Program change, 0 (acoustic piano)...
Pouvez-vous m'aider à écrire le code pour que chacun de mes pins envoie une note différente à mon ordinateur et qu'elles puissent être jouées par un instrument virtuel ?
Je suis sur Librazik3.
Je voudrais midifier un clavier avec ma carte arduino 2560 en utilisant chaque pin pour une note distincte.
En utilisant hairless-midiserial avec QjackCtl, ce sketch que je téléverse avec l'IDE d'Arduino fonctionne bien, mais il n'est pas exploitable avec un instrument virtuel. Le message qui s'affiche sur Gmidimonitor lorsque je connecte GND aux pins 2,3,4 ou 5 est:
Channel 1 / Message: Program change, 0 (acoustic piano)...
Pouvez-vous m'aider à écrire le code pour que chacun de mes pins envoie une note différente à mon ordinateur et qu'elles puissent être jouées par un instrument virtuel ?
Copy to clipboard
#include <MIDI.h> MIDI_CREATE_DEFAULT_INSTANCE(); int mem [] = { 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); } void loop() { int sensorVal [] = { !digitalRead(2), !digitalRead(3), !digitalRead(4), !digitalRead(5) }; for (int j = 0; j < 4; 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); } } } }