Publicité
En tant que musicien qui a amassé une collection d'instruments de musique et de boîtes à bruit, l'humble Arduino est l'outil parfait pour créer un contrôleur MIDI personnalisé. Alors que le Raspberry Pi peut avoir pris la couronne pour Internet des objets (IoT) L'Internet des objets: 10 produits utiles à essayer en 2016L'Internet des objets s'intensifie en 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. Lire la suite projets, un simple Arduino Uno (quels sont les différents types d'Arduino? Guide d'achat Arduino: quelle carte devriez-vous acheter?Il existe tellement de types de cartes Arduino que vous seriez pardonné d'être confus. Que devez-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 utilisation d'un Arduino? Pas de soucis, nous avons une liste complète Guide du débutant Arduino Débuter avec Arduino: Guide du débutantArduino est une plate-forme de prototypage électronique open source basée sur du matériel et des logiciels flexibles et faciles à utiliser. Il est destiné aux artistes, designers, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite à lire avant de vous attaquer à ce projet.
Qu'est-ce que le MIDI?
MIDI signifie Musical Instrument Digital Interface. Il décrit une manière standard pour les appareils musicaux de communiquer entre eux. Si vous possédez un clavier électronique, vous avez probablement une interface MIDI. Bien qu'il y ait quelques détails techniques impliqués dans l'implémentation du MIDI, il est important de se rappeler que le MIDI n'est pas 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 produire 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 appareils 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 à cinq broches à l'intérieur du connecteur. L'USB est souvent utilisé à la place du DIN 5 broches, ou une interface USB-MIDI peut être utilisée.
Changement de contrôle et changement de programme
Il existe deux principaux types de messages MIDI: le changement de contrôle et le changement de programme.
Les messages de changement de contrôle (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. Les appareils qui acceptent le MIDI doivent être accompagnés d'un manuel expliquant quels canaux et messages sont configurés par défaut et comment les modifier (connus sous le nom de mappage MIDI).
Les messages de changement de programme (PC) sont plus simples que les messages CC. Les messages PC sont composés d'un seul numéro et sont utilisés pour modifier le préréglage ou le patch sur un appareil. Les messages PC sont parfois appelés «Patch Change». Comme pour les messages CC, les fabricants doivent fournir un document décrivant 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 x résistances 10k ohms
- 2 x interrupteurs momentanés
- Fils de raccordement
- 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 pour répondre à vos besoins. Presque n'importe quel Arduino conviendra - seulement trois broches sont nécessaires pour cet exemple. Ce projet comprend deux boutons pour contrôler le programme, un port MIDI pour envoyer les données et un appareil pour recevoir les messages. Ce circuit a été construit sur un planche à pain Électronique pour débutants: 10 compétences que vous devez savoirBeaucoup d'entre nous n'ont même jamais touché un fer à souder - mais faire des choses peut être incroyablement gratifiant. Voici dix des compétences en électronique de bricolage les plus élémentaires pour vous aider à démarrer. Lire la suite ici, cependant, il est possible de le transférer dans un boîtier de projet et des connecteurs soudés pour une solution robuste.
Assemblage du circuit
Connexion MIDI
Câblez votre prise MIDI comme suit:
- Broche MIDI 5 vers Arduino Transmit (TX) 1 via une résistance de 220 ohms
- Broche MIDI 4 à Arduino + 5V via une résistance de 220 ohms
- Broche MIDI 2 à la masse Arduino
Connexion des boutons
Les boutons fonctionnent en changeant la résistance que l'Arduino «voit». La broche Arduino passe directement du commutateur à la masse (FAIBLE) via une résistance de 10k ohms (une résistance "pull down", garantissant que la valeur reste basse). Lorsque le bouton est enfoncé, la valeur vue par le circuit passe à + 5v sans résistance (HAUTE). L'Arduino peut détecter ce changement en utilisant le digitalRead (broche) commander. Connectez les boutons aux broches 6 et 7 de l'entrée / sortie numérique (E / S) Arduino. Connectez les deux boutons:
- Côté gauche du bouton à + 5V
- Côté droit du bouton vers la terre Arduino via une résistance de 10k ohms
- Côté droit du bouton vers 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 câblé sur la maquette envoie des données, c'est donc la sortie. Votre ordinateur reçoit les données, c'est donc l'entrée. Ce projet utilise l'excellent Arduino Bibliothèque MIDI v4.2 par Forty Seven Effects. Une fois que vous avez installé la bibliothèque, 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 les fenêtres
- KMidimon pour Linux
Connectez l'Arduino Prise en main de votre kit de démarrage Arduino - Installation des pilotes et configuration de la carte et du portDonc, vous vous êtes acheté un kit de démarrage Arduino et peut-être d'autres composants sympas au hasard - et maintenant? Comment commencez-vous réellement à programmer cette chose Arduino? Comment le configurez-vous... Lire la suite sur votre ordinateur et téléchargez le code de test suivant (n'oubliez pas de sélectionner la carte et le port appropriés Outils> Conseil 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 de canal (1000); // attend 1 seconde midiOut.sendProgramChange (12,1); // envoie un PC MIDI - 12 = valeur, 1 = retard de canal (1000); // attend 1 seconde. }
Ce code enverra un message CC, attendra 1 seconde, enverra un message PC puis attendra 1 seconde indéfiniment. Si tout fonctionne correctement, un message devrait apparaître sur votre moniteur MIDI.
Si rien ne se passe, pas de panique! Essayez le dépannage:
- Assurez-vous que toutes les connexions sont correctes
- Vérifiez que le port MIDI est correctement câblé - 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 ayant des problèmes, il peut être utile 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é en travaillant sur ce projet.
Test des boutons
Il est maintenant temps de tester que les boutons fonctionnent correctement. Téléchargez le code de test suivant. Le MIDI n'a pas besoin d'être connecté pour tester cette partie.
const int buttonOne = 6; // attribue la broche du bouton à la variable. const int buttonTwo = 7; // attribue la broche du bouton à la configuration variable void () {Serial.begin (9600); // configuration série pour le texte pinMode (buttonOne, INPUT); // bouton de configuration en tant que pinMode d'entrée (buttonTwo, INPUT); // bouton de configuration en entrée. } void loop () {if (digitalRead (buttonOne) == HIGH) {// vérifier le retard de l'état du bouton (10); // rebond du logiciel if (digitalRead (buttonOne) == HIGH) {// vérifier à nouveau l'état du bouton Serial.println ("Button One Works!"); // journal retard du résultat (250); }} if (digitalRead (buttonTwo) == HIGH) {// vérifier le retard de l'état du bouton (10); // rebond du logiciel if (digitalRead (buttonTwo) == HIGH) {// vérifier à nouveau l'état du bouton Serial.println ("Button Two Works!"); // journal retard du résultat (250); } } }
Exécutez ce code (mais gardez 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 "Button One Works!" ou "Button Two Works!" en fonction du bouton sur lequel vous avez appuyé.
Il y a une note importante à retenir de cet exemple - le rebond du logiciel. Il s'agit d'un simple délai de 10 millisecondes (ms) entre la vérification du bouton et la vérification à nouveau du bouton. Cela augmente la précision de la pression sur le bouton et aide à empêcher le bruit de déclencher l'Arduino. Vous n'avez pas à 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 enverra un message CC différent pour chaque bouton enfoncé. Je l'utilise pour contrôler Ableton Live 9.6 sur OS X. Le code est similaire aux deux exemples de test ci-dessus.
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre const int buttonOne = 6; // attribue la broche du bouton à la variable. const int buttonTwo = 7; // assigne la broche du bouton à la variable MIDI_CREATE_INSTANCE (HardwareSerial, Serial, midiOut); // crée un objet MIDI appelé midiOut void setup () {pinMode (buttonOne, INPUT); // bouton de configuration en tant que pinMode d'entrée (buttonTwo, INPUT); // bouton de configuration en entrée Serial.begin (31250); // configurer la sortie MIDI. } void loop () {if (digitalRead (buttonOne) == HIGH) {// vérifier le retard de l'état du bouton (10); // logiciel de rebond 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 de canal (250); }} if (digitalRead (buttonTwo) == HIGH) {// vérifier le retard de l'état du bouton (10); // logiciel de rebond si (digitalRead (buttonTwo) == HIGH) {// vérifier à nouveau l'état du bouton midiOut.sendControlChange (42,127,1); // envoie un CC MIDI - 42 = note, 127 = vélocité, 1 = retard de 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
Voici une démonstration en tant que contrôleur pour Ableton Live (Le meilleur logiciel DJ pour tous les budgets Le meilleur logiciel DJ pour tous les budgetsUn bon logiciel de mixage peut faire toute la différence dans vos performances. Que vous utilisiez un Mac, Windows ou Linux, chaque niveau de compétence et de budget est pris en compte si vous souhaitez commencer le DJing. Lire la suite ). En haut à droite, les indicateurs audio et en haut au milieu, les messages MIDI entrants (via Moniteur MIDI sous OS X).
Avez-vous créé un contrôleur MIDI?
Il existe de nombreuses utilisations pratiques pour un contrôleur MIDI personnalisé. Vous pouvez construire une vaste unité à pédale ou un élégant contrôleur de studio. Et si vous êtes intéressé à en acheter un, voici les meilleurs contrôleurs MIDI USB Les 9 meilleurs contrôleurs MIDI USB pour musiciensA la recherche d'un contrôleur MIDI USB? Voici les meilleurs contrôleurs MIDI que vous pouvez acheter dès maintenant, quel que soit votre budget. Lire la suite vous pouvez acheter.
Crédit d'image: Keith Gentry via Shutterstock.com
Joe est diplômé en informatique de l'Université de Lincoln, au Royaume-Uni. C'est un développeur de logiciels professionnel, et lorsqu'il ne pilote pas de drones ou n'écrit pas de musique, il peut souvent être trouvé en train de prendre des photos ou de produire des vidéos.