Comment faire un contrôleur MIDI avec un Arduino

  • Michael Cain
  • 0
  • 4931
  • 802
Publicité

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) 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 train de prendre de l'ampleur 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. projets, un simple Arduino Uno (quels sont les différents types d’Arduino? Guide d’achat Arduino: Quelle carte devriez-vous vous procurer? Guide d’achat Arduino: Quelle carte devez-vous obtenir? Il existe de nombreux types de cartes Arduino pardonnez-vous d’être confus. Lequel devriez-vous acheter pour votre projet? Laissez-nous vous aider, avec ce guide d’achat Arduino!) a plus que suffisamment de puissance pour ce projet.

Première fois en utilisant un Arduino? Nous avons un guide complet du débutant Arduino Initiation à Arduino: Un guide du débutant Initiation à Arduino: Un guide du 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 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. L’USB remplace souvent le 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 appareils 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

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 que vous devez connaître Électronique pour débutant: 10 compétences que vous devez connaître Nous sommes nombreux à n'avoir jamais touché à un fer à souder. Voici dix des compétences de base en électronique de bricolage pour vous aider à démarrer. 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 veillant à ce 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 digitalLire (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 connecté à la maquette est en train d'envoyer des données, il s'agit donc de 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… sur votre ordinateur et téléchargez le code de test suivant (n'oubliez pas de sélectionner la carte et le port corrects dans le Outils> Tableau et Outils> Port menus).

#include #include #include #include #include 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 bon pilote 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) // vérifie le délai de l'état du bouton (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 y a une note importante à retenir de cet exemple: 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 qu'il 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..

#include #include #include #include #include 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 si (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) // vérifie le délai de l'état du bouton (10); // logiciel de rebond logiciel si (digitalRead (buttonTwo) == HIGH) // vérifie à 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 souhaitez 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étence et de budget 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é à commande au pied ou un contrôleur de studio élégant. Et si vous souhaitez en acheter un, voici les meilleurs contrôleurs MIDI USB Les 9 meilleurs contrôleurs MIDI USB pour les musiciens Les 9 meilleurs contrôleurs MIDI USB pour les musiciens À la recherche d'un contrôleur MIDI USB? Voici les meilleurs contrôleurs MIDI que vous pouvez acheter maintenant, quel que soit votre budget. vous pouvez acheter.

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




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.