Synth analogici e gestione preset (lots of cv)

celestinov 28-11-18 20.45
Buonasera a tutti,

ultimamente mi sono chiesto come i sintetizzatori analogici (polifonici o monofonici) possano gestire, a livello hardware e software, i preset e, più nello specifico, la miriade di parametri modificabili e richiamabili quando si varia un preset. In un sintetizzatore analogico ogni parametro, modificabile richiamabile in ogni preset, è controllato da una tensione cv o di gate; come può una CPU gestire così tante tensioni analogiche contemporaneamente? Nel caso del Juno 106 ad esempio la CPU, se non sbaglio, si trova a dover gestire contemporaneamente 36 cv (6 per ogni voce).
Indagando su questo tema ho trovato che, generalmente, negli anni 80 si utilizzava un singolo DAC (per questioni economiche immagino), seguito da un multiplexer analogico e da moduli di sample and hold. In sostanza:
- il DAC emette la tensione analogica
- il multiplexer la smista, ciclicamente, in tutte le destinazioni. Una destinazione per volta.
- i S&H mantengono la tensione fino al ciclo successivo di passaggio del multiplexer.

Da qui sorgono le domande che vorrei porvi:
- esiste della "letteratura" in merito? qualche esempio su sintetizzatori reali sarebbe il massimo.
- al giorno d'oggi è ancora conveniente utilizzare questo espediente o conviene dotare ogni parametro modificabile del sintetizzatore di un DAC specifico?

Ringrazio tutti.

Francesco
mima85 28-11-18 22.52
Finalmente un thread un po' tecnico emo

celestinov ha scritto:
- esiste della "letteratura" in merito? qualche esempio su sintetizzatori reali sarebbe il massimo.


I manuali di servizio dei synth sono quanto di meglio ci possa essere. Guarda quelli dei Roland Jupiter 6 ed 8, degli Oberheim della serie OB (X, Xa ed 8) e del Memorymoog. In particolare in quest'ultimo ci sono dei capitoli che spiegano in modo abbastanza approfondito la teoria di funzionamento del controllo tramite DAC e S/H.

Tutti questi manuali sono facilmente rintracciabili su Internet, ed in particolare in questo sito spesso si trovano le versioni qualitativamente migliori.

celestinov ha scritto:
- al giorno d'oggi è ancora conveniente utilizzare questo espediente o conviene dotare ogni parametro modificabile del sintetizzatore di un DAC specifico?


Conveniente è sicuramente conveniente, questo sistema di pilotaggio ormai è estremamente rodato e ragionevolmente economico. I problemi sorgono quando i demux (che nei vecchi synth erano switch CMOS della serie 4000), gli operazionali e/o i condensatori di stoccaggio sui circuiti S/H cominciano a tirare le cuoia, come ho visto fare già su diverse macchine, ma questa è una problematica che riguarda strumenti che ormai hanno qualche decennio sulle spalle. Usarlo ancora oggi non dovrebbe porre particolari problemi.

L'Alesis Andromeda tra l'altro ho visto che usa molteplici DAC (4 se non vado errato). Sulle fotografie della voice board però così a occhio non m'è sembrato di vedere nessuna circuiteria di demux e S/H, quindi presumo che quei DAC abbiano più uscite analogiche e servano solo per i CV degli oscillatori mentre tutto il resto probabilmente viene derivato da un bus condiviso a cui attingono tutte e 16 le voci insieme. Ma non ho indagato a fondo il funzionamento dell'A6, quindi potrei sbagliarmi.

EDIT: Ho guardato un po' gli schemi dell'Andromeda. I DAC sono dei Burr Brown PCM54HP, che hanno una singola uscita analogica. Sono 4 DAC che servono 16 voci, di conseguenza ogni DAC ne pilota 4 con un segnale multiplexato. Quindi per forza ci dev'essere del demultiplexing da qualche parte, magari direttamente negli ASIC delle voci. Questo testimonia che ancora a distanza di circa 20 anni (l'Andromeda è dei primi del 2000) questo sistema di pilotaggio è stato usato, ciò lascia presagire che nei nuovi polifonici odierni possa essere tutt'ora così.
celestinov 29-11-18 10.46
@ mima85
Finalmente un thread un po' tecnico emo

celestinov ha scritto:
- esiste della "letteratura" in merito? qualche esempio su sintetizzatori reali sarebbe il massimo.


I manuali di servizio dei synth sono quanto di meglio ci possa essere. Guarda quelli dei Roland Jupiter 6 ed 8, degli Oberheim della serie OB (X, Xa ed 8) e del Memorymoog. In particolare in quest'ultimo ci sono dei capitoli che spiegano in modo abbastanza approfondito la teoria di funzionamento del controllo tramite DAC e S/H.

Tutti questi manuali sono facilmente rintracciabili su Internet, ed in particolare in questo sito spesso si trovano le versioni qualitativamente migliori.

celestinov ha scritto:
- al giorno d'oggi è ancora conveniente utilizzare questo espediente o conviene dotare ogni parametro modificabile del sintetizzatore di un DAC specifico?


Conveniente è sicuramente conveniente, questo sistema di pilotaggio ormai è estremamente rodato e ragionevolmente economico. I problemi sorgono quando i demux (che nei vecchi synth erano switch CMOS della serie 4000), gli operazionali e/o i condensatori di stoccaggio sui circuiti S/H cominciano a tirare le cuoia, come ho visto fare già su diverse macchine, ma questa è una problematica che riguarda strumenti che ormai hanno qualche decennio sulle spalle. Usarlo ancora oggi non dovrebbe porre particolari problemi.

L'Alesis Andromeda tra l'altro ho visto che usa molteplici DAC (4 se non vado errato). Sulle fotografie della voice board però così a occhio non m'è sembrato di vedere nessuna circuiteria di demux e S/H, quindi presumo che quei DAC abbiano più uscite analogiche e servano solo per i CV degli oscillatori mentre tutto il resto probabilmente viene derivato da un bus condiviso a cui attingono tutte e 16 le voci insieme. Ma non ho indagato a fondo il funzionamento dell'A6, quindi potrei sbagliarmi.

EDIT: Ho guardato un po' gli schemi dell'Andromeda. I DAC sono dei Burr Brown PCM54HP, che hanno una singola uscita analogica. Sono 4 DAC che servono 16 voci, di conseguenza ogni DAC ne pilota 4 con un segnale multiplexato. Quindi per forza ci dev'essere del demultiplexing da qualche parte, magari direttamente negli ASIC delle voci. Questo testimonia che ancora a distanza di circa 20 anni (l'Andromeda è dei primi del 2000) questo sistema di pilotaggio è stato usato, ciò lascia presagire che nei nuovi polifonici odierni possa essere tutt'ora così.
Ciao Mima,
grazie per la risposta, facevo sicuro affidamento sul tuo aiuto. Ho seguito appassionatamente le tue vicende sicuramente non gioviali (emo) sul Jupiter 8.

Prima di arrivare a capire/scoprire l'utilizzo del sistema multiplexer + S&H ho fatto un po' di ricerca "autonoma" che mi va di raccontare:

Innanzitutto sono partito dal presupposto che non fosse possibile avere un DAC singolo per ogni tensione cv di controllo. Non è pensabile (leggasi economico) avere e gestire così tanti DAC/ uscite digitali sul microcontrollore.
La teoria a cui ero giunto era che probabilmente venivano utilizzate uscite PWM del microcontrollore seguite da filtri passa basso. Così facendo, ogni uscita digitale del microcontrollore, avrebbe gestito un cv. Sulla carta è idealmente possibile, all'atto pratico effettuando dei calcoli e dei test mi sono reso conto che:
- è un sistema troppo "lento" nel gestire variazioni di voltaggio
- per poter essere sufficientemente "veloce" la PWM dovrebbe avere frequenza molto elevata. Dai miei calcoli sono arrivato a definire che, per una variazione di 10Hz nel segnale cv, sia necessaria una PWM di almeno 100KHz. A frequenze più basse i ripple sono troppo evidenti.

Hai mai eseguito test o verifiche in tal senso?
maxpiano69 29-11-18 11.00
Bella discussione, un thanks a celestinov per averla aperta ed a mima85 per la risposta (cui non c'è molto da aggiungere) e l'utilissimo link. emo
mima85 29-11-18 11.41
celestinov ha scritto:
Hai mai eseguito test o verifiche in tal senso?


No, mi sono semplicemente limitato a prendere atto di com'è strutturata la cosa (dopo averci litigato come già hai visto emo).

Un pilotaggio in PWM con filtri passa basso comunque sarebbe troppo poco stabile, oltre alle lentezze che hai riscontrato anche (e soprattutto) per via delle deviazioni dei filtri stessi dovute alla temperatura, alle differenze di valori della componentistica e via dicendo. Già le parti che vengono pilotate (VCO, VCF, eccetera) risentono delle variazioni in temperatura e della componentistica (è per questo che vanno calibrate), se lo facessero anche i segnali di controllo sarebbe un casino inenarrabile, ed incontrollabile.

Senza contare il gran numero di uscite che il controllore dovrebbe avere. Ci sono i CV per gli oscillatori e già per quelli per un synth con 6 voci da 2 VCO ognuna servirebbero 12 uscite. Poi, sul bus condiviso tra le voci, ci sono i CV che pilotano i VCF per i parametri di cutoff e risonanza, se sono hardware ci sono anche quelli per gli inviluppi a 4 stadi (un CV per ogni stadio, moltiplicati per il numero di EG, che di solito sono 2), quello che pilota i VCA, quelli dei vari parametri di detune, PWM, intensità delle varie modulazioni, eccetera. Il micro di uscite dovrebbe averne facilmente ben più di una 30ina (se non di una 40ina) e non mi risulta che esistano microcontrollori con una tale quantità già a disposizione sul chip.

E certamente tutte quelle uscite non le trovavi sugli Z-80 o nei micro Intel (il Jupiter 6 per esempio usa degli Intel 8051, uno sulla scheda CPU ed uno per ognuna delle due schede voci), che tanto si usavano all'epoca.

maxpiano69 ha scritto:
Bella discussione, un thanks a celestinov per averla aperta ed a mima85 per la risposta (cui non c'è molto da aggiungere) e l'utilissimo link.


emo
celestinov 29-11-18 12.27
mima85 ha scritto:
Un pilotaggio in PWM con filtri passa basso comunque sarebbe troppo poco stabile, oltre alle lentezze che hai riscontrato anche (e soprattutto) per via delle deviazioni dei filtri stessi dovute alla temperatura, alle differenze di valori della componentistica e via dicendo. Già le parti che vengono pilotate (VCO, VCF, eccetera) risentono delle variazioni in temperatura e della componentistica (è per questo che vanno calibrate), se lo facessero anche i segnali di controllo sarebbe un casino inenarrabile, ed incontrollabile.


Sulla deriva del filtro in temperatura non mi preoccuperei molto:
ad esempio con un segnale in ingresso di 100Khz e un cutoff del filtro tarato a 10Hz la deriva in temperatura non penso possa fare molti danni. Verificherò con calcoli.
Sul numero di uscite digitali del micro sono d'accordo, ma la giorno d'oggi esistono tranquillamente microcontrollori con almeno una 40na di uscite. Ad esempio l'Atmega 2560 utilizzato sull'Arduino Mega possiede 54 I/O digitali.
ziokiller 29-11-18 15.03
@ celestinov
mima85 ha scritto:
Un pilotaggio in PWM con filtri passa basso comunque sarebbe troppo poco stabile, oltre alle lentezze che hai riscontrato anche (e soprattutto) per via delle deviazioni dei filtri stessi dovute alla temperatura, alle differenze di valori della componentistica e via dicendo. Già le parti che vengono pilotate (VCO, VCF, eccetera) risentono delle variazioni in temperatura e della componentistica (è per questo che vanno calibrate), se lo facessero anche i segnali di controllo sarebbe un casino inenarrabile, ed incontrollabile.


Sulla deriva del filtro in temperatura non mi preoccuperei molto:
ad esempio con un segnale in ingresso di 100Khz e un cutoff del filtro tarato a 10Hz la deriva in temperatura non penso possa fare molti danni. Verificherò con calcoli.
Sul numero di uscite digitali del micro sono d'accordo, ma la giorno d'oggi esistono tranquillamente microcontrollori con almeno una 40na di uscite. Ad esempio l'Atmega 2560 utilizzato sull'Arduino Mega possiede 54 I/O digitali.
In molti synth moderni gli oscillatori sono digitali, ovvero sono software, spesso prodotti dagli stessi processori che comandano il DAC per le linee di controllo, oppure c'è una linea SPI che dalla CPU centrale comanda gli altri processori che generano (simulano) gli oscillatori. In questo modo si risparmiano parecchi canali CV. Avevo anche trovato degli integrati di oscillatori digitali che si comandano direttamente via SPI, molti di questi sono dedicati ad applicazioni HF, ma tranquillamente utilizzabili anche in BF.

Quanto ai mux, oggi ci sono dei mux analogici con S&H integrato, tipo SMP18 di AD, il che snellisce di parecchio la circuiteria.
maxpiano69 29-11-18 15.06
mima85 ha scritto:
EDIT: Ho guardato un po' gli schemi dell'Andromeda. I DAC sono dei Burr Brown PCM54HP, che hanno una singola uscita analogica. Sono 4 DAC che servono 16 voci, di conseguenza ogni DAC ne pilota 4 con un segnale multiplexato. Quindi per forza ci dev'essere del demultiplexing da qualche parte, magari direttamente negli ASIC delle voci. Questo testimonia che ancora a distanza di circa 20 anni (l'Andromeda è dei primi del 2000) questo sistema di pilotaggio è stato usato, ciò lascia presagire che nei nuovi polifonici odierni possa essere tutt'ora così.


Sono andato a guardare velocemente anch'io quello schema (mannaggia a te emo) ed in effetti vedo che gli ASIC delle voice board ricevono il segnale del DAC su un fantomatico ingresso "Analog Data IN" ed hanno altri pin di "indirizzo", per cui credo anche io che mux e S/H siano integrati nell'Asic, ha senso.

Sempre per curiosità ho cercato degli integrati S/H multipli, tanto per vedere cosa esiste e quanto costano, ad esempio ho trovato l'SMP04 di Analog Devices che ne contiene 4 per IC e costa intorno ai 10€ (al pubblico e per piccole quantitá) per cui mi sembra ancora una soluzione conveniente.
mima85 29-11-18 15.14
maxpiano69 ha scritto:
Sono andato a guardare velocmente anch'io quello schema (mannaggia a te emo) ed in effetti vedo che gli ASIC delle voice board ricevono il segnale del DAC su un fantomatico ingresso "Analog Data IN" ed hanno altri pin di "indirizzo", per cui credo anche io che mux e S/H siano integrati nell'Asic, ha senso.


Esatto. Anche perché negli schemi dell'Andromeda di circuiti S/H ne ho visto solo uno, che tra l'altro non ho capito bene cosa pilota ma in ogni caso non era nulla di relativo alla catena di sintesi.
maxpiano69 29-11-18 15.31
@ mima85
maxpiano69 ha scritto:
Sono andato a guardare velocmente anch'io quello schema (mannaggia a te emo) ed in effetti vedo che gli ASIC delle voice board ricevono il segnale del DAC su un fantomatico ingresso "Analog Data IN" ed hanno altri pin di "indirizzo", per cui credo anche io che mux e S/H siano integrati nell'Asic, ha senso.


Esatto. Anche perché negli schemi dell'Andromeda di circuiti S/H ne ho visto solo uno, che tra l'altro non ho capito bene cosa pilota ma in ogni caso non era nulla di relativo alla catena di sintesi.
Visto anche io, quello relativo al controllo del VCA del modulo Distortion Circuit (distorsore analogico) che trovi piú avanti. Certo che lo schema dell'Andromeda é davvero affascinante, é la prima volta che lo guardo ma... emo meglio fermarsi (che poi finiamo ... OT) emo
celestinov 29-11-18 15.58
@ maxpiano69
Visto anche io, quello relativo al controllo del VCA del modulo Distortion Circuit (distorsore analogico) che trovi piú avanti. Certo che lo schema dell'Andromeda é davvero affascinante, é la prima volta che lo guardo ma... emo meglio fermarsi (che poi finiamo ... OT) emo
ma finiamoci pure OT emo

Piccolo aneddoto che mi ha portato alla conclusione che questa mia (nostra) passione per i sintetizzatori analogici non sia inutile:

qualche mese fa, per la mia azienda, progettavo componenti per una nota casa automobilistica tedesca (sono ingegnere meccanico) e mi sono scontrato con la messa in opera di un test di vita particolarmente complicato: in sostanza all'interno di un ciclo di circa 17 secondi andavano monitorate (in tensione) 60 linee, la maggior parte delle quale trasmetteva tensione per soli 10ms in momenti diversi tra loro del ciclo.
Questo ciclo di 17 secondi andava ripetuto 100k volte e il componente da testare era soggetto a cicli in camera climatica, nebbia salina e chi più ne ha più ne metta.

- Impossibile utilizzare un oscilloscopio: troppi canali da monitorare e per troppo tempo
- Impossibile utilizzare i datalogger a noi disponibili: troppo lenti nella scansione di tutti i canali. Se anche fossero stati veloci a sufficienza avrebbero generato minimo 1700 dati per ogni ciclo di 17 secondi con solo un dato riportante la lettura di interesse.

In questa situazione la mia passione per i sintetizzatori analogici mi ha aiutato: ho progettato e costruito una batteria di più di 60 S&H (alcuni in cascata per mantenere il dato di tensione più a lungo) tutti controllati da un microcontrollore: ogni S&H veniva attivato nel momento in cui c'era da effettuare la misura della linea, e manteneva il dato fino alla fine del ciclo. Alla fine del ciclo, quindi, tutti i S&H avevano immagazzinato dati e un "economico" datalogger poteva scansionare tranquillamente tutti i 60 canali.

La stima del risparmio totale per non aver dovuto far eseguire il test ad un laboratorio esterno è stata di circa 50k Euro....magari li avessero dati a me emoemoemo.

mima85 29-11-18 17.06
celestinov ha scritto:
In questa situazione la mia passione per i sintetizzatori analogici mi ha aiutato: ho progettato e costruito una batteria di più di 60 S&H (alcuni in cascata per mantenere il dato di tensione più a lungo) tutti controllati da un microcontrollore: ogni S&H veniva attivato nel momento in cui c'era da effettuare la misura della linea, e manteneva il dato fino alla fine del ciclo. Alla fine del ciclo, quindi, tutti i S&H avevano immagazzinato dati e un "economico" datalogger poteva scansionare tranquillamente tutti i 60 canali.


Fiko emo

Ecco questo i VST non avrebbero potuto permetterlo, la non ci sono circuiti da studiare emo
maxpiano69 29-11-18 17.59
@ mima85
celestinov ha scritto:
In questa situazione la mia passione per i sintetizzatori analogici mi ha aiutato: ho progettato e costruito una batteria di più di 60 S&H (alcuni in cascata per mantenere il dato di tensione più a lungo) tutti controllati da un microcontrollore: ogni S&H veniva attivato nel momento in cui c'era da effettuare la misura della linea, e manteneva il dato fino alla fine del ciclo. Alla fine del ciclo, quindi, tutti i S&H avevano immagazzinato dati e un "economico" datalogger poteva scansionare tranquillamente tutti i 60 canali.


Fiko emo

Ecco questo i VST non avrebbero potuto permetterlo, la non ci sono circuiti da studiare emo
Dipende, un buon VST che emula un synth modulare come VCV Rack (che è pure gratuito) può dare qualche spunto interessante (e forse ha pure un modulo S/H emo ) . Fermo restando "lunga vita all'HW", beninteso emo

@celestinov: bel lavoro emo
celestinov 29-11-18 18.01
Giusto per rimanere OT segnalo questo interessantissimo sito: YuSynth.
Sicuramente pieno di spunti..
mima85 29-11-18 19.30
maxpiano69 ha scritto:
Dipende, un buon VST che emula un synth modulare come VCV Rack (che è pure gratuito) può dare qualche spunto interessante (e forse ha pure un modulo S/H emo ) . Fermo restando "lunga vita all'HW", beninteso emo


Era una battuta, stavo scherzando emo
maxpiano69 29-11-18 21.17
@ mima85
maxpiano69 ha scritto:
Dipende, un buon VST che emula un synth modulare come VCV Rack (che è pure gratuito) può dare qualche spunto interessante (e forse ha pure un modulo S/H emo ) . Fermo restando "lunga vita all'HW", beninteso emo


Era una battuta, stavo scherzando emo
Anch'io! emo

Perché é vero, studiare gli schemi di un synth analogico ti stimola a capire molte cose di elettronica. I VST al massimo van bene per simulare, un po come i simulatori di circuti (Spice & Co).

emo