Arduino Midi Class - Matériel, codes et raccourcis explorés: 11 étapes

Arduino Midi Class - Matériel, codes et raccourcis explorés: 11 étapes

Table des matières:

Anonim

Sur Internet, de nombreux fabricants créent des instruments de musique impressionnants à l’aide de l’interface MIDI.

Vous pensez peut-être «J'aimerais avoir un kit de batterie électronique». Simple frère, construis-le toi-même.

Vous pensez peut-être "Je veux une table de mixage pour contrôler garageband, mais elles sont beaucoup trop chères."

Trop facile! Un tel projet simple. Une fois que vous savez comment faire, vous pouvez le faire en un week-end.

Vous pourriez penser "Si seulement je pouvais utiliser mes chaussures de claquettes pour jouer d'autres sons!"

Il suffit de placer des capteurs piézo sur le bas de vos chaussures de claquettes et d’envoyer le rythme en midi.

Vous pensez peut-être "Je voudrais pouvoir jouer un groupe de rock avec une vraie guitare!"

Mettez la détection tactile capacitive sur les cordes de votre guitare et envoyez le fichier midi à votre contrôleur de groupe de rock.

Vous pensez peut-être maintenant: "Est-ce que je pourrais demander à mon chat de jouer de la batterie en léchant le lait d'un bol en métal à détection capacitive?" Oui, vous pouvez!

Vous pourriez penser, "Si seulement je pouvais jouer de la musique en utilisant les forces de la nature !!"

La réponse à cette question est oui, vous pouvez! Placez un capteur d'humidité dans le sol, un capteur de pluie, un capteur de vent, un capteur de lumière, un capteur de température, des capteurs de courbure sur des branches d'arbres minces, des capteurs de vibrations ou des capteurs de choc sur des branches qui se touchent. Faites en sorte que l'Arduino transforme tout cela en signaux MIDI… Les Arduino sont excellents pour ce genre de chose.

Si vous tapez midi dans la barre de recherche d'instructables, vous trouverez des centaines et des centaines de projets différents. Midi ouvre la musique à une toute nouvelle gamme d'options. Et ainsi commence votre passion pour la fabrication d’instruments de musique étranges et merveilleux. (Des excuses à votre partenaire, vos enfants ou à vos colocataires pour l'espace utilisé pour stocker tous ces nouveaux objets, mais ils ne doivent pas nécessairement être grands.)

Cet instructable est conçu pour vous aider à décider où regarder et ce qu’il faut prendre en compte lors du démarrage d’un projet MIDI.

Les périphériques plug and play USB sont parfaits pour contrôler toutes sortes de programmes musicaux sur des ordinateurs, vous permettant d’enregistrer une large gamme de sons à partir d’un seul clavier ou d’un périphérique MIDI. Les appareils Midi vont des consoles de mixage aux installations d'éclairage, en passant par les fonctions de griffe DJ et de pavé de boutons, en passant par les harpes Lazer, les iPad et le clavier standard. Midi est la façon dont chacun de ces contrôleurs peut parler aux ordinateurs ou les uns aux autres et comprendre les messages musicaux envoyés.

N'oubliez pas que Midi n'est pas un son, ce sont les instructions pour le son. Créer un contrôleur MIDI est un moyen de créer de la musique via une interface MIDI telle qu'un clavier, une batterie électronique ou un ordinateur avec un logiciel MIDI (GarageBand, Mainstage, Logique, Ableton Live, Fruityloops, etc.).

Pour plus d'informations sur le MIDI, je recommande vivement cette instruction

Je recommande également vivement de visiter la page d'Amandaghassaei et de parcourir ses instructables très complètes. Je recommande aussi fortement le tutoriel MIDI de sparkfun.

Arduino midi est un mouvement de bricolage d'instruments numériques. Cela commence avec les claviers basiques fabriqués à partir de bananes jusqu'aux algorithmes complexes de suivi des danseurs dans l'espace 3D. Arduino ajoute la possibilité pour un large éventail de capteurs de devenir soudainement musicaux. Flexion, rotation, distance, lumière, température, pression … arduino dispose d’une vaste gamme de capteurs compatibles et l’ajout du MIDI à l’arduino crée des possibilités musicales sans fin. Que vous utilisiez des capteurs de lumière, des capteurs de température, des capteurs de pluie et d’humidité du sol pour cartographier la météo dans une chanson, jusqu’à ce qu’un kit de batterie lise vos notes midi et se joue à l’aide de moteurs. Cet instructable est là pour vous donner des conseils et stimuler votre imagination.

Spécifications techniques sur le Midi

En outre, il y a beaucoup d'informations utiles dans cet instructable qui ne doivent pas être négligées.

Dans cette instruction, chaque étape est indépendante du reste. Vous pouvez mélanger et assortir les étapes selon vos préférences et votre projet. Aucune des étapes n'est obligatoire, il y a plusieurs façons de le faire.

De plus, je suis super ouvert à la collaboration sur cet instructable, donc si vous voulez éditer, ajouter ou corriger quelque chose dans cet instructable, envoyez-moi un message et je vous ajouterai en tant que collaborateur. L'objectif est de créer une vue très complète d'arduino midi.

Provisions:

Étape 1: cartes Arduino

Selon ce que vous voulez réaliser, vous devez prendre en compte un certain nombre de cartes Arduino. Les broches numériques lisent ou éteignent les signaux et peuvent également envoyer des messages pour allumer les moteurs, allumer les lumières, envoyer des informations aux écrans, etc.

L'analogique lit une tension, ce qui est utile pour des choses comme la sensibilité au toucher, les transducteurs piézo-électriques pour pads de batterie, les capteurs de pression, de lumière ou flex (parmi beaucoup d'autres capteurs). Pour un contrôleur à bouton-poussoir, ce n’est pas un problème, mais si vous voulez avoir beaucoup de boutons et de curseurs, vous aurez besoin d’une carte avec suffisamment de broches analogiques.

