Pure Data Raspberry Pi: SynthBerry Pi

Reading Time: 3 minutes

SynthBerry Pi è il primo prototipo di sintetizzatore stand alone basato sul toolkit PDSynth e sulla coppia Pure Data Raspberry Pi.

SynthBerryPI-2 Pure Data Raspberry Pi

SynthBerry Pi  nasce come naturale evoluzione del prototipo PDSynth-00. Quest’ultimo è un controller, dunque, è utile  soltanto per controllare le architetture di generazione ed elaborazione del suono di PDSynth eseguite su di un computer. Il prototipo SynthBerry Pi, invece, integra controller e calcolatore attraverso l’utilizzo di un mini computer Raspberry Pi.

Otto potenziometri a slitta sono connessi al Raspberry per realizzare una semplice superficie di controllo che rende possibile controllare le architetture di PDSynth. SynthBerry Pi è, dunque un compatto sintetizzatore autonomo capace di eseguire patch create attraverso Pure Data. Guarda questo video che mostra un breve esempio di cosa si può realizzare con SynthBerry:

La superficie di controllo

SynthBerry Pi è dotato di una interfaccia di controllo hardware costituita da otto potenziometri a slitta. Come i prototipi precedenti, anche questo pannello è stato realizzato in multistrato di legno sagomato attraverso taglio laser. L’immagine di seguito mostra la vista frontale del prototipo in cui è possibile notare i potenziometri a slitta, montati sul pannello di controllo, e i cavi di connessione. L’assemblaggio tra i due pannelli del prototipo è stati realizzato attraverso opportuni distanziali esagonali in acciaio.

SynthBerryPI-3 Pure Data Raspberry PiIl Raspberry Pi non è dotato di convertitori analogico-digitale, per questo motivo, per poter effettuare la lettura delle tensioni degli otto potenziometri, è stato utilizzato un circuito integrato che realizza un ADC (Analog to Digital Converter). Il circuito integrato utilizzato come ADC per SynthBerry Pi è denominato MCP3008 e fornisce otto canali analogici d’ingresso e una risoluzione digitale pari a 10 bit. Può essere utile fare riferimento a questa guida per comprendere come interfacciare l’integrato al Raspberry Pi. La guida, infatti, mostra come poter leggere con un MPC3008 i valori di tensione di una fotoresistenza e di un sensore di temperatura.

Pure data e Raspberry Pi

La comunicazione tra Raspberry e l’ADC avviene attraverso il protocollo di comunicazione seriale SPI (Serial Peripheral Interface). SPI è un sistema di comunicazione tra un microcontrollore e altri circuiti integrati o tra più microcontrollori. È uno standard di comunicazione, ideato dalla Motorola, in cui la trasmissione avviene tra un dispositivo di controllo (detto master) e uno o più dispositivi controllati (detti slave). La lettura dei dati acquisiti dall’ADC si realizza attraverso uno script di Python che impiega la libreria SPIDEV per la gestione dei dispositivi SPI.

Il trasferimento dei dati letti dal convertitore analogico-digitale, tra il programma in Python e Pure Data, si realizza attraverso l’invio di messaggi di rete locali su una specifica porta. Per questo scopo si utilizza il programma pdsend fornito all’interno del pacchetto standard di Pd, utilizzato come sotto processo (subprocess) all’interno dello script di Python.

Per la ricezione dei dati in Pure Data, si utilizza l’oggetto netreceive che apre un server in ascolto sulla porta corrispondente a quella utilizzata da pdsend. Un semplice protocollo consente  di inviare i messaggi da Python a Pure Data mantenendo separati e facilmente differenziabili i dati dei diversi potenziometri. Si invia una lista di due numeri il primo è un etichetta (da 0 a 7) utile per identificare il potenziometro, il secondo numero è il dato numerico ottenuto dalla lettura effettuata dal convertitore. Questo espediente nella costruzione del messaggio inviato da Python semplifica lo smistamento dei dati che può essere facilmente compiuti attraverso l’oggetto nativo di Pd route.

Configurazione di Raspberry

Si vuole utilizzare il prototipo come un comune strumento elettronico attraverso l’uso della sola superficie di controllo, perciò si è scelto di utilizzare il Raspberry Pi in modalità headless, ossia, nel gergo degli utilizzatori di Raspberry, ciò significa senza la connessione di schermo, mouse e tastiera. È importante sottolineare che in questa modalità di funzionamento le prestazioni del calcolatore aumentano in maniera significativa poiché la gestione dell’interfaccia grafica e dei dispositivi d’interazione in genere assorbono molte delle risorse di calcolo del mini computer. Per risparmiare risorse in modalità headless è utile anche configurare il sistema operativo per avviarsi in modalità console evitando l’avvio dell’ambiente che gestisce l’interfaccia grafica.

Per avviare sia Pure Data con la patch di PDSynth, sia lo script di Python per la gestione dell’ADC è stato creato un script che avvia in successione entrambe i processi. Per l’avvio in modalità headless è necessario che lo script di avvio di Pure Data venga avviato in automatico durante la fase di accensione del Raspberry Pi. È stato creato un apposito servizio, avviato in automatico durante le fasi iniziali di esecuzione del sistema operativo, che invoca lo script di lancio dei processi audio e del programma di Python per la gestione del convertitore analogico digitale.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *