Table des matières:
- Fournitures
- Étape 1: Construire la planche à pain
- Étape 2: Téléchargement du croquis
- Étape 3: Comprendre les boucles MIDI Hairless et MIDI internes
- Étape 4: connexion à votre DAW
- Étape 5: Jouez
Vidéo: Contrôleur MIDI Arduino de base : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Introduction:
Je suis nouveau dans l'utilisation d'Arduino, mais j'espère élargir mes connaissances en enseignant aux autres et en recevant des commentaires. Il s'agit d'un contrôleur MIDI très basique avec 4 boutons et un potentiomètre. Le schéma de ce projet ressemble à ceci:
1. Construisez la planche à pain
2. Téléchargez le croquis sur l'Arduino
3. Comprendre le MIDI Hairless et la boucle MIDI interne (loopbe1)
4. router votre MIDI vers un DAW (Ableton)
Fournitures
1 x Arduino méga 2560
1 x planche à pain
1 câble USB
1 x potentiomètre
4 x boutons tactiles
4 résistances 120Ohm
14 x câbles de démarrage pour planche à pain
Étape 1: Construire la planche à pain
Connectez votre maquette pour que tous les composants correspondent à l'image 1 ci-dessus. Chaque bouton doit ressembler à l'image 2. Les entrées des boutons sont 2, 3, 4 et 5 sur l'Arduino et la broche du milieu du potentiomètre est connectée à l'entrée ANALOGIQUE A0.
Étape 2: Téléchargement du croquis
Copiez et collez le code ci-dessous dans l'IDE Arduino. Sélectionnez la bonne carte sous "outils" et téléchargez le croquis sur l'Arduino.
octet noteON = 144; // note sur commandbyte note; // stockage pour la note en cours de lecture int buttonPin1 = 2; int boutonPin2 = 3; int boutonPin3 = 4; int boutonPin4 = 5; int potPin = A0; boolean currentState = LOW;//stroage pour l'état actuel du bouton booléen lastState = LOW;//stockage pour le dernier état du bouton void setup(){ pinMode(buttonPin1, INPUT); pinMode(boutonPin2, INPUT); pinMode (boutonPin3, INPUT); pinMode (boutonPin4, INPUT); // cette fois, nous allons définir la broche comme INPUT Serial.begin (9600); // initialiser la connexion série } void loop () { int PotVal = analogRead (potPin); vitesse d'octet = map(PotVal, 0, 1023, 0, 127); currentState = digitalRead (boutonPin1); if (currentState == HIGH && lastState == LOW){ MIDImessage(noteON, 60, vélocité);//activer la note 60 avec un délai de vélocité 127 (200);//forme brute du bouton anti-rebond } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//désactiver le délai de la note 60(2);//forme brute du bouton anti-rebond } lastState = currentState; currentState = digitalRead(boutonPin2); if (currentState == HIGH && lastState == LOW){//si le bouton vient d'être pressé MIDImessage(noteON, 61, vélocité);//activer la note 60 avec un délai de vélocité 127 (200);//forme brute du bouton anti-rebond } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//désactiver la note 60 delay(2);//forme brute du bouton anti-rebond } lastState = currentState; currentState = digitalRead(buttonPin3); if (currentState == HIGH && lastState == LOW){//si le bouton vient d'être pressé MIDImessage (noteON, 62, vélocité);//activer la note 60 avec un délai de vélocité 127 (200);//forme brute du bouton anti-rebond } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//désactiver la note 60 delay(2);//forme brute du bouton anti-rebond } lastState = currentState; currentState = digitalRead (boutonPin4); if (currentState == HIGH && lastState == LOW){//si le bouton vient d'être pressé MIDImessage (noteON, 63, vélocité);//activer la note 60 avec un délai de vélocité 127 (200);//forme brute du bouton anti-rebond } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//désactiver la note 60 delay(2);//forme brute du bouton anti-rebond } lastState = currentState; } //envoyer un message MIDI void MIDImessage(commande d'octet, données d'octet1, données d'octet2) { Serial.write(commande); Serial.write(data1); Serial.write(data2); }
Je suis encore très novice dans l'écriture de code en général….. ceux qui ont un peu plus d'expérience pourraient probablement nettoyer cela…
Étape 3: Comprendre les boucles MIDI Hairless et MIDI internes
L'Arduino doit passer par un pont série tel que Hairless MIDI puis par une boucle MIDI interne telle que loopbe1 (ou bus IAC pour Mac).
Remarque: vous ne pouvez pas télécharger un croquis sur l'Arduino lorsqu'il est connecté au pont série MIDI sans poils.
Sélectionnez votre Arduino dans le port série Hairless MIDI et loopbe1 ou IAC Bus dans la sortie MIDI.
Remarque: assurez-vous que la sourdine n'est pas activée lorsque vous utilisez loopbe1.
Étape 4: connexion à votre DAW
Si vous recevez un signal vers l'application MIDI Hairless lorsque vous appuyez sur un bouton de la maquette (les voyants clignotent), vous devriez pouvoir envoyer des données MIDI à un DAW. J'ai utilisé Ableton mais n'importe quel DAW devrait fonctionner. Assurez-vous que votre boucle MIDI interne (loopbe1) est activée dans vos préférences DAW (dans Ableton, vous voulez que "track" soit activé). Ensuite, sélectionnez l'une de vos entrées de piste MIDI dans la boucle MIDI (loopbe1) comme indiqué dans l'image ci-dessus.
Étape 5: Jouez
Les boutons fonctionneront désormais comme n'importe quel autre contrôleur MIDI ! Le potentiomètre changera la vélocité des notes envoyées à la DAW. La vidéo (très sombre…) ci-dessus montre un son de piano à queue en action !
Conseillé:
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): 4 étapes (avec images)
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): Bonjour, aujourd'hui, je vais vous expliquer comment créer votre propre petit générateur de musique basé sur la météo. Il est basé sur un ESP8266, qui ressemble un peu à un Arduino, et il réagit à la température, à la pluie et l'intensité lumineuse. Ne vous attendez pas à ce qu'il fasse des chansons entières ou un programme d'accords
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : 4 étapes
YABC - Encore un autre contrôleur Blynk - Contrôleur de température et d'humidité du cloud IoT, ESP8266 : Salut les fabricants, j'ai récemment commencé à cultiver des champignons à la maison, des pleurotes, mais j'ai déjà 3x de ces contrôleurs à la maison pour le contrôle de la température du fermenteur pour ma bière maison, femme fait aussi ce truc de Kombucha maintenant, et en tant que thermostat pour la chaleur
Contrôleur de bande lumineuse MIDI 5V LED pour le Spielatron ou autre synthé MIDI : 7 étapes (avec photos)
Contrôleur de bande LED MIDI 5V pour le Spielatron ou autre synthé MIDI : Ce contrôleur fait clignoter des bandes LED tricolores pendant 50 ms par note. Bleu pour G5 à D#6, rouge pour E6 à B6 et vert pour C7 à G7. Le contrôleur est un appareil MIDI ALSA, donc le logiciel MIDI peut sortir vers les LED en même temps qu'un synthétiseur MIDI
Toucher capacitif avec Evive (contrôleur basé sur Arduino): 6 étapes (avec images)
Toucher capacitif avec Evive (contrôleur basé sur Arduino) : savez-vous comment fonctionne l'écran tactile de votre smartphone ? Le smartphone dispose d'un ensemble de capteurs tactiles sous l'écran en verre. De nos jours, il est basé sur la technologie de détection tactile capacitive et même un toucher doux est facilement détecté. Le toucher capacitif est détecté