Qualche mese fa ho pubblicato un post su come realizzare un MIDI Ribbon controller con Arduino. Nel frattempo mi sono accorto di poter migliorare un paio di cose sia a livello Hardware che Software e inoltre sentivo la necessità di poter modificare diversi parametri senza dover ogni volta riprogramare Arduino. Infine ho sistemato il controller in un case, grazie soprattutto a Laura che l’ha realizzato. Quindi questa è la versione 2.0 del mio MIDI Ribbon Controller che finalmente diventa uno strumento molto più pratico.<--break->

NOTA: Non sono un esperto di elettronica quindi se decidete di realizzare questo progetto non sono responsabile di eventuali danni a computer, case, persone e animali che potrebbero derivare. Inoltre non escludo che ci siano errori nell’articolo che cercherò comunque di correggere.

UPDATE: Sta per uscire sul mercato un nuovo MIDI ribbon controller della Eowave con collegamenti USB e audio. Include anche un piccolo synth tipo theremin e un’area di controllo per gli effetti. Il prezzo è abbordabile (199 euro + tasse). Quindi per molti questa potrebbe essere la soluzione migliore.

Prima di tutto la lista dei componenti necessari per il nostro Coagula MIDI ribbon controller:

Questo è lo schema elettrico:

Nel disegno non avendo a disposizione le immagini dei due sensori ho usato quelle di un potenziometro e di un force sensor circolare.

I due sensori vanno attaccati l’uno sull’altro, mettendo sotto quello di pressione e sopra quello di posizione. Il sensore di pressione è più lungo di una decina di centimetri e potete tranquillamente tagliare la parte eccedente. Il sensore di forza ha solo due terminali senza polarità e quindi non c’è rischio di sbagliare, ma per il sensore di posizione state molto attenti: se sbagliate le connessioni rischiate di bruciarlo! A me è capitato, purtroppo!

Ricordatevi anche che non si devono saldare i sensori direttamente, ma dovete usare dei connettori. Io ho utilizzato come connettore un mezzo zoccolo per circuiti integrati.

Nello schema ho modificato la connessione del sensore di posizione in modo da rendere superflua la sua calibrazione e per evitare disturbi quando non viene premuto il sensore. Ma la vera novità è l’aggiunta di un display LCD compatibile Hitachi HD44780 e di 4 pulsanti per gestire un menu tramite il quale è possibile scegliere tra due diverse modalità di controllo, impostare diversi parametri MIDI, ed eventualmente ricalibrare il sensore di pressione. 

Queste sono le funzioni dei 4 tasti:

  • pin8 = Su
  • pin9 = Giù
  • pin10 = Esc
  • pin11 = Enter

Tenendo premuto il tasto Enter appare il menu e tramite i tasti su e giù potete navigare tra le varie voci. Con il tasto Esc potete uscire dal menu senza salvare i valori. Tutti i valori settati vengono salvati nella memoria flash di Arduino e quindi non si perdono allo spegnimento dello stesso.


La modalità Playing 2 è uguale a quella della prima versione ovvero premendo il sensore viene inviato un comando Note On e spostando il dito si inviano dei comandi Control Change. Il note off viene inviato solo nel momento in cui si rilascia il sensore.

Nella modalità 1 premendo il sensore viene inviato un comando Note On e spostando il dito si suonano le altre note, come quando si scorrono i tasti di un pianoforte.

In ambedue le modalità vengono inviati anche dei Control Change in base alla pressione applicata sul sensore.

Tramite il menu è possibile settare il numero di Control Change associato al sensore di posizione (usato solo per il Playing mode 2), il Control Change associato al sensore di forza, la nota più bassa e la più alta inviabile, il canale midi di trasmissione. Inoltre si può lanciare una modalità “MIDI Teach” che serve per inviare alcuni valori per i Control Change associati ai sensori, tramite i due tasti normalmente usati per andare su e giù nel menu. Tale modalità MIDI Teach è utile per sfruttare il MIDI Learn presente in moltissimi software musicali e moduli hardware, infatti, premendo i sensori, sarebbe impossibile inviare questi Control Change singolarmente e senza inviare anche dei MIDI Notes.

Infine da Menu è possibile anche lanciare la procedura di calibrazione del sensore di forza, che comunque viene eseguita in automatico la prima volta che avviate la scheda programmata.


Qui potete scaricare il codice completo. Avete bisogno anche della libreria MIDILIBRARY che potete scaricare direttamente da Sourceforge, e della  libreria Menubackend di Alexander Brevig di cui dovete scaricare la versione 1.4 e modificarla leggermente aggiungendo, alla riga 195 del file MenuBackend.h subito prima della riga con scritto “private:”, questo metodo:
void toRoot() {
setCurrent( &getRoot() );
}
Tale metodo serve per poter tornare agevolmente alla radice del menu. Nello sketch dovete importare la libreria Menubackend così modificata, la Midilibrary e la libreria LiquidCrystal che è inclusa nell’IDE di Arduino.

Per maggiori dettagli sulla gestione del menu potete vedere il mio altro post su come gestire menu con Arduino.

Se doveste realizzare questo progetto o se doveste modificarlo sarei felice di vedere i risultati.

Ecco qui una piccola demo del MIDI Ribbon controller.

Il software utilizzato è Ableton Live e il plugin collegato al controller è Reaktor con l’ensemble Grobian e preset Daft. Il parametro HTr è stato associato al Control Change del sensore di pressione. Ho cercato di ottenere un effetto simile a quello dello Swarmatron usato da Trent Reznor.

Licenza Creative Commons
Coagula Arduino MIDI Ribbon Controller 2.0 by Giuseppe Di Cillo – Coagula.org is licensed under a Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 3.0 Unported License.
Permissions beyond the scope of this license may be available at http://www.coagula.org.