Comment faire un contrôleur MIDI avec un Arduino

Comment faire un contrôleur MIDI avec un Arduino / DIY

En tant que musicien qui a amassé une collection d’instruments de musique et de boîtes à sons, l’humble Arduino est l’outil idéal pour créer un contrôleur MIDI personnalisé. Alors que le Raspberry Pi a peut-être remporté le titre d'Internet des objets (IoT): l'Internet des objets: 10 produits utiles à essayer en 2016 L'Internet des objets: 10 produits utiles à essayer en 2016 L'Internet des objets est en pleine expansion 2016, mais qu'est-ce que cela signifie exactement? Comment bénéficiez-vous personnellement de l'Internet des objets? Voici quelques produits utiles à illustrer. Lisez davantage de projets, un simple Arduino Uno (quels sont les différents types d’Arduino? Guide d’achat Arduino: Quelle planche devriez-vous vous procurer? Guide d’achat Arduino: Quelle carte devriez-vous vous procurer? "Ce qui devrait vous acheter pour votre projet? Laissez-nous vous aider, avec ce guide d'achat Arduino! Lire la suite) a plus qu'assez de puissance pour ce projet.

Première fois en utilisant un Arduino? Pas de soucis, nous avons un guide complet du débutant Arduino Démarrer avec Arduino: Un guide pour débutant Démarrer avec Arduino: Un guide pour débutant Arduino est une plate-forme de prototypage électronique à code source ouvert basée sur un matériel et un logiciel flexibles et faciles à utiliser. Il est destiné aux artistes, concepteurs, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite à lire avant de s'attaquer à ce projet.

Qu'est-ce que le MIDI??

MIDI est l'acronyme de Musical Instrument Digital Interface. Il décrit un moyen standard pour les appareils musicaux de communiquer les uns avec les autres. Si vous possédez un clavier électronique, vous avez probablement une interface MIDI. Bien que quelques détails techniques soient impliqués dans la mise en œuvre du MIDI, il est important de se rappeler que le MIDI n'est pas de l'audio! Les données MIDI sont un simple ensemble d’instructions (une instruction est appelée “message”) qu'un autre appareil peut implémenter pour émettre différents sons ou paramètres de contrôle.

MIDI prend en charge 16 canaux. Cela signifie que chaque câble peut prendre en charge 16 périphériques différents communiquant indépendamment les uns avec les autres. Les appareils sont connectés à l'aide d'un câble DIN à 5 broches. DIN signifie “Institut allemand de normalisation”, et est simplement un câble avec cinq broches à l'intérieur du connecteur. USB est souvent utilisé à la place de DIN à 5 broches, ou une interface USB-MIDI peut être utilisée.

Contrôle du changement et changement de programme

Il existe deux types principaux de messages MIDI: Control Change et Program Change..

Les messages de changement de commande (CC) contiennent un numéro de contrôleur et une valeur comprise entre 0 et 127. Les messages CC sont souvent utilisés pour modifier des paramètres tels que le volume ou la hauteur tonale. Les périphériques qui acceptent le MIDI devraient accompagner d’un manuel expliquant quels canaux et quels messages sont configurés par défaut et comment les changer (appelé mappage MIDI)..

Les messages de changement de programme (PC) sont plus simples que les messages CC. Les messages PC consistent en un numéro unique et sont utilisés pour modifier le préréglage ou le patch sur un périphérique. Les messages PC sont parfois appelés “Changement de patch”. Semblables aux messages CC, les fabricants devraient fournir un document indiquant les préréglages modifiés par un message particulier..

Ce dont vous aurez besoin

  • Arduino
  • Prise femelle DIN 5 broches
  • 2 résistances de 220 ohms
  • 2 résistances de 10k ohms
  • 2 x commutateurs momentanés
  • Fils de connexion
  • Planche à pain
  • Câble MIDI
  • Périphérique MIDI ou interface USB

Eau et bois 5 pcs DIN 5 broches montage PCB prise femelle pour clavier PC Eau et bois 5 pcs DIN 5 broches montage PCB prise femelle pour PC clavier Acheter maintenant sur Amazon $ 2.79

Plan de construction

Ce projet sera assez simple. Vous pouvez bien sûr ajouter plus de boutons ou de matériel en fonction de vos besoins. Presque tous les Arduino conviendront - il suffit de trois broches pour cet exemple. Ce projet comprend deux boutons pour contrôler le programme, un port MIDI pour envoyer les données et un périphérique pour recevoir les messages. Ce circuit a été construit sur une planche à modeler Électronique pour débutant: 10 compétences à connaître Électronique pour débutant: 10 compétences à connaître Nous sommes nombreux à n'avoir jamais touché à un fer à souder, mais cela peut être extrêmement enrichissant. Voici dix des compétences de base en électronique de bricolage pour vous aider à démarrer. Lisez plus ici, cependant il est possible de le transférer dans une boîte de projet et des connecteurs soudés pour une solution robuste.

Assemblage de circuit

Connexion MIDI

Connectez votre prise MIDI comme suit:

  • Broche MIDI 5 vers Arduino Transmit (TX) 1 via une résistance de 220 ohm
  • Broche MIDI 4 vers Arduino + 5V via une résistance de 220 ohms
  • Broche MIDI 2 au sol Arduino

Bouton de connexion

Les boutons fonctionnent en changeant la résistance de l'Arduino “voit”. La broche Arduino traverse le commutateur directement à la terre (FAIBLE) via une résistance de 10 000 ohms (un “tirer vers le bas” résistance, en s'assurant que la valeur reste basse). Lorsque vous appuyez sur le bouton, la valeur détectée par le circuit passe à + 5v sans résistance (HAUTE). L’Arduino peut détecter ce changement en utilisant le bouton digitalRead (pin) commander. Connectez les boutons aux broches 6 et 7 de l’entrée / sortie numérique Arduino (I / O). Connectez les deux boutons:

  • Côté gauche du bouton à + 5V
  • Côté droit du bouton vers l'Arduino Ground via une résistance de 10 000 ohms
  • Côté droit du bouton sur la broche Arduino (6 ou 7)

Test MIDI

Maintenant que tout le matériel est terminé, il est temps de le tester. Vous aurez besoin d'une interface USB-MIDI (de nombreuses interfaces audio peuvent le faire) et d'un câble MIDI. Le port MIDI branché sur la maquette est l’envoi de données, c’est donc la sortie. Votre ordinateur reçoit les données, donc c'est l'entrée. Ce projet utilise l'excellent Arduino MIDI Library v4.2 de Forty Seven Effects. Une fois la bibliothèque installée, vous pouvez l’inclure dans votre code en allant sur Esquisse> Inclure la bibliothèque> MIDI.

Vous aurez également besoin d’un programme pour surveiller les données MIDI entrantes:

  • Moniteur MIDI pour OS X
  • MIDI-OX pour Windows
  • KMidimon pour Linux

Connexion de l’Arduino Mise en route de votre kit de démarrage Arduino - Installation des pilotes et configuration de la carte et du port Mise en route de votre kit de démarrage Arduino - Installation des pilotes et configuration de la carte et du port Vous avez donc acheté vous-même un kit de démarrage Arduino et éventuellement d'autres composants sympas au hasard - et maintenant? Comment commencez-vous réellement à programmer cette chose Arduino? Comment le configurez-vous… Lisez-en plus sur votre ordinateur et chargez le code de test suivant (n'oubliez pas de sélectionner le bon conseil et le bon port Outils> Tableau et Outils> Port menus).

#comprendre  #comprendre  #comprendre  #comprendre  #comprendre  MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // crée un objet MIDI appelé midiOut void setup () Serial.begin (31250); // configuration série pour MIDI void loop () midiOut.sendControlChange (56,127,1); // envoie un CC MIDI - 56 = note, 127 = vélocité, 1 = retard du canal (1000); // attend 1 seconde midiOut.sendProgramChange (12,1); // envoie un PC MIDI - 12 = valeur, 1 = délai de canal (1000); // attend 1 seconde

Ce code envoie un message CC, attendez 1 seconde, envoyez un message PC, puis attendez 1 seconde indéfiniment. Si tout fonctionne correctement, un message devrait apparaître sur votre moniteur MIDI..

Si rien ne se passe, ne paniquez pas! Essayez de dépanner:

  • Assurez-vous que toutes les connexions sont correctes
  • Vérifiez que le port MIDI est câblé correctement - il devrait y avoir 2 broches de rechange sur les bords extérieurs
  • Vérifiez que le circuit est correct
  • Vérifiez que le circuit est connecté à une interface USB-MIDI avec un câble MIDI
  • Vérifiez que votre câble MIDI est connecté au contribution sur votre interface USB-MIDI
  • Assurez-vous que l'Arduino est alimenté
  • Installez le pilote approprié pour votre interface USB-MIDI

Si vous êtes encore avoir des problèmes, il pourrait être intéressant de vérifier votre planche à pain. Les planches bon marché peuvent parfois être très incohérentes et de mauvaise qualité - cela m'est arrivé pendant que je travaillais sur ce projet.

Test des boutons

Il est maintenant temps de tester les boutons fonctionnent correctement. Téléchargez le code de test suivant. MIDI n'a pas besoin d'être connecté pour tester cette partie.

const int buttonOne = 6; // attribue une broche de bouton à la variable const int buttonTwo = 7; // attribue une broche de bouton à une variable void setup () Serial.begin (9600); // configuration série pour le texte pinMode (buttonOne, INPUT); // bouton de configuration comme entrée pinMode (buttonTwo, INPUT); // bouton de configuration en tant qu'entrée void loop () if (digitalRead (buttonOne) == HIGH) // vérifie le délai de l'état du bouton (10); // logiciel de rebondissement du logiciel if (digitalRead (buttonOne) == HIGH) // vérifie à nouveau l'état du bouton Serial.println ("Button One Works!"); // enregistre le résultat du délai (250);  if (digitalRead (buttonTwo) == HIGH) // coche l'état du bouton retard (10); // logiciel de rebondissement du logiciel if (digitalRead (buttonTwo) == HIGH) // vérifie à nouveau l'état du bouton Serial.println ("Button Two Works!"); // enregistre le résultat du délai (250);  

Exécutez ce code (tout en gardant le câble USB connecté) et ouvrez le moniteur série (En haut à droite> Moniteur série). Lorsque vous appuyez sur un bouton, vous devriez voir “Bouton One Works!” ou “Bouton deux œuvres!” en fonction du bouton sur lequel vous avez appuyé.

Il convient de retenir de cet exemple une remarque importante: le logiciel de rebond. Il s’agit d’un simple délai de 10 millisecondes (ms) entre la vérification du bouton et la nouvelle vérification du bouton. Cela augmente la précision de l'appui sur le bouton et aide à empêcher le bruit de déclencher l'Arduino. Vous n'êtes pas obligé de le faire, bien que cela soit recommandé.

Création du contrôleur

Maintenant que tout est câblé et fonctionne, il est temps d'assembler le contrôleur complet.

Cet exemple envoie un message CC différent pour chaque bouton sur lequel vous appuyez. J'utilise ceci pour contrôler Ableton Live 9.6 sur OS X. Le code est similaire aux exemples de test ci-dessus..

#comprendre  #comprendre  #comprendre  #comprendre  #comprendre  const int buttonOne = 6; // attribue une broche de bouton à la variable const int buttonTwo = 7; // attribue une broche de bouton à la variable MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // crée un objet MIDI appelé midiOut void setup () pinMode (buttonOne, INPUT); // bouton de configuration comme entrée pinMode (buttonTwo, INPUT); // bouton de configuration comme entrée Serial.begin (31250); // configuration de la sortie MIDI void loop () if (digitalRead (buttonOne) == HIGH) // check le délai de l'état du bouton (10); // logiciel de rebond logiciel if (digitalRead (buttonOne) == HIGH) // vérifie à nouveau l'état du bouton midiOut.sendControlChange (56,127,1); // envoie un CC MIDI - 56 = note, 127 = vélocité, 1 = retard du canal (250);  if (digitalRead (buttonTwo) == HIGH) // coche l'état du bouton retard (10); // logiciel de rebondissement du logiciel if (digitalRead (buttonTwo) == HIGH) // contrôle à nouveau l'état du bouton midiOut.sendControlChange (42,127,1); // envoie un CC MIDI - 42 = note, 127 = vélocité, 1 = retard du canal (250);  

Remarque - vous ne pourrez pas utiliser Serial.println () avec sortie MIDI.
Si vous voulez envoyer un message PC au lieu d'un CC, remplacez simplement:

midiOut.sendControlChange (42,127,1);

Avec:

midiOut.sendProgramChange (valeur, canal); 

En action

Vous trouverez ci-dessous une démonstration en tant que contrôleur pour Ableton Live (meilleur logiciel DJ pour tous les budgets. Le meilleur logiciel DJ pour tous les budgets. Le meilleur logiciel DJ pour tous les budgets. Un bon logiciel de mixage peut faire toute la différence dans vos performances. Que vous utilisiez un Mac Windows ou Linux, tous les niveaux de compétences et de budgets sont pris en compte si vous souhaitez commencer à jouer au DJing. En haut à droite, les indicateurs audio et en haut au centre, les messages MIDI entrants (via MIDI Monitor sur OS X).

Avez-vous fait un contrôleur MIDI?

Il existe de nombreuses utilisations pratiques pour un contrôleur MIDI personnalisé. Vous pouvez construire une vaste unité de contrôle au pied ou un contrôleur de studio élégant. Avez-vous créé un contrôleur MIDI personnalisé? Faites-moi savoir dans les commentaires, je serais ravi de les voir!

Crédit d'image: Keith Gentry via Shutterstock.com

En savoir plus sur: Arduino, Logiciels de DJ, Electronique, MIDI.