Sommario:
- Forniture
- Passaggio 1: costruire la breadboard
- Passaggio 2: caricamento dello schizzo
- Passaggio 3: comprensione del MIDI glabro e dei loop MIDI interni
- Passaggio 4: connessione alla tua DAW
- Passaggio 5: gioca
Video: Controller MIDI Arduino di base: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Introduzione:
Sono nuovo a lavorare con Arduino ma spero di espandere le mie conoscenze insegnando ad altri e ricevendo feedback. Questo è un controller MIDI molto semplice con 4 pulsanti e un potenziometro. Lo schema di questo progetto è simile a questo:
1. Costruisci la breadboard
2. Carica lo schizzo su Arduino
3. Comprendere il MIDI Hairless e il loop MIDI interno (loopbe1)
4. indirizza il tuo MIDI a una DAW (Ableton)
Forniture
1 x Arduino Mega 2560
1 x tagliere per pane
1 x cavo USB
1 x potenziometro
4 x pulsanti tattili
4 x 120 Ohm resistori
14 x cavi jumper per breadboard
Passaggio 1: costruire la breadboard
Collega la tua breadboard in modo che tutti i componenti corrispondano all'immagine 1 sopra. Ogni pulsante dovrebbe avere lo stesso aspetto dell'immagine 2. Gli ingressi dei pulsanti sono 2, 3, 4 e 5 sull'Arduino e il pin centrale del potenziometro è collegato all'ingresso ANALOGICO A0.
Passaggio 2: caricamento dello schizzo
Copia e incolla il codice seguente nell'IDE di Arduino. Seleziona la scheda corretta in "strumenti" e carica lo schizzo su Arduino.
byte noteON = 144;//note su commandbyte note;//memoria per la nota attualmente in riproduzione int buttonPin1 = 2; int pulsantePin2 = 3; int pulsantePin3 = 4; int pulsantePin4 = 5; int potPin = A0; boolean currentState = LOW;//stroage per lo stato attuale del pulsante boolean lastState = LOW;//storage per lo stato dell'ultimo pulsante void setup(){ pinMode(buttonPin1, INPUT); pinMode(pulsantePin2, INGRESSO); pinMode(buttonPin3, INPUT); pinMode(buttonPin4, INPUT); //questa volta imposteremo il pin come INPUT Serial.begin(9600);//inizializza la connessione seriale } void loop(){ int PotVal = analogRead(potPin); velocità in byte = map(PotVal, 0, 1023, 0, 127); statocorrente = digitalRead(buttonPin1); if (currentState == HIGH && lastState == LOW){ MIDImessage(noteON, 60, velocity); // attiva la nota 60 con 127 velocity delay (200); // forma grezza di antirimbalzo del pulsante } else if (currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//disattiva il ritardo della nota 60(2);//forma grezza di antirimbalzo del pulsante } lastState = currentState; statocorrente = digitalRead(buttonPin2); if (currentState == HIGH && lastState == LOW){//if è stato appena premuto il pulsante MIDImessage(noteON, 61, velocity); // attiva la nota 60 con 127 velocity delay (200); // forma grezza del pulsante antirimbalzo } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//disattiva il ritardo della nota 60(2);//forma grezza di antirimbalzo del pulsante } lastState = currentState; statocorrente = digitalRead(buttonPin3); if (currentState == HIGH && lastState == LOW){//if è stato appena premuto il pulsante MIDImessage(noteON, 62, velocity); // attiva la nota 60 con 127 velocity delay (200); // forma grezza del pulsante antirimbalzo } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//disattiva il ritardo della nota 60(2);//grezza forma di antirimbalzo del pulsante } lastState = currentState; statocorrente = digitalRead(buttonPin4); if (currentState == HIGH && lastState == LOW){//if è stato appena premuto il pulsante MIDImessage(noteON, 63, velocity); // attiva la nota 60 con 127 velocity delay (200); // forma grezza del pulsante antirimbalzo } else if(currentState == LOW && lastState == HIGH){ MIDImessage(noteON, 60, 0);//disattiva il ritardo della nota 60(2);//forma grezza di antirimbalzo del pulsante } lastState = currentState; } //invia messaggio MIDI void MIDImessage(byte comando, byte dati1, byte dati2) { Serial.write(comando); Serial.write(data1); Serial.write(data2); }
Sono ancora molto nuovo nello scrivere codice in generale….. quelli con un po' più di esperienza potrebbero probabilmente ripulire questo…
Passaggio 3: comprensione del MIDI glabro e dei loop MIDI interni
L'Arduino deve passare attraverso un bridge seriale come Hairless MIDI, quindi attraverso un loop MIDI interno come loopbe1 (o bus IAC per Mac).
Nota: non è possibile caricare uno sketch su Arduino mentre è connesso al bridge seriale MIDI hairless.
Seleziona il tuo Arduino nella porta seriale MIDI Hairless e loopbe1 o IAC Bus nell'uscita MIDI.
Nota: assicurati che l'audio non sia attivo quando usi loopbe1.
Passaggio 4: connessione alla tua DAW
Se ricevi un segnale all'app Hairless MIDI quando premi un pulsante sulla breadboard (le spie lampeggeranno) dovresti essere in grado di inviare dati MIDI a una DAW. Ho usato Ableton ma qualsiasi DAW dovrebbe funzionare. Assicurati che il tuo loop MIDI interno (loopbe1) sia abilitato nelle tue preferenze DAW (in Ableton vuoi che la "traccia" sia abilitata). Quindi, seleziona uno degli ingressi della tua traccia MIDI nel loop MIDI (loopbe1) come mostrato nell'immagine sopra.
Passaggio 5: gioca
I pulsanti ora funzioneranno come qualsiasi altro controller MIDI! Il potenziometro cambierà la velocità delle note inviate alla DAW. Il video (molto scuro…) qui sopra mostra il suono di un pianoforte a coda in azione!
Consigliato:
Costruisci un controller MIDI Arduino: 5 passaggi (con immagini)
Costruisci un controller MIDI Arduino: ciao a tutti! In questo tutorial ti mostrerò come costruire il tuo controller MIDI alimentato da Arduino. MIDI è l'acronimo di Musical Instrument Digital Interface ed è un protocollo che consente a computer, strumenti musicali e altro hardware di comunicare
Costruire un controller MIDI Arduino: 9 passaggi (con immagini)
Costruire un controller MIDI Arduino: questo istruibile è stato originariamente pubblicato sul mio blog il 28 giugno 2020. Mi piace costruire cose che includono l'elettronica e ho sempre voluto costruire qualcosa usando Arduino. Una delle build più comuni per i principianti che ho trovato era un Controller MIDI
Controller di gioco fai-da-te basato su Arduino - Controller di gioco Arduino PS2 - Giocare a Tekken con il gamepad Arduino fai da te: 7 passaggi
Controller di gioco fai-da-te basato su Arduino | Controller di gioco Arduino PS2 | Giocare a Tekken con il gamepad Arduino fai da te: Ciao ragazzi, giocare è sempre divertente, ma giocare con il tuo controller di gioco personalizzato fai-da-te è più divertente. Quindi creeremo un controller di gioco usando arduino pro micro in queste istruzioni
Controller di gioco wireless con Arduino e NRF24L01+ (supporto per uno o due controller): 3 passaggi
Controller di gioco wireless con Arduino e NRF24L01+ (supporto per uno o due controller): puoi trovare il progetto completo dal mio sito Web (è in finlandese): https://teukka.webnode.com/l/langaton-ohjain-atmega-lla- ja-nrf24l01-radiomoduulilla/Questo è un breve briefing sul progetto. Volevo solo condividerlo se qualcuno volesse
Controller per strisce LED MIDI 5V per Spielatron o altro sintetizzatore MIDI: 7 passaggi (con immagini)
Controller di strisce LED MIDI 5V per Spielatron o altro sintetizzatore MIDI: questo controller lampeggia luci a strisce LED tricolore per 50 mS per nota. Blu per G5 a D # 6, rosso per E6 a B6 e verde per C7 a G7. Il controller è un dispositivo MIDI ALSA, quindi il software MIDI può inviare l'output ai LED contemporaneamente a un dispositivo synth MIDI