Annuncio pubblicitario

Come musicista che ha accumulato una collezione di strumenti musicali e noise box, l'umile Arduino è lo strumento perfetto per creare un controller MIDI personalizzato. Mentre il Raspberry Pi potrebbe aver preso la corona per Internet of Things (IoT) L'Internet of Things: 10 prodotti utili da provare nel 2016L'Internet of Things sta aumentando nel 2016, ma cosa significa esattamente? In che modo beneficiate personalmente dell'Internet of Things? Ecco alcuni prodotti utili da illustrare. Leggi di più progetti, un semplice Arduino Uno (quali sono i diversi tipi di Arduino? Guida all'acquisto di Arduino: quale consiglio dovresti comprare?Ci sono così tanti diversi tipi di schede Arduino là fuori, saresti perdonato per essere confuso. Quale dovresti comprare per il tuo progetto? Aiutiamoci, con questa guida all'acquisto di Arduino! Leggi di più ) ha più che sufficiente potenza per questo progetto.

La prima volta che usi un Arduino? Nessun problema, abbiamo un completo

instagram viewer
Guida per principianti di Arduino Introduzione ad Arduino: una guida per principiantiArduino è una piattaforma di prototipazione elettronica open source basata su hardware e software flessibili e di facile utilizzo. È destinato ad artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Leggi di più da leggere prima di affrontare questo progetto.

Arduino-Midi-Controller-Breadboard

Cos'è il MIDI?

MIDI è l'acronimo di Musical Instrument Digital Interface. Descrive un modo standard per i dispositivi musicali di comunicare tra loro. Se possiedi una tastiera elettronica, probabilmente hai un'interfaccia MIDI. Mentre ci sono alcuni dettagli tecnici coinvolti nell'implementazione del MIDI, è importante ricordare che il MIDI non è audio! I dati MIDI sono un semplice insieme di istruzioni (un'istruzione è chiamata "messaggio") che un altro dispositivo può implementare per produrre suoni o parametri di controllo diversi.

MIDI supporta 16 canali. Ciò significa che ciascun cavo può supportare 16 dispositivi diversi che comunicano in modo indipendente tra loro. I dispositivi sono collegati mediante un cavo DIN a 5 pin. DIN è l'acronimo di "German Institute for Standardization" ed è semplicemente un cavo con cinque pin all'interno del connettore. USB viene spesso utilizzato al posto di DIN a 5 pin, oppure è possibile utilizzare un'interfaccia USB-MIDI.

MIDI-Cable-Male

Control Change e Program Change

Esistono due tipi principali di messaggi MIDI: Control Change e Program Change.

I messaggi Control Change (CC) contengono un numero di controller e un valore compreso tra 0 e 127. I messaggi CC vengono spesso utilizzati per modificare impostazioni come volume o tonalità. I dispositivi che accettano il MIDI dovrebbero avere un manuale che spiega quali canali e messaggi sono impostati di default e come cambiarli (noto come mappatura MIDI).

I messaggi di Program Change (PC) sono più semplici dei messaggi CC. I messaggi PC sono costituiti da un singolo numero e vengono utilizzati per modificare la preimpostazione o la patch su un dispositivo. I messaggi PC sono talvolta noti come "Patch Change". Analogamente ai messaggi CC, i produttori dovrebbero fornire un documento che delinei quali preselezioni vengono modificate da un determinato messaggio.

Di cosa avrai bisogno

  • Arduino
  • Presa femmina DIN a 5 pin
  • 2 resistenze da 220 ohm
  • 2 resistori da 10k ohm
  • 2 x interruttori momentanei
  • Fili di aggancio
  • breadboard
  • Cavo MIDI
  • Dispositivo MIDI o interfaccia USB

Costruisci piano

Questo progetto sarà abbastanza semplice. Ovviamente puoi aggiungere più pulsanti o hardware per soddisfare le tue esigenze. Quasi ogni Arduino sarà adatto - per questo esempio sono necessari solo tre pin. Questo progetto consiste in due pulsanti per controllare il programma, una porta MIDI per inviare i dati e un dispositivo per ricevere i messaggi. Questo circuito è stato costruito su a tagliere Elettronica per principianti: 10 abilità che devi conoscereMolti di noi non hanno mai nemmeno toccato un saldatore, ma rendere le cose incredibilmente gratificanti. Ecco dieci delle più elementari competenze di elettronica fai-da-te per aiutarti a iniziare. Leggi di più qui, tuttavia, è possibile trasferirlo in una scatola di progetto e connettori saldati per una soluzione robusta.

Assemblaggio del circuito

Arduino-Midi-Controller-Circuit

Connessione MIDI

MIDI-Pinout

Collegare la presa MIDI come segue:

  • Pin MIDI 5 ad Arduino Transmit (TX) 1 tramite una resistenza da 220 ohm
  • Pin MIDI 4 su Arduino + 5V tramite una resistenza da 220 ohm
  • Pin MIDI 2 su Arduino ground

Connessione pulsante

I pulsanti funzionano modificando la resistenza che "Arduino" vede. Il pin Arduino passa attraverso l'interruttore direttamente a terra (BASSO) tramite un resistore da 10k ohm (un resistore “pull down”, assicurando che il valore rimanga basso). Quando si preme il pulsante, il valore visualizzato dal circuito cambia in + 5v senza resistenza (ALTA). Arduino è in grado di rilevare questa modifica utilizzando il digitalRead (pin) comando. Collegare i pulsanti ai pin 6 e 7 sull'ingresso / uscita digitale Arduino (I / O). Collega entrambi i pulsanti:

  • Lato sinistro del pulsante a + 5 V.
  • Lato destro del pulsante per Arduino Ground tramite una resistenza da 10k ohm
  • Lato destro del pulsante sul pin Arduino (6 o 7)

Test MIDI

Ora che tutto l'hardware è finito, è il momento di testarlo. Avrai bisogno di un'interfaccia USB-MIDI (molte interfacce audio possono farlo) e un cavo MIDI. La porta MIDI cablata sulla breadboard sta inviando dati, quindi è l'output. Il tuo computer sta ricevendo i dati, quindi è l'input. Questo progetto utilizza l'eccellente Arduino Libreria MIDI v4.2 di Forty Seven Effects. Una volta installata la Libreria, puoi includerla nel tuo codice andando su Schizzo> Includi libreria> MIDI.

Avrai anche bisogno di un programma per monitorare i dati MIDI in arrivo:

  • Monitor MIDI per OS X
  • MIDI-OX per Windows
  • KMidimon per Linux

Collega Arduino Guida introduttiva al kit iniziale Arduino - Installazione driver e impostazione della scheda e della portaQuindi, ti sei comprato un kit di avvio Arduino e forse altri componenti casuali interessanti - e adesso? Come inizi davvero a programmare questa cosa di Arduino? Come lo configuri ... Leggi di più sul tuo computer e carica il seguente codice di prova (non dimenticare di selezionare la scheda e la porta corrette dal Strumenti> Scheda e Strumenti> Porta menu).

#includere 
#includere 
#includere 
#includere 
#includere  MIDI_CREATE_INSTANCE (Hardware seriale, seriale, midiOut); // crea un oggetto MIDI chiamato midiOut void setup () {Serial.begin (31250); // imposta seriale per MIDI. } void loop () {midiOut.sendControlChange (56.127,1); // invia un MIDI CC - 56 = nota, 127 = velocità, 1 = ritardo canale (1000); // aspetta 1 secondo midiOut.sendProgramChange (12,1); // invia un PC MIDI - 12 = valore, 1 = ritardo canale (1000); // aspetta 1 secondo. }

Questo codice invierà un messaggio CC, attenderà 1 secondo, invierà un messaggio PC, quindi attenderà 1 secondo a tempo indeterminato. Se tutto funziona correttamente, dovresti visualizzare un messaggio sul tuo monitor MIDI.

Se non succede nulla, non farti prendere dal panico! Prova a risolvere i problemi:

  • Assicurarsi che tutti i collegamenti siano corretti
  • Controlla che la porta MIDI sia cablata correttamente - dovrebbero esserci 2 pin di riserva sui bordi esterni
  • Ricontrolla che il circuito sia corretto
  • Verificare che il circuito sia collegato a un'interfaccia USB-MIDI con un cavo MIDI
  • Verifica che il tuo cavo MIDI sia collegato al ingresso sulla tua interfaccia USB-MIDI
  • Assicurati che Arduino abbia il potere
  • Installa il driver corretto per la tua interfaccia USB-MIDI

Se sei ancora in caso di problemi potrebbe valere la pena controllare la breadboard Le schede economiche a volte possono essere molto incoerenti e di bassa qualità - mi è successo mentre lavoravo a questo progetto.

Test dei pulsanti

Ora è il momento di testare i pulsanti funzionano correttamente. Carica il seguente codice di prova. Il MIDI non deve essere collegato per testare questa parte.

const int buttonOne = 6; // assegna il pin del pulsante alla variabile. pulsante const int Due = 7; // assegna il pin al variabile void setup () {Serial.begin (9600); // imposta seriale per text pinMode (buttonOne, INPUT); // pulsante di configurazione come input pinMode (buttonTwo, INPUT); // pulsante di configurazione come input. } void loop () {if (digitalRead (buttonOne) == HIGH) {// controlla ritardo stato pulsante (10); // software de-bounce if (digitalRead (buttonOne) == HIGH) {// controlla di nuovo lo stato del pulsante Serial.println ("Button One Works!"); // ritardo risultato registro (250); }} if (digitalRead (buttonTwo) == HIGH) {// controlla ritardo stato pulsante (10); // de-bounce software if (digitalRead (buttonTwo) == HIGH) {// controlla nuovamente lo stato del pulsante Serial.println ("Button Two Works!"); // ritardo risultato registro (250); } } }

Esegui questo codice (ma mantieni collegato il cavo USB) e apri il monitor seriale (In alto a destra> Monitor seriale). Quando premi un pulsante dovresti vedere "Button One Works!" o "Button Two Works!" a seconda del pulsante che hai premuto.

C'è una nota importante da togliere a questo esempio: il software de-bounce. Si tratta di un semplice ritardo di 10 millisecondi (ms) tra il controllo del pulsante e il successivo controllo del pulsante. Ciò aumenta la precisione della pressione del pulsante e aiuta a prevenire il rumore che attiva Arduino. Non è necessario farlo, sebbene sia raccomandato.

Creazione del controller

Ora che tutto è cablato e funzionante, è tempo di assemblare il controller completo.

In questo esempio verrà inviato un messaggio CC diverso per ciascun pulsante premuto. Lo sto usando per controllare Ableton Live 9.6 su OS X. Il codice è simile a entrambi gli esempi di test sopra.

#includere 
#includere 
#includere 
#includere 
#includere const int buttonOne = 6; // assegna il pin del pulsante alla variabile. pulsante const int Due = 7; // assegna il pin del pulsante alla variabile MIDI_CREATE_INSTANCE (HardwareSeriale, Seriale, MidiOut); // crea un oggetto MIDI chiamato midiOut void setup () {pinMode (buttonOne, INPUT); // pulsante di configurazione come input pinMode (buttonTwo, INPUT); // pulsante di configurazione come input Serial.begin (31250); // imposta l'uscita MIDI. } void loop () {if (digitalRead (buttonOne) == HIGH) {// controlla ritardo stato pulsante (10); // de-bounce software if (digitalRead (buttonOne) == HIGH) {// ricontrolla lo stato del pulsante midiOut.sendControlChange (56.127,1); // invia un MIDI CC - 56 = nota, 127 = velocità, 1 = ritardo canale (250); }} if (digitalRead (buttonTwo) == HIGH) {// controlla ritardo stato pulsante (10); // software de-bounce if (digitalRead (buttonTwo) == HIGH) {// ricontrolla lo stato del pulsante midiOut.sendControlChange (42.127,1); // invia un MIDI CC - 42 = note, 127 = velocity, 1 = channel delay (250); } } }

Nota: non sarai in grado di utilizzare Serial.println () con uscita MIDI.
Se si desidera inviare un messaggio PC anziché un CC, è sufficiente sostituire:

midiOut.sendControlChange (42.127,1);

Con:

midiOut.sendProgramChange (valore, canale); 

In azione

Di seguito è una dimostrazione come controller per Ableton Live (Il miglior software DJ per tutte le tasche Il miglior software DJ per ogni budgetUn buon software di missaggio può fare la differenza nelle tue prestazioni. Indipendentemente dal fatto che tu stia utilizzando un Mac, Windows o Linux, ogni livello di competenza e budget è soddisfatto se vuoi iniziare il DJ. Leggi di più ). L'angolo in alto a destra mostra i misuratori audio e il centro in alto mostra i messaggi midi in arrivo (via Monitor MIDI su OS X).

Hai creato un controller MIDI?

Ci sono molti usi pratici per un controller MIDI personalizzato. Potresti costruire una vasta unità controllata a pedale o un elegante controller da studio. E se sei interessato ad acquistarne uno, ecco qui i migliori controller MIDI USB I 9 migliori controller MIDI USB per musicistiAlla ricerca di un controller MIDI USB? Ecco i migliori controller MIDI che puoi acquistare in questo momento, indipendentemente dal budget. Leggi di più si può comprare.

Credito immagine: Keith Gentry tramite Shutterstock.com

Joe è laureato in Informatica presso l'Università di Lincoln, nel Regno Unito. È uno sviluppatore di software professionale e quando non pilota droni o scrive musica, spesso si trova a scattare foto o a produrre video.