Convertitore MIDI a CV con “un Sacco” di Uscite

Sono ormai passati due anni da quando ho sviluppato il convertitore MIDI-to-CV da utilizzare sul mio sintetizzatore “fatto in casa”.

Le funzioni principali di un dispositivo come questo sono la trasformazione dei segnali MIDI in ingresso (digitali per loro natura) in tensioni di controllo da indirizzare poi a moduli analogici. L’applicazione più critica è il controllo dell’intonazione di oscillatori analogici perché, come più volte ricordato, nel comune formato V/ottava ogni semitono è separato da 83, minuscoli, millivolt 🙂

Dopo la recente rivisitazione di tutti i face plates dei miei moduli ho ripreso in mano il codice per snellire un po’ quella prima (o meglio “seconda“…) iterazione del convertitore e aggiungere qualche funzionalità di cui cominciavo a sentire il “bisogno psicologico” (non suono mai, dunque non può trattarsi di un bisogno materiale), tipo la gestione dei keypress oltre il limite di polifonia.

La fame, si sa, viene mangiando e io ero talmente affamato da introdurre anche alcuni voltaggi di controllo ausiliari, precedentemente lasciati in disparte.

Qui mi sono scontrato con i limiti dell’hardware, sì capace di produrre quattro CV con risoluzione più che sufficiente per l’intonazione degli oscillatori, ma molto basico nella generazione di qualsiasi altro voltaggio di controllo. In quel progetto, infatti, avevo adottato la più semplice soluzione tecnica per produrre un voltaggio di controllo dall’uscita PWM di un microcontrollore: il “livellamento” via filtro RC. Questa soluzione è pratica (o forse dovrei dire “praticona”), ma decisamente insufficiente per le nostre applicazioni, c’è poco da fare.

Sono dunque entrato in modalità “nuovo progetto” e ne è venuto fuori il qui presente oggettino: un convertitore MIDI-to-CV capace di gestire un numero di voltaggi di controllo variabile da quattro a trentadue (!!).

Non è tutto!

Un altro aspetto del convertitore precedente di cui non ero soddisfatto era l’estensione dei voltaggi di intonazione, limitati ai 4V circa erogabili “direttamente” dal convertitore digitale/analogico utilizzato. In questo nuovo progetto ho portato il limite superiore a 8V, il che si traduce in termini “musicali” in otto ottave nel formato “volt/ottava”.

Il nuovo convertitore può essere utilizzato sia come modulo Eurorack, tramite l’utilizzo della placca frontale appositamente disegnata, sia in una configurazione “solitaria”.

Tante parole e nessuna immagine, provvediamo subito: una fotina della configurazione Eurorack …

MIDIXCV – configurazione Eurorack a “modulo”

… e una in configurazione “stand-alone” …

MIDIXCV – configurazione “stand-alone”. Ho in mente di fare un mini face plate anche per questa versione, ma non dirlo a nessuno! 🙂

Ma torniamo alla descrizione dell’hardware, in particolare le uscite, che sono il fattore che più ha inciso sul design del nuovo convertitore. Per consentirne un numero variabile e limitare le dimensioni allo stretto necessario, il dispositivo è stato pensato per avere un certo grado di “modularità” (dice niente? ;)).

Questo è infatti costituito da una scheda principale (main board) con un DAC per la gestione delle prime quattro tensioni di controllo, il circuito MIDI IN, la scheda a microcontrollore (Arduino NANO), uno stadio finale di amplificazione e protezione, uno stadio di filtro delle tensioni in ingresso e una serie di switch per i settaggi.

MIDIXCV – scheda principale

Alla scheda principale si possono poi fisicamente sovrapporre una o più schede analogiche addizionali (analog board), ognuna delle quali aumenta di “+4” le uscite analogiche a disposizione.

MIDIXCV – scheda anlogica

Dunque, il numero di uscite analogiche messe a disposizione è funzione del numero di schede utilizzate, con un limite massimo imposto dai limiti tecnici dei DAC adottati (MCP4728).

Già che c’ero, ho anche sviluppato una schedina utilizzabile per controllare segnali digitali. Non era necessaria dato che le schede analogiche si possono usare in sua vece, ma il costo inferiore e la maggiore semplicità di realizzazione (non necessita di DAC, che è un b@stard0 da saldare) possono renderla una opzione di interesse.

MIDIXCV – scheda digitale.

In foto l’amplificatore finale è in configurazione di voltage follower, dunque a guadagno unitario, ma volendo l’hardware si può configurare per erogare più di 5V.

Di seguito un esempio di dispositivo MIDI-to-CV costituito da scheda principale, una scheda analogica e una digitale:

Un bel sandwitch di schedine capace di controllare otto segnali analogici (dunque otto oscillatori indipendenti, volendo) e quattro digitali!

Come per la precedente versione, il nuovo convertitore per funzionare ha bisogno di voltaggio dual-rail per gli amplificatori operazionali (+/-12V o +/-15V) e della linea +5V per alimentare la scheda a microcontrollore e i convertitori digitale/analogico.

Ho buttato giù un firmware per il controllo della configurazione che serve a me: quattro uscite analogiche indipendenti per le intonazioni di altrettanti oscillatori (in uscita dalla main board), più altre quattro (in uscita dalla analog board) per generare, rispettivamente:

a) una tensione di gate (singola)

b) una tensione proporzionale alla velocità di pressione dei tasti (velocity)

c) una tensione proporzionale alla posizione della nota sulla tastiera (keyboard tracking)

d) una tensione proporzionale all’aftertouch.

La gestione delle intonazioni degli oscillatori è la stessa implementata nel convertitore “vecchio”, con quattro tensioni identiche in caso di singolo tasto premuto (unisono), intonazione a coppie in caso di due note e voice stealing progressivo a coprire le restanti note fino al limite di singolo oscillatore per nota.

Questa routine, che io sappia, non è mai stata adottata da alcun progetto DIY, ne tantomeno commerciale. Ha il vantaggio di permettere di escludere l’uso di uno switch (e gate) per oscillatore, riducendo così il numero di elementi necessari alla configurazione parafonica.

Tutti gli oscillatori sono sempre presenti sul percorso audio il che permette, da un punto di vista meramente sonoro, una emissione molto dinamica e “diversa”. Credo sia un esempio di quel tipo di “innovazione” che ci vorrebbe in un periodo storico dove gli strumenti suonano un po’ tutti uguali (è solo una mia impressione?).

Al di là delle mie elucubrazioni, che lasciano il tempo che trovano, la flessibilità dell’ hardware unita alla natura “open” del software di questo progetto rende comunque il convertitore compatibile sia con soluzioni “sperimentali” (come quella da me adottata), sia più convenzionali.

Per esempio, sebbene il firmware che ho scritto supporti un solo gate (setup parafonico semplificato), è possibile programmare quattro (o più!) gates indipendenti, uno per oscillatore (setup polifonico), ma anche gestire un numero maggiore di oscillatori, per un totale di 32 (trentadue) voltaggi di controllo*.

*Nota bene: ho testato l’hardware in maniera estesa con il firmware che descrivevo sopra. Non ho fatto test con un numero di uscite analogiche superiore a otto.

Una fotina del convertitore installato sul mio sintetizzatore DIY ci sta tutta, a questo punto:

MIDIXCV installata nel mio synth (è quella in basso a sinistra)
MIDIXCV – vista ravvicinata

Ho scritto un Instructable con tutti i dettagli tecnici del nuovo convertitore, oltre che istruzioni dettagliate su come assemblarlo e programmarlo. Lo trovi >>QUI<<. In quella sede ho riportato anche i link ai file necessari per farsi fare le schedine, al firmware di cui parlavo prima e ad una serie di software di supporto.

Trovi inoltre alcuni suggerimenti utili per assemblare il tutto, incluso il microscopico DAC.

Dacci un’occhiata se sei curioso 😉

Le schede in fibra di vetro, il faceplate in alluminio e il servizio di assemblaggio dei DAC sulle PCB di questo articolo sono stati forniti e sponsorizzati da JLCPCB, produttore specializzato nella realizzazione di schede di ottima fattura, affidabili e a prezzo super-competitivo.

Registrandoti al loro sito tramite >>questo link<< (affiliato) riceverai un set di coupon di benvenuto per testare tutti i loro servizi al minor costo possibile 😉

Hai trovato l’articolo interessante? Puoi incentivare lo sviluppo di nuovi progetti aiutandomi a sostenerne i costi tramite una piccola donazione a questo link: https://paypal.me/barito77

Pubblicato da synthbrigade

Appassionato di elettronica e sintetizzatori, mi diletto nella riparazione e manutenzione delle mie macchine e nella realizzazione di dispositivi per sfruttarle al meglio