Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

6 - Le MIDI

> Forums de discussion > 6 - Le MIDI > Codage pour microcontrôleur Arduino [Résolu]
Dernier post

Codage pour microcontrôleur Arduino [Résolu]

maaou68 utilisateur non connecté
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 ?

#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);
            }
          }
        }
}


eric_p utilisateur non connecté France
Pourrais-tu préciser comment les 'composants' (Arduino, midiserial, Qjack, Gmidimonitor,...) sont reliés entre-eux ? Les messages reçus par midiserial sont bien ceux attendus ?

maaou68 utilisateur non connecté
Voici une image de ma configuration...

Image

maaou68 utilisateur non connecté
Merci ça marche!
J'ai du rajouté le taux de transmission dans la configuration:

void setup()
{
    MIDI.begin(MIDI_CHANNEL_OMNI);
    Serial.begin(38400);
    
    pinMode(2, INPUT_PULLUP);
    pinMode(3, INPUT_PULLUP);
    pinMode(4, INPUT_PULLUP);
    pinMode(5, INPUT_PULLUP);
    
}


Je suis en train de midifier deux claviers d'orgue de 61 touches. Il me reste à tout brancher et à injecter le code dans mes deux arduino mega!

Après ça je jouerai comme un malade...

Merci

Afficher les articles :
Aller au forum :

Documentation [Afficher / Cacher]

Faire un don
[Afficher / Cacher]

Connexion
[Afficher / Cacher]


Mégaphone [Afficher / Cacher]

olinuxx, 14:28, lun. 11 Nov 2024: Bonjour et bienvenue à UMusique cool
calixtus06, 14:31, jeu. 07 Nov 2024: Bonjour et bienvenue à Niko80lille :-)
allany, 17:31, mer. 06 Nov 2024: Pas de chichis, pas de cérémonial, juste l'éditorial ! [Lien]
calixtus06, 18:51, lun. 28 Oct 2024: Bonjour et bienvenue à dawaninja :-)
olinuxx, 08:39, dim. 27 Oct 2024: Bonjour et bienvenue à dangoodboy cool
olinuxx, 13:50, sam. 26 Oct 2024: Bonjour et bienvenue à ladipon cool
allany, 18:33, lun. 07 Oct 2024: Phénoménal, c'est l'éditorial ! [Lien]
calixtus06, 13:16, ven. 27 Sep 2024: Bonjour et bienvenue à tigny :-)
olinuxx, 13:05, dim. 22 Sep 2024: [ANNONCE] Les nouvelles des 7 derniers mois de LibraZiK : [Lien]
olinuxx, 18:46, ven. 20 Sep 2024: Bonjour et bienvenue à manaoxygen cool
calixtus06, 11:24, mar. 17 Sep 2024: Bonjour et bienvenue à PAuf :-)
olinuxx, 21:36, ven. 13 Sep 2024: Bonjour et bienvenue à jearos cool