Taula de continguts:
- Subministraments
- Pas 1: crear la taula de pa
- Pas 2: penjar l'esbós
- Pas 3: Descripció del MIDI sense pèl i dels bucles MIDI interns
- Pas 4: Connexió al vostre DAW
- Pas 5: Juga
Vídeo: Controlador bàsic Arduino MIDI: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Introducció:
Sóc nou a treballar amb Arduino, però espero ampliar els meus coneixements ensenyant als altres i rebent comentaris. Es tracta d’un controlador MIDI molt bàsic amb 4 botons i un potenciòmetre. L’esquema d’aquest projecte té aquest aspecte:
1. Construïu la taula de treball
2. Pengeu l'esbós a l'Arduino
3. Comprendre el bucle MIDI sense pèl i el bucle MIDI intern (loopbe1)
4. encaminar el MIDI a un DAW (Ableton)
Subministraments
1 x Arduino Mega 2560
1 x Taula de pa
1 x cable USB
1 x Potenciómetre
4 botons tàctils
Resistències de 4 x 120 Ohm
14 cables de pont per a taulers
Pas 1: crear la taula de pa
Connecteu el tauler de verificació perquè tots els components coincideixin amb la imatge 1 anterior. Cada botó hauria de tenir el mateix aspecte que la imatge 2. Les entrades de botó són 2, 3, 4 i 5 a l'Arduino i el pin central del potenciòmetre està connectat a l'entrada ANALOG A0.
Pas 2: penjar l'esbós
Copieu i enganxeu el codi següent a l'IDE Arduino. Seleccioneu el tauler correcte a "eines" i pengeu l'esbós a l'Arduino.
byte noteON = 144; // note on commandbyte note; // emmagatzematge per a la nota que es reprodueix actualment int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; booleà currentState = BAIX; // estat per al botó actual estat booleà lastState = BAIX; // emmagatzematge per a l’últim estat del botó void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // aquesta vegada establirem el pin com a INPUT Serial.begin (9600); // inicialitzar connexió sèrie} bucle buit () {int PotVal = analogRead (potPin); velocitat de byte = mapa (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // activeu la nota 60 amb 127 velocity delay (200); // forma crua de rebot de botons} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desactiva el retard de la nota 60 (2); // forma crua de rebot de botons} lastState = currentState; currentState = DigitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// si el botó acaba de prémer MIDImessage (noteON, 61, velocity); // activa la nota 60 amb 127 velocity delay (200); // forma crua del botó debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desactiva el retard de la nota 60 (2); // forma crua del botó debouncing} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// si el botó acaba de prémer MIDImessage (noteON, 62, velocity); // activeu la nota 60 amb 127 velocity delay (200); // forma crua del botó debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desactiva el retard de la nota 60 (2); // forma crua del botó debouncing} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// si el botó acaba de prémer MIDImessage (noteON, 63, velocity); // activeu la nota 60 amb 127 velocity delay (200); // forma crua del botó debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // desactiva el retard de la nota 60 (2); // forma crua del botó debouncing} lastState = currentState; } // enviar missatge MIDI void MIDImessage (ordre de byte, byte data1, byte data2) {Serial.write (ordre); Serial.write (dades1); Serial.write (dades2); }
Encara sóc molt nou en escriure codi en general … els que tenen una mica més d’experiència probablement podrien netejar-ho …
Pas 3: Descripció del MIDI sense pèl i dels bucles MIDI interns
L'Arduino ha de funcionar a través d'un pont en sèrie com Hairless MIDI i després a través d'un bucle MIDI intern com loopbe1 (o bus IAC per a Mac).
Nota: no podeu penjar un esbós a l'Arduino mentre està connectat al pont serial MIDI sense pèl.
Seleccioneu el vostre Arduino al port sèrie MIDI sense pèl i el bucle1 o el bus IAC a la sortida MIDI.
Nota: assegureu-vos que el silenci no està activat quan utilitzeu loopbe1.
Pas 4: Connexió al vostre DAW
Si rebeu senyal a l’aplicació MIDI sense pèl quan premeu un botó de la placa de paret (els llums parpellejaran), podríeu enviar dades MIDI a un DAW. Vaig utilitzar Ableton, però qualsevol DAW hauria de funcionar. Assegureu-vos que el vostre bucle MIDI intern (loopbe1) està habilitat a les vostres preferències DAW (a Ableton voleu que s'activi la "pista"). A continuació, seleccioneu una de les entrades de pista MIDI al bucle MIDI (loopbe1) tal com es mostra a la imatge superior.
Pas 5: Juga
Ara els botons funcionaran com qualsevol altre controlador MIDI. El potenciòmetre canviarà la velocitat de les notes que s’envien al DAW. El vídeo (molt fosc …) de dalt mostra un so de piano de cua en acció.
Recomanat:
Construeix un controlador MIDI Arduino: 5 passos (amb imatges)
Construeix un controlador MIDI Arduino: Hola a tothom! En aquest instructiu us mostraré com construir el vostre propi controlador MIDI alimentat per Arduino. MIDI significa Interfície digital d’instruments musicals i és un protocol que permet comunicar ordinadors, instruments musicals i altre maquinari
Controlador de jocs DIY basat en Arduino - Controlador de jocs Arduino PS2 - Jugar a Tekken amb el bricolatge Arduino Gamepad: 7 passos
Controlador de jocs DIY basat en Arduino | Controlador de jocs Arduino PS2 | Jugar a Tekken amb el bricolatge Arduino Gamepad: Hola nois, jugar sempre és divertit, però jugar amb el vostre propi controlador de jocs de bricolatge és més divertit
YABC - Un altre controlador Blynk - Controlador de temperatura i humitat al núvol IoT, ESP8266: 4 passos
YABC - Encara un altre controlador Blynk: controlador de temperatura i humitat del núvol IoT, ESP8266: Hola, fabricants, recentment he començat a cultivar bolets a casa, bolets ostres, però ja tinc 3 vegades aquests controladors a casa per al control de temperatura de fermentació per a la meva cervesa, esposa ara també fa això de Kombucha i com a termòstat de calor
Controlador de llum de tira LED 5V MIDI per al Spielatron o un altre sintetitzador MIDI: 7 passos (amb imatges)
Controlador de llum de tira LED 5V MIDI per a Spielatron o un altre sintetitzador MIDI: aquest control parpelleja llums de tires LED tricolors per 50 mS per nota. Blau per a G5 a D # 6, vermell per a E6 a B6 i verd per a C7 a G7. El controlador és un dispositiu MIDI ALSA perquè el programari MIDI pugui emetre als LED alhora que un sintetitzador MIDI
NESblinky - Controlador de flaix de controlador de Nintendo: 12 passos (amb imatges)
NESblinky - Nintendo Controller Bike Flasher: vaig veure el missatge "Light Up Your Ride" i vaig reflexionar sobre què es podria tornar a proposar per augmentar la visibilitat de la meva moto, tot esperant que encegés un motorista o dos en un atac de ràbia retro. Vaig passar amb una vella Nintendo trencada