La tension est utile pour réfléchir. La plupart des pédales de guitare fonctionnent sur une alimentation 9v. Si vous souhaitez que votre pédale midi s’adapte bien à d’autres pédales de guitare, il peut être utile de choisir une vitesse de marche de 9V. De plus, 5v correspond à la tension de la connexion d'alimentation USB. Par conséquent, lorsque vous utilisez des cartes plus petites et que vous installez une connexion USB, il est pratique d'en avoir une de 5v plutôt que de 3,3v.

Il existe une liste complète des cartes Arduino ici, mais j'ai énuméré certaines des plus populaires ci-dessous.

UNO - Stock standard, relativement peu coûteux à obtenir, peut être dual boot avec dual Moco pour créer un périphérique midi USB assez facile. 6 broches analogiques. Si vous n'êtes pas fan de soldats et que vous voulez pouvoir disposer de prises MIDI standard plutôt que MIDI via USB, de nombreux boucliers se clipsent.

www.sparkfun.com/products/12898 Bouclier Midi.

101 - Un uno avec un gyroscope intégré et Bluetooth … midi via Bluetooth est possible sur iPad et Mac. Le code serait plus difficile, mais si vous êtes prêt à relever le défi, il existe des moyens.

Leonardo - Compatible avec la bibliothèque arcore midi pour une programmation facile. 12 entrées analogiques

Pro Micro - Bon marché, petit et polyvalent. Compatible avec la bibliothèque Arcore Midi pour une programmation facile. 6 entrées analogiques

Lilypad - Vous souhaitez créer un instrument portable, comme un jean Drumpad ou quelque chose du genre? Lilypad est l'arduino portable.

Yun ou MKR1000 - Vous voulez que votre appareil midi se connecte à votre ipad et votre ordinateur via wifi? Peut-être aller pour l'un d'entre eux.

Mega - piles d'entrées et de sorties. 16 entrées analogiques. Beaucoup de place pour ajouter des tas de code. Cool pour des choses comme … avoir un kit de batterie électronique qui éclaire tout un tas de couleurs, faire un clavier tactile avec 48 touches. De plus gros projets comme ça.

Étape 2: Cartes MIDI personnalisées

Avant de vous lancer dans Arduino, il existe un certain nombre d’autres conseils que vous pourriez envisager, cela dépend de la taille de votre projet, de ce que vous voulez faire et du budget dans lequel vous devez le faire.

Makey Makey - super simple, facile à jouer. Très peu de courbe d'apprentissage. Pas midi, mais des entrées au clavier pour lesquelles il existe de nombreux convertisseurs de logiciels en ligne. Garageband et la logique ont un clavier que makey makey peut jouer. Il suffit de pousser le verrouillage des majuscules et de jouer. Facile à jouer, mais limité et assez cher. Sur le plan technique, Makey Makey est un Arduino Leonardo avec d’énormes résistances, ce qui le rend tout aussi reprogrammable et pourrait tout simplement être transformé en contrôleur MIDI à l’aide de la bibliothèque arcore.

Teensy - Teensy est de loin la carte compatible Arduino la plus simple à utiliser pour le MIDI. Une fois configurés, les codes MIDI sont assez simples et les didacticiels de leur site Web fournissent de nombreuses informations. Teensy étant compatible USB Midi, il est facile de coder puis d’essayer. Il existe des moyens de faire en sorte qu'un arduino normal fasse la même chose pour beaucoup moins d'argent, mais Teensy est en avance sur le jeu pour sa compatibilité et sa facilité d'utilisation. La bibliothèque Usb.midi est très facile à utiliser. Teensy est livré avec une pile d'entrées analogiques très pratiques pour la construction de kits de batterie ou de tables de mixage. Parce qu’il est compatible avec Arduino, tout ce qu’un Arduino peut faire, un adolescent peut aussi le faire. Le teensy 3.6 a 24 entrées analogiques, ce qui est énorme. Il est également plus rapide que toutes les cartes Arduino. Pour cette raison, j'ai donné à Teensy sa propre démarche.

Sparkfun fait une excellente critique de produit sur les planches Teensy

Doepfer propose une gamme d'instruments midi différents pour la synthèse de synthétiseurs. Leur USB64 dispose de 64 entrées analogiques pour la création de claviers tactiles ou de kits de batterie électronique de 64 morceaux. C'est des acres au-dessus des capacités de l'arduino. Doepfer se spécialise dans la conversion des orgues rétro en midi, donc si vous envisagez de le faire, cela vaut la peine d'être regardé. Tout projet de clavier sensible à la vélocité à grande échelle doit inclure un coup d’œil sur leurs produits.

Les instruments Livid possèdent quelques cartes contrôleur Midi DIY faciles à utiliser. Ils semblent assez simples à utiliser et, même s’ils sont un peu plus chers que Arduino, vous gagneraient beaucoup de temps à apprendre le code si vous aviez à l’esprit un instrument de musique, une batterie, un clavier ou un pupitre de mixage assez normaux.

Tableaux de conception Midibox pour projets MIDI capables d'effectuer une grande variété de tâches. Leurs cartes sont capables d’enregistrer et de reproduire des fichiers midi pour la lecture en boucle midi en direct et d’autres idées.

Midifighter propose des kits de haute qualité (assez chers, mais assez fonctionnels). Ce sont spécifiquement

Bhoreal slim est un contrôleur midi open source basé sur des boutons, doté de 16 à 64 pads de folie.

Arduino sur d'autres puces

Arduino peut être chargé sur d’autres puces en tant que puces autonomes. Cela peut être pratique pour réduire la taille, le coût ou augmenter les fonctions de votre conseil.

Arduino Playground contient des informations sur les puces compatibles et sur la procédure à suivre. El Pajaro Manitas a écrit un ouvrage explicatif sur la manière de réduire les énormes quantités de matériel en utilisant simplement la puce d’un arduino, ou même d’expérimenter avec d’autres puces plus petites comme l’Attiny85.

Voici un exemple de synthétiseur midi utilisant une puce attiny 2313.

Autres cartes de développement

Il y a toujours d'autres façons de faire les choses, regardez parce que cela peut économiser de l'argent, du temps ou créer différentes qualités ou fonctionnalités.

djtechtools.com/2011/06/21/diy-midi-still-m…

www.instructables.com/id/DIY-USB-DJ-Contro…

Intel Edison - fondamentalement un petit ordinateur … pourrait avoir tous ses propres sons et programmes préchargés pour une utilisation en tant qu'instrument autonome. Voici un exemple de projet MIDI utilisant Intel Edison.

Raspberry Pi - en gros, un petit ordinateur … pourrait avoir tous ses propres sons et programmes préchargés pour une utilisation en tant qu'instrument autonome

Étape 3: Utiliser un adolescent

Techniquement, un adolescent est compatible avec Arduino, mais présente quelques avantages MIDI par rapport à l’utilisation d’un Arduino.

1. Il sait déjà comment parler MIDI. C'est un gros bonus. Vous n'avez pas besoin de contournement ou de codage intelligent pour le faire parler en MIDI via votre port USB. Vous n'avez pas besoin de le débrancher pour essayer votre code, vous n'avez pas besoin de faire appel à des programmeurs externes, vous n'avez pas à le démarrer simultanément ni à faire d'autres idées fantaisistes, il ne parle que midi. Vous tapez votre code et essayez-le, modifiez-le, chargez-le et recommencez jusqu'à ce qu'il soit correct. Une fois configuré, il vous suffit de le brancher sur n’importe quel ordinateur pour qu’il soit reconnu comme un périphérique MIDI.

www.pjrc.com/teensy/td_midi.html

2. Il a une bibliothèque MIDI facile. Vous n'avez pas à apprendre à écrire des nombres hexadécimaux pour obtenir la note souhaitée, vous pouvez écrire au format décimal avec des nombres normaux et vous comprendrez facilement le concept.

Ses codes sont essentiellement usbMIDI.sendNoteOn (note, vélocité, canal);

Cela signifie qu'il est facile de dire ce que vous faites dans le code et que vous ne vous perdez pas.

3. Parce qu’il est facile à utiliser pour le Midi, beaucoup de gens l’utilisent pour le MIDI et il existe une multitude de tutoriels sur son utilisation.

Voici un exemple de contrôleur midi utilisant un adolescent.

Voici un instructable plus complexe, mais très utile et complet sur midi ados. Il vaut la peine de vérifier simplement pour des idées et des conseils en général.

Voici une pédale midi que j'ai faite en utilisant un teensy. C'était facile à apprendre et à construire avec.

Étape 4: Convertisseurs série vers midi

Vous avez donc décidé d’utiliser Arduino plutôt que d’autres idées, mais vous souhaitez utiliser le format MIDI via USB. Il existe un large éventail de méthodes pour le faire. La méthode que vous utiliserez dépendra de la façon dont vous voulez qu'elle fonctionne.

Lorsque vous débutez, un moyen simple et facile de jouer avec midi consiste à utiliser des convertisseurs série-midi. Il ne nécessite aucune manipulation supplémentaire de votre puce, mais un simple téléchargement et c'est parti. J'ai essayé quelques-unes de ces idées et elles peuvent constituer des moyens utiles de commencer, mais elles limitent l'utilisation de votre projet avec des ordinateurs sur lesquels le programme est installé.

Cela peut être sous la forme d’un câble midi usb, ou d’un convertisseur de logiciel tel que max, piano virtuel, ardrumio ou midi sans poil.

Voici un exemple utilisant un piano virtuel

Voici un exemple utilisant Hairless Midi

Étape 5: Reprogrammer votre puce

L'arduino est une puce très polyvalente car elle est open source et les pirates y jouent beaucoup. Ainsi, un arduino ne doit pas toujours être un arduino. Il peut être reprogrammé en tant que contrôleur MIDI. Il y a plusieurs façons de le faire. Je les ai énumérés par ordre de facilité.

Arcore

Il s'agit d'une bibliothèque Midi compatible avec les cartes Leonardo et Pro Micro pour USB midi. Une fois cette bibliothèque installée, l'IDE Arduino peut programmer le Leonardo ou le Pro Micro en tant que périphérique USB de la même manière que pour l'utilisation de Teensy. Cela reprogramme instantanément votre puce sans recourir à la programmation DFU (voir ci-dessous).

Musico Nerd propose un excellent didacticiel sur son utilisation.

Bibliothèque USBMidi

leBibliothèque UsbMidipermet à une carte Arduino dotée de capacités USB d’agir comme un instrument MIDI via USB. Cela fonctionne comme Arcore, mais il n’est pas nécessaire de l’installer en tant que nouvelle option matérielle. Plus d'infos ici.

Bibliothèque Midi

Cette bibliothèque Midi inclut maintenant un add-on pour USB Midi.

Dual MocoLufa

Si vous souhaitez utiliser la technologie MIDI à bon marché, la procédure est un peu plus difficile à comprendre, mais cela signifie que vous pouvez utiliser la norme USB MIDI sur un Arduino UNO ou Mega sans autre logiciel. Il amorce l’arduino pour que vous puissiez le coder, le télécharger, changer de connexion et l’utiliser comme périphérique MIDI USB natif, le tester et si cela ne vous convient pas, il suffit de le débrancher, de le reconnecter, de le brancher recodez-le. Cette méthode ne nécessite aucun autre programmeur sophistiqué, vous pouvez simplement basculer entre eux.

Lufa est l'original, il a été développé en tant que format de programmation pour la création de nombreux types de périphériques USB à l'aide de puces atmel. Moco Lufa a été développé comme une version à double amorçage du contrôleur midi de Lufa et du chargeur de démarrage arduino standard.

Dual Moco est un programme MIDI natif qui inclut le chargeur de démarrage arduino et s’amorce en tant qu’ardduino lorsque deux broches du fournisseur de services Internet sont connectées l’une à l’autre. Une fois installé sur votre arduino, votre arduino peut être soit un arduino normal, soit un périphérique MIDI conforme à la classe, au simple basculement d’un commutateur. Cette instruction explique comment charger d'autres programmes sur votre arduino à l'aide de la programmation DFU. Une explication plus complète sur Dual Moco est disponible sur le site Web de Arduino et sur le site Web de Dual Moco.

Ce site Web montre comment construire un theramin en utilisant cette technique Moco.

Ce mec utilise la technique du moco lufa avec sa propre carte pour créer un appareil Midi reprogrammable.

Hiduino

Personnellement je ne suis pas fan d'Hiduino. À moins que vous n'ayez un programmeur, la reprogrammation semble demander beaucoup de travail, mais vérifiez quand même comme une option. L’avantage de Hiduino est que votre puce ne fonctionnera qu’en tant que contrôleur Midi et que la compatibilité Arduino n’a pas non plus été intégrée au code. Cela signifie que vous pouvez exécuter un programme plus volumineux sur la puce et que celle-ci est susceptible de fonctionner plus rapidement et d’avoir moins de retards, car elle se concentre uniquement sur un périphérique MIDI.

Étape 6: Bibliothèques

Plusieurs bibliothèques midi facilitent un peu le codage en midi. Cependant, ils ne sont pas obligatoires… ils sont simplement utiles.

Arcore

Il s'agit d'une bibliothèque Midi compatible avec les cartes Leonardo et Pro Micro pour USB midi.

MidiUSB

C'est une bibliothèque Midi compatible avec la plupart des modèles Arduino pour USB midi.

Bibliothèque Midi

Cette bibliothèque midi inclut maintenant un add-on pour USB Midi.

Étape 7: Matériel physique

Vous feriez bien de vous renseigner sur un certain nombre de composants lors de la création d'un contrôleur MIDI.

Entrées digitales

Les premiers sont des entrées numériques. Ce sont des entrées qui envoient des messages aux broches d’entrée numérique. Le plus évident est un bouton ou un commutateur, mais les options s’appliquent à d’autres composants et bibliothèques. Ceux-ci peuvent inclure des capteurs de distance, des capteurs de fréquence ou des capteurs d'impulsions PWM, des récepteurs IR (pour utiliser n'importe quelle télécommande comme contrôleur MIDI).

L'inconvénient des entrées numériques est qu'elles ne lisent que des messages, rien entre les deux. Certains capteurs contournent cela en émettant des impulsions et en utilisant un code pour compter le temps entre les impulsions.

La plupart des claviers Midi utilisent cette idée pour créer un toucher sensible à la vélocité. Lorsque vous appuyez légèrement sur la touche, le premier bouton est enfoncé et le comptage commence. Une fois la touche enfoncée, le compte est arrêté et la vélocité réglée. Bien qu’elle indique la force avec laquelle la touche a été enfoncée, elle indique en réalité la vitesse à laquelle elle est enfoncée. Cela est généralement assez impeccable car la touche est enfoncée plus rapidement lorsque le joueur veut jouer plus fort sur le clavier.

Entrées analogiques

La deuxième entrée est un capteur analogique. Cela lit une tension envoyée à une broche. Ceci est utilisé pour mesurer beaucoup de choses avec une large gamme de capteurs. Capteurs de gaz, capteurs tactiles capacitifs, capteurs de lumière, capteurs de pluie, capteurs de vibration, potentiomètres, capteurs de pression, capteurs de courbure, etc. Cette entrée analogique peut être utilisée pour contrôler le volume d'une note midi, quelle note est jouée, par quel canal est joué sur une grande variété d’effets intéressants utilisant des valeurs de contrôle MIDI.

Obtenir des entrées analogiques supplémentaires…

Et si vous voulez lire tout un clavier?

Que faire si vous avez besoin de plus que les 6 entrées analogiques d’un Arduino Uno?

Mux Shield: jusqu'à 48 entrées analogiques.

Blindage d'extension analogique Blueberry 24

Étape 8: Coder avec Arduino

Les codes joints sont écrits pour un Arduino Uno exécutant Moco Lufa.

Ils pourraient également être utilisés sur un arduino avec le câble midi branché à la broche tx comme indiqué ci-dessus. Cette image a été prise à partir du terrain de jeu arduino qui contient un tutoriel utile et un premier projet.

Les codes Arduino commencent par introduire les broches arduino et en leur donnant un nom.

const int ButtonPin = 2;

Cela signifie qu'une entrée se trouve sur la broche numérique 2 de l'arduino. Nous l'avons nommé bouton. "const" signifie que ButtonPin sera constamment 2. Cela ne changera en rien d'autre.

L'étape suivante donne une variable pour stocker des informations sur ButtonPin.

int ButtonState = 0;

Lorsque nous l'introduisons comme étant 0, la variable signifiera 0 par défaut.

La prochaine étape est la configuration. Lors de la configuration, nous demandons à la puce d’envoyer des données à une certaine vitesse afin qu’elles puissent être lues à une certaine vitesse et comprises par le récepteur. C'est ce qu'on appelle le débit en bauds.

Le débit en bauds du MIDI est de 31250.

Nous avons également informé la puce de l’utilisation des broches. Comme les puces peuvent être utilisées comme sortie qui envoie de la puissance pour allumer des Leds, allumer des moteurs, etc. ou des entrées où elles lisent s’il ya de l’alimentation provenant d’un bouton ou d’une autre entrée.

Nous avons informé la puce que ButtonPin allait être une entrée.

void setup() {

Serial.begin (31250);

pinMode (buttonPin, INPUT);

}

Dans le code ci-dessus, vous remarquerez peut-être un certain nombre de choses. Premièrement, le code de la phase d'installation est limité par la parenthèse {}. Cela indique à la puce quand ce travail est terminé. Si un code a des problèmes, vérifiez que toutes les parenthèses marquent les bonnes étapes.

La deuxième chose que vous remarquerez est qu’après chaque ligne de code, il y a un point-virgule;. Cela indique à la puce que la commande est terminée. Si vous le manquez, le code ne fonctionnera pas.

La prochaine partie du code contient un tas de choses que la puce fera encore et encore. Ceci s'appelle la boucle. Dans la boucle suivante, le bouton sera lu. Si vous le poussez, il enverra une note MIDI. S'il est publié, il enverra midi off.

boucle vide () {

ButtonState = digitalRead (ButtonPin);

if (ButtonState == HIGH) {Serial.write (0x80); Écriture série (36); Écriture série (127); // canal, note, vélocité}

if (ButtonState == LOW) {Serial.write (0x90); Serial.write (0x25); Serial.write (0x00); // canal, note, vélocité}

délai (1000);

}

Dans le code ci-dessus, j'ai ajouté un délai. Parce que le code tourne en boucle à une vitesse incroyable, il enverra une tonne d’informations Midi à votre ordinateur. Une fois le bouton enfoncé, le code activera immédiatement la note des milliers de fois par seconde. Lorsque le bouton est relâché, le code est désactivé mille fois par seconde. J'ai mis un délai de 1000 millisecondes (1 seconde) dans le code pour le ralentir et empêcher la puce de geler votre ordinateur.

Il y a cependant une autre façon de faire cela. En ajoutant une variable pour stocker la dernière lecture, vous pouvez demander à la puce de vérifier la position du bouton et de lui demander de faire quelque chose uniquement quand il lit quelque chose de différent. N'oubliez pas d'introduire la variable au début de votre code (int lastButtonState = 0;). Voici l’étape de la boucle avec la vérification du dernier bouton et un délai de 10 millisecondes (bonne mesure).

boucle vide () {

ButtonState = digitalRead (ButtonPin);

if (ButtonState == HIGH && lastButtonState == LOW)

{Serial.write (0x80); Écriture série (36); Écriture série (127); // canal, note, vélocité}

if (ButtonState == LOW && lastButtonState == HIGH)

{Serial.write (0x90); Serial.write (0x25); Serial.write (0x00); // canal, note, vélocité}

lastButtonState = ButtonState;

délai (10); }

Autres codes à essayer

Chacun des codes joints contient des composants différents qui ont été testés avec eux. Certains sont écrits pour des boutons, d'autres pour des capteurs piézo-électriques, des capteurs de distance ou des télécommandes infrarouges. Chaque code différent nécessitera que les composants soient définis conformément à tout autre tutoriel sur l'utilisation de ces composants. La différence entre ces codes réside dans les codes MIDI intégrés et quelques fonctions de base utiles dans les contrôleurs MIDI.

Midi_Basic est écrit comme test pour 4 boutons.

Les boutons sont câblés avec une extrémité sur le 5v et une extrémité sur les broches Arduino 2, 3, 4 et 5. Chaque broche est connectée à la terre à l’aide d’une résistance 10k. C'est ce qu'on appelle le menu déroulant, comme l'indique habituellement la broche.

AnalogMidi lit une tension sur la broche analogique 0 et envoie un message MIDI. Il peut lire des potentiomètres, des capteurs de flexion ou de pression, des capteurs de température ou des disques piézo.

Distance_sense lit un capteur de distance à 4 broches et envoie un message MIDI.

IR Midi lit un capteur inféré. Il est mappé sur une télécommande d'un arduino starter pack. Les codes hexadécimaux peuvent différer de votre propre télécommande et vous devrez télécharger et installer la bibliothèque IR pour que cela fonctionne.

Le commutateur CC lit l'état d'un commutateur qui modifie les entrées en notes de contrôle.

Drum Presets lit les disques piézo et un bouton. Lorsque vous appuyez sur le bouton, appuyez sur les disques piézo pour sélectionner un nouveau groupe de notes pour chaque disque.

Étape 9: Envoi de notes et autres messages

Cet exemple Arduino est un excellent exemple de code de test

Vous pouvez trouver ici les spécifications Midi pour tous les types de messages. J'ai copié une grande partie de cette information sur cette page.

SerialWrite (0x80 + channel); // note sur

SerialWrite (note); // note entre 0-127

SerialWrite (vélocité); // vélocité comprise entre 1 et 127

SerialWrite (0x90 + channel); // note off

SerialWrite (note); // doit être identique à note sur note

SerialWrite (0x00); // vitesse de 0 désactive la note

SerialWrite (0xC0 + channel); // changement de programme

SerialWrite (programme); // numéro de programme compris entre 0 et 127

SerialWrite (0xD0 + channel); // Pression du canal aftertouch

SerialWrite (vélocité); // vélocité comprise entre 1 et 127

SerialWrite (0xE0 + channel); //pitch bend

SerialWrite (plier); // c'est un nombre de 14 bits avec un maximum de 16384 et un minimum de 0, où 8192 représente la position centrée ou pas de pitchbend.

Les messages de changement de commande ont différents types de messages qui les transforment en messages en mode canal.

SerialWrite (0xB0 + channel); // Message de changement de commande

SerialWrite (note); // note entre 0-119

SerialWrite (vélocité); // vélocité comprise entre 1 et 127

Messages en mode canal.

C'est le même code que pour le contrôle, les valeurs pour les notes sélectionnent des messages spécifiques.

120 = Tout son est désactivé. Lorsque tous les sons désactivés sont reçus, tous les oscillateurs s’éteignent et leurs enveloppes de volume sont réglées à zéro dès que possible. c = 120, v = 0:

121 = Réinitialiser tous les contrôleurs. Lorsque Réinitialiser tous les contrôleurs est reçu, toutes les valeurs de contrôleur sont réinitialisées à leurs valeurs par défaut. (Voir les pratiques recommandées spécifiques pour les valeurs par défaut). c = 121, v = x: la valeur ne doit être nulle, sauf autorisation contraire dans une pratique recommandée spécifique.

.

c = 122, v = 0: Contrôle local désactivé: lorsque le contrôle local est désactivé, tous les périphériques d'un canal donné ne répondent qu'aux données reçues via MIDI. Les données jouées, etc. seront ignorées.

c = 122, v = 127: Contrôle local activé: Contrôle local activé restaure les fonctions des contrôleurs normaux

Toutes les notes sont désactivées. Quand toutes les notes désactivées sont reçues, tous les oscillateurs s’éteignent.

c = 123, v = 0: All Notes Off (Voir le texte pour une description des commandes de mode réelles.)

c = 124, v = 0: Mode Omni désactivé

c = 125, v = 0: Mode Omni activé

c = 126, v = M: Mode mono activé (Poly Off) où M est le nombre de canaux (Omni Off) ou 0 (Omni On)

c = 127, v = 0: Mode Poly On (Mono Off) (Remarque: ces quatre messages provoquent également le blocage de toutes les notes)

Étape 10: MIDI IN et moteurs sonores.

Si vous voulez lire des fichiers MIDI à partir d'un ordinateur, d'un clavier ou d'un autre contrôleur midi et en faire des choses amusantes, voici quelques choses amusantes à faire avec cela.

Lecteur WAV: Ce bouclier vous permet de lire des fichiers audio déclenchés par… bien ce que vous voulez qu'ils soient déclenchés. Le midi est une chose que vous pourriez utiliser. Cela peut être utilisé pour créer un kit de batterie électronique, ajouter des sons à un clavier midi pour un brouillage portable ou envoyer un midi à partir de votre téléphone pour faire un bruit de pet sous le canapé.

Synthé ou effets: Ce bouclier intègre des sons et un synthé. Vous pouvez donc utiliser midi pour modeler des formes d’onde et les restituer à un ampli. Cela peut être via midi ou directement depuis votre contrôleur.

Installations d'éclairage: le Midi est un moyen formidable de contrôler beaucoup de choses. Vous pouvez écrire un code MIDI pour accompagner votre performance sur scène et configurer un arduino pour lire l'entrée MIDI et les relais de contrôle, ainsi que pour éteindre et allumer les lumières dans différentes parties de votre performance de danse ou de musique.

Bande contrôlée midi: Voici une explication sur la façon de construire un kit de batterie robotique. L'arduino lit midi et écrit sur les moteurs qui jouent de la batterie. Vous pouvez dupliquer cette idée avec toute une gamme d'instruments. Voici un article sur l’histoire des instruments robotiques pour une inspiration amusante.

Étape 11: MIDI Thru

Midi thru est conçu pour le chaînage des instruments midi. Midi thru est identique à la ligne de sortie, à la différence qu’il inclut également une copie directe de la ligne d’entrée. Tout ce qui entre dans l'entrée passe directement à travers.

Cela signifie que vous pouvez brancher un instrument dans l'entrée, utiliser l'instrument pour contrôler les effets sur un périphérique MIDI, mais également envoyer les informations MIDI du MIDI via directement dans l'instrument suivant de la chaîne.

Vous pouvez également utiliser midi à plusieurs effets. Si vous avez une seule entrée routée vers plusieurs ports, vous pouvez jouer sur un seul clavier capable de contrôler plusieurs sons. Un boîtier de commutation sur la boîte pourrait désactiver différents ports via des ports pour contrôler cela.