Programmatore di Patch SysEx “PICO”

Poco più di un anno fa ho realizzato un programmatore di patch basato su arduino MEGA capace di inviare messaggi MIDI con protocollo SysEx ad alcuni dei miei sintetizzatori anni ottanta preferiti.

Il programmatore di cui sopra è dotato di 16 potenziometri tramite i quali è possibile modificare in tempo reale i valori di tre gruppi di parametri, per un totale di massimo 48 parametri.

Sebbene un programmino che si limiti ad inviare messaggi MIDI in funzione della posizione di un gruppetto di potenziometri non impieghi un gran numero di byte, rendere informazioni alfanumeriche più verbose su schermo fa incrementare velocemente la mole di dati da memorizzare.

La scarsa memoria della scheda a microcontrollore arduino MEGA è il motivo, ad esempio, per cui quel programmatore a schermo riporta solo informazioni relative alla modalità “sequencer” (canale MIDI, BPM, ottava, etc.) e nulla riguardo le variabili di patch.

Recentemente mi sono messo a giocare con un’altra scheda a microcontrollore: la Raspberry Pi Pico. Frequenza di clock elevata, due core, compatibilità con l’IDE Arduino sono alcune delle sue caratteristiche peculiari (si, ok, l’ultima interessa a me in particolare visto che Phyton non lo mastico un granché). A queste si aggiunga una memoria fino a 16Mb (…ammazza!) nelle versioni più costose et-voilà, il nuovo progetto era in pista.

Programmatore

In questo progetto ho voluto adottare un approccio diametralmente opposto a quello del precedente programmatore, massimizzando la quantità di informazioni a schermo e mantenendo il numero di manopole al minimo possibile. Condizione necessaria per ottenere qualcosa di pratico e realmente utilizzabile era evitare di scendere a compromessi con il menu diving, che non piace a nessuno (estimatori Elektron, liberatevi dalle catene!).

Considerato che l’informazione da visualizzare era puramente alfanumerica, ho scelto di usare un comunissimo schermo a cristalli liquidi retroilluminato a due righe e sedici colonne, in modo da avere dimensioni ragionevoli dei caratteri. Rispetto ai più moderni schermini consumer a OLED – tipo quello installato nel precedente programmatore – la risoluzione è risibile, ma ciò nonostante l’informazione alfanumerica più fruibile.

Sebbene la modalità sequencer non sia stata inclusa, il nuovo programmatore mantiene l’ingresso MIDI e tutta la circuitistica al contorno, in modo da poterlo inserire in serie fra il master controller di preferenza (DAW, Master keyboard o altro hardware) e il sintetizzatore di destinazione.

Fotina del programmatore oggetto di questo articoletto:

PICO MIDI SysEx Patcher

Quanto mi piace! 🙂

Firmware

Una bella fetta di lavoro è stata dedicata alla stesura del firmware. Inizialmente avevo optato per una rappresentazione lineare dei vari parametri, ma ci è voluto poco per rendermi conto che decine parametri, uno in fila all’altro, rendevano il patching tedioso.

Sono passato dunque ad un più “naturale” raggruppamento a blocchi delle variabili: oscillatori, filtri, amplificatore, sorgenti di modulazione, effetti. In altre parole, i parametri di patch afferenti agli oscillatori (ottava, forma d’onda, quantità di modulazione, bending etc.) sono raggruppati sotto una categoria, quelli dei filtri (frequenza, risonanza, quantità e modo di inviluppo, etc.) in un’altra, e così via.

Ho cercato di mantenere una certa coerenza di categorizzazione per i sintetizzatori supportati, senza però calcare troppo la mano. In alcuni casi, per esempio, le modulazioni sono poste sotto lo stesso gruppo delle proprie destinazioni (quando ad esempio la modulazione ha un routing predefinito), mentre in altri casi sono sotto un gruppo ad-hoc.

Prendiamo ad esempio il Roland a-Juno. Questo ha un singolo inviluppo, ma destinabile a oscillatore, filtro passa basso e/o VCA. La sua categorizzazione “naturale” é dunque separata dalle destinazioni.

Categorizzazioni parametri Roland a-JUNO

Nel caso del DW8000 (EX8000) abbiamo invece due inviluppi, l’uno agganciato al filtro passa basso, l’altro al VCA. In questo caso i parametri di inviluppo sono racchiusi sotto la categoria della propria destinazione.

Categorizzazioni parametri Korg DW8000/EX8000

Qui una fotina o due del programmatore sul mio EX8000 ci sta tutta 🙂

Il nuovo programmatore… in buona compagnia 😀
un po’ più da vicino, grazie…

Nelle foto sopra si vedono anche l’altro programmatore, quello con 16 potenziometri, e il selettore MIDI oggetto di >>questo<< articolo.

Visto che ci siamo, posto anche la categorizzazione dell’altro sintetizzatore supportato: il “mostruoso” Oberheim Matrix 6/6r.

Categorizzazioni parametri Oberheim Matrix 6/6r

Tanta roba! Ma non tutta…

Il nuovo approccio permetterebbe di supportare un qualsiasi numero di parametri (entro i limiti di memoria della scheda a microcontrollore, ad oggi ancora lontana dall’essere in sofferenza), ma ho comunque preferito ridurre quelli del Matrix 6 da 99 (NOVANTANOVE c@zz0!) a 52.

La matrice di modulazione, feature che rende un vero gioiello di ingegneria questo synth, non è supportata: non ho ancora trovato un modo furbo per farlo e ho la netta sensazione che sia una di quelle cose in cui il patching hardware debba cedere il passo a quello software.

Ho pubblicato un articoletto su Instructables in cui riporto anche una sorta di manuale d’uso: dacci un’occhiata se vuoi maggiori dettagli su questo progettino 😉

La scheda stampata del programmatore oggetto di questo articolo sono stati 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 coupons di benvenuto per testare tutti i servizi di JLCPCB al minor costo possibile 😉

Piaciuto l’articolo? Puoi incentivare la realizzazione di altri scritti aiutandomi a sostenere i costi di sviluppo dei progetti 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