Sommario:

Arduino Multi-track MIDI Loop Station: 6 passaggi
Arduino Multi-track MIDI Loop Station: 6 passaggi

Video: Arduino Multi-track MIDI Loop Station: 6 passaggi

Video: Arduino Multi-track MIDI Loop Station: 6 passaggi
Video: How to Make an Arduino MIDI Footswitch 2024, Dicembre
Anonim
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station

Una loop station, o looper, è essenzialmente uno strumento per riprodurre in tempo reale i tuoi riff strumentali (loop). Non vuole essere un supporto di registrazione, ma uno strumento per plasmare l'ispirazione senza distrazioni (ed eventualmente esibirsi dal vivo…).

Ci sono un sacco di loop station di registrazione audio là fuori, sia sotto forma di hardware dedicato (quasi ogni singolo produttore di pedali per chitarra ha il proprio prodotto) o software per computer (l'eccellente Linux Sooper Looper o Windows Mobius, per citare i più conosciuti). Sono riuscito a trovare solo pochi progetti sui looper fai-da-te non audio ma MIDI, ovvero uno strumento per registrare eventi MIDI e riprodurli immediatamente in un loop; la maggior parte di questi progetti (tutti, dovrei dire) sono abbandonati o persi… beh, eccoci con un progetto completo per tutti!

Questa loop station Arduino MIDI tiene semplicemente traccia degli eventi MIDI in arrivo e li riproduce. Devi solo premere il pedale di registrazione, creare il tuo miglior riff di sempre e interrompere la registrazione premendo nuovamente il pedale. Facilissimo:)

Questo progetto si basa su hardware aperto facile da trovare (Arduino DUE), software (il mio firmware e Arduino IDE) e può essere personalizzato per riflettere le tue preferenze.

Facciamolo!

PS: sì, è super economico!

Passaggio 1: limiti

Prima di iniziare ad acquisire parti hardware per il progetto, lascia che ti dica quali sono i suoi limiti in modo che tu possa decidere di andare avanti o fermarti qui.

- a causa di limiti hardware (memoria Aduino DUE essenzialmente), la lunghezza massima predefinita della frase che è possibile registrare è limitata a 46 secondi.

- i loop non possono essere memorizzati e riprodotti dopo lo spegnimento. Tuttavia, puoi inviarli a un PC e salvarli.

- non c'è quantizzazione delle note.

- Il clock MIDI è supportato, ma in una fase preliminare in questo momento.

- I messaggi MIDI registrati sono note on, note off, control change e pitch bend; altri messaggi MIDI come after touch, program change, SysEx, ecc. vengono ignorati.

- la polifonia massima è impostata di default a 10 (di nuovo, limiti di memoria Aduino DUE).

Tra i lati positivi, sono supportati flussi MIDI da più strumenti diversi, ognuno dei quali trasmette sul proprio canale; ciò significa che puoi registrare più strumenti MIDI contemporaneamente, sovrapposti o con la propria traccia (altri professionisti nel passaggio successivo;)).

Se vivere con queste limitazioni sembra ragionevole (e lo è per me), ti divertirai molto con questa cosa;)

Passaggio 2: come funziona

La stazione loop MIDI qui è molto semplice da usare. Funziona in modo simile a quelle loop station audio hardware che ogni produttore di pedali per chitarra ha nel proprio catalogo.

1) Seleziona la traccia su cui vuoi registrare la tua sequenza MIDI. Per impostazione predefinita viene scelta la traccia "one", ma è possibile modificarla premendo uno dei pulsanti delle tracce (uno per ciascuna traccia).

2) Quando si preme l'interruttore/pedale "REC" per la prima volta, il looper è attivato. Il LED verde si accende. Attenderà la ricezione della prima nota prima di iniziare a registrare la sequenza/riff attuale.

3) Quando hai finito la tua sequenza, premi nuovamente l'interruttore/pedale "REC" per definire la lunghezza effettiva del riff. Il LED verde si spegne. Il looper inizierà a riprodurre immediatamente la tua sequenza MIDI. Se raggiungi il tempo massimo, la registrazione si interromperà automaticamente e la sequenza inizierà a essere riprodotta in loop.

4) Ora puoi decidere di sovraincidere la tua sequenza sulla traccia corrente o selezionare una nuova traccia e registrare su di essa, premendo l'interruttore/pedale "REC". In entrambi i casi si accenderà il led giallo, anche se la nuova traccia è vuota, perché è una traccia "slave" (asservita alla primissima traccia registrata). Premere di nuovo per interrompere la sovraincisione (il LED giallo si spegne).

Per quelli di voi a proprio agio con le stazioni di looping audio, questa progressione MIDI si chiama "REC/PLAY/OVERDUB" ed è l'unica supportata.

Se in qualsiasi momento ritieni che l'ultima sovraincisione non sia ok, puoi eliminarla premendo l'interruttore/pedale "undo". È possibile cancellare l'intera traccia corrente tenendo premuto il pedale "REC" per più di 3 secondi; è possibile ripristinare il looper (ripristino software) premendo contemporaneamente i primi tre pulsanti delle tracce o cancellando tutte le tracce utilizzate.

È possibile attivare/disattivare l'audio di una traccia premendo il pulsante della traccia della traccia corrente.

Puoi mandare un PANICO! messaggio premendo il pulsante antipanico. Puoi anche inviare un PANICO! messaggio premendo contemporaneamente i pulsanti delle prime due tracce.

Il looper ha un semplice metronomo incorporato: una nota sul messaggio MIDI per la nota numero "64" viene inviata a 100 BPM sul canale 10 (il canale che presumibilmente stai ascoltando dalla tua drum machine). È possibile aumentare o diminuire il tempo ruotando l'encoder ottico; premendo l'interruttore dell'encoder ottico è possibile abilitare/disabilitare il metronomo. Nota che la tua drum machine deve essere impostata per riprodurre un suono (rullante, basso o qualsiasi altro suono tu preferisca) quando ricevi la nota MIDI "64" o il metronomo sarà muto.

Una versione barebone di questa loopstation MIDI potrebbe essere realizzata con un singolo interruttore a pedale per avviare e interrompere la registrazione. Tenendo premuto l'interruttore per più di 3 secondi si reinizializzerà la loop station.

Se vuoi investire un po' di tempo in più nello sviluppo dell'hardware, l'aggiunta di interruttori e pulsanti renderà la loop station più flessibile. Nella foto è come ho configurato le mie quattro tracce (sono supportate fino a cinque) loop station con funzionalità complete.

NOTA IMPORTANTE: l'hardware nelle mie foto è un prototipo. Ho usato più prese jack del necessario, ma solo quattro pulsanti per le tracce. Questo perché quando ho iniziato il progetto non ero completamente sicuro di quali sarebbero stati i requisiti finali.

I pulsanti e gli interruttori a pedale sono elettronicamente equivalenti e puoi usarne uno invece dell'altro; per le mie esigenze, dato che c'è sempre troppo poco spazio sul pavimento (dannatamente adorabili i pedali degli effetti;)), ho vincolato i pedali alla singola funzione REC.

Passaggio 3: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Distinta base:

Loop station MIDI a 5 tracce completa di tutte le funzionalità

1x Arduino DUE

7 pulsanti momentanei

1x custodia in plastica (ho usato una custodia da 150 x 110 x 70 mm)

2 connettori per presa MIDI femmina DIN a 5 pin per montaggio a pannello

1x presa jack per montaggio a pannello da 6,3 mm

1x pannello perforato a doppia faccia 50x70 mm

LED 5x 3 mm (verde)

1x LED da 3 mm (giallo)

1x codificatore ottico

1x fotoaccoppiatore H11L1

1x diodo 1N4148

3 resistenze da 1000 ohm

3 resistenze da 220 ohm

Resistori 10x 470 ohm

Un po' di filo di saldatura, alcuni cavi, stazione di saldatura… e tempo libero:)

Tempo necessario per completare il progetto: 6-9 ore

Perché non un ONU?

I primi test (e un codice funzionante di partenza) sono stati scritti su una "normale" scheda Arduino UNO. Questa scheda ha limiti di RAM che mi hanno costretto a ridurre la polifonia a "4", durata massima a meno di 4 secondi e risoluzione di 40 ms al massimo. Questo senza gestione multicanale. Rimuovendo anche il tracciamento della velocità, sono stato in grado di aumentare il tempo di registrazione fino a 7 secondi.

Con un UNO puoi quindi realizzare una loop station MIDI "funzionante", ma molto limitata.

Passaggio 4: software

Il software si basa molto sulla libreria MIDI FortySevenEffects. Questa libreria è fantastica e rende questo tipo di progetti fattibili anche per i fanatici non programmatori come me.

Arduino IDE e la sua community sono un'altra parte importante di questo "successo".

Non entrerò nei dettagli su come caricare lo schizzo sul tuo arduino DUE. Se questa è la tua prima esperienza con Arduino IDE, leggi prima questo.

Ho scritto due diverse versioni del codice, basate su due approcci completamente diversi.

Il principio di funzionamento della versione 1 è che durante la registrazione o la sovraincisione Arduino DUE controlla e memorizza nella sua memoria (volatile) gli eventi MIDI supportati (note on, note off, control change e pitch bend); l'asse temporale viene quantizzato in passi di 20 ms e i messaggi ricevuti vengono memorizzati di conseguenza in quegli slot. Durante la riproduzione, i messaggi MIDI memorizzati vengono rimandati al synth rispettando la quantizzazione del tempo.

Il principio di funzionamento della versione 2, invece, è quello di registrare "semplicemente" l'evento midi e l'ora in cui l'evento deve essere attivato. La versione 2 ha limiti diversi rispetto alla versione 1 (elencata in un passaggio precedente). provali entrambi e usa quello che funziona meglio per te.

C'è anche una gestione preliminare dell'orologio, ma avrà bisogno di alcune modifiche per funzionare come dovrebbe. Il codice presuppone che tu registri un loop di 4/4 - 4 battute (16 battute).

È possibile disattivare il clock esterno tenendo premuto il pulsante "panic" all'accensione del looper.

I codici sono caricati QUI. I commenti sono posizionati su di essi, in modo che tu possa piegare quei firmware a tuo piacimento;)

Passaggio 5: cablaggi

cablaggi
cablaggi
cablaggi
cablaggi
cablaggi
cablaggi

I circuiti MIDI IN e MIDI OUT sono riportati nelle immagini allegate. Notare che vengono utilizzati TX1 e RX1, non TX0 e RX0.

I pin di ingresso Arduino DUE non possono gestire 5V, ma 3,3V; questo è il motivo per cui viene utilizzato un fotoaccoppiatore H11L1 al posto del più comune 6N138. Ho prove che l'utilizzo di un 6N138 accoppiato con un partitore di tensione per ridurre la tensione del segnale che va a TX1, come nel mio primo prototipo, potrebbe funzionare in modo irregolare in alcune configurazioni.

I LED sono collegati ai pin di uscita Arduino DUE tramite resistori da 470 Ohm. Puoi utilizzare resistori fino a 1K ohm per ridurre la corrente che va ai LED e ridurne la luminosità.

Pulsanti/interruttori/jack sono direttamente collegati ai pin di input di Arduino grazie a resistori di pullup di input, attivati nello sketch. Non sono necessarie resistenze esterne (pulldown).

L'encoder ottico è collegato a GND e +5V. Va ai pin di ingresso di Arduino passando attraverso 2 resistori da 480 ohm, uno per ogni uscita di dati ottici.

Arduino DUE è alimentato direttamente da pin 5V e terra tramite un hub +5V DC.

Tutti i motivi sono legati insieme.

In allegato c'è una tabella con le connessioni dai pin arduino alla periferica IN/OUT. I numeri dei pin di Arduino riflettono quelli nel mio hardware di proptotipo e potrebbero sembrare (in qualche modo sono …) casuali. Puoi facilmente modificare la posizione del pin nello schizzo a tuo piacimento;)

Passaggio 6: cosa succede se ho più di una sorgente MIDI?

Cosa succede se ho più di una sorgente MIDI?
Cosa succede se ho più di una sorgente MIDI?

Dopo una breve ricerca per una fusione MIDI, ho scoperto che la soluzione più pratica (ed economica) era uno switcher MIDI.

Uno switcher MIDI è un dispositivo passivo che abilita una sorgente MIDI e disabilita tutte le altre sorgenti. Semplice come quella.

Il cuore di uno switcher MIDI è uno switch multiposizionale (il mio è a 6 posizioni), a 2 poli. E' molto importante che il numero di poli sia "2" perchè ogni presa MIDI deve essere completamente tagliata se non selezionata e non in comunicazione con le altre. In allegato una foto di quello che ho realizzato per mio uso.

A QUESTO LINK uno schema.

Consigliato: