Organo elettrico modulare

Enrico77 26-10-13 19.25
Ciao scrivo su questo forum per chiedere dei consigli....
Sono un appassionato di strumenti vintage quali hammond, moog ecc... ma soprattutto mi affascinano tutti gli organi elettrici nati a cavallo anni 70 quali i vox continental, farfisa, e GIBSON G101 !(Suonavo in una tribut band Doors e avere avuto quel suono non saprei cosa avrei pagato).
Da qui nasce l'idea o forse la pazzia, dipende dai punti vista, di riportare in vita il gibson g101 in chiave moderna come modulo esterno tipo il vk8m della roland attraverso una scheda programmabile fpga. Ho già trovato in rete qualcuno che ha realizzato un ulteriore hammond con questa scheda, dico ulteriore perchè ormai ci si è fissati li, capisco che è un gran strumento ma continuare sempre su quella strada.........(va bè parere mio) ma ci sono stati altri strumenti ineressanti che hanno scritto la storia della musica come il vox continental ricercatissimo e chi lo trova spende anche 2000 euro per uno strumento che a più di 40 anni e come dimenticarsi del farfisa compact usato dai pink floyd e appunto il gibson g101 usato dai beatles e dai doors e mi sembra anche dai iron butterfly....
E qui la domanda....secondo voi come progetto è fattibile o una grande str....ta ?
mima85 26-10-13 20.24
Certo che è fattibile. L'unica difficoltà (posto che tu sappia già sviluppare su un FPGA) è che, nel caso del Gibson G101, devi procurarti l'organo per innanzitutto vedere nell'oscilloscopio le forme d'onda dei vari registri, in modo da sapere cosa far emulare al tuo FPGA, e poi studiare i dettagli di tutte le altre funzioni (la velocità minima e massima del percussion repeat, le armoniche impiegate per la percussione e le eventuali combinazioni di queste, le varie velocità del vibrato, ecc...). Il Gibson G101 come strumento è più complesso rispetto al Vox Continental, quindi va studiato più a fondo.

Il Vox Continental invece è più semplice, puoi partire con degli oscillatori ad onda quadra. Sono 7 armoniche divise su 4 registri (drawbar), prendendo come riferimento il DO abbiamo:

1) DO (drawbar 16')
2) DO +1 ottava (drawbar 8')
3) DO +2 ottave (drawbar 4')
4) A seguire nella stessa ottava del terzo DO abbiamo SOL, DO dell'ottava ancora successiva, MI immediatamente dopo, DO dell'ottava ancora successiva (drawbar Mixture)

L'unico effetto a bordo del Connie è il vibrato, che mi pare abbia una frequenza da 6,5 Hz, frequenza con cui devi modulare il pitch degli oscillatori, ed è ad intensità fissa.

Infine abbiamo i 2 registri Flute e Reed, che altro non fanno che regolare il volume di 2 varianti dello stesso segnale ma filtrato in modo diverso, quindi per il Flute abbiamo un filtro passabasso molto chiuso, mentre per il Reed sempre un passabasso ma più aperto. La forma d'onda emessa dal registro Reed (quello meno filtrato) è la terza che vedi in questa immagine, mentre per il registro Flute è ancora più arrotondata, una via di mezzo tra una sinusoide ed una triangolare.

Io inizierei il lavoro dal Continental, dove puoi cominciare il tuo progetto buttando giù la struttura degli oscillatori in modo da organizzarli come ti ho illustrato sopra, ed una volta ottenuto almeno il segnale di una nota in uscita, implementare vibrato e filtri. Finiti questi passi hai bello che pronto il generatore completo, quindi passi al far gestire al tuo FPGA la polifonia, perciò devi implementare tutta la parte del controllo, MIDI incluso.

Sono progetti un po' laboriosi ma fattibili.

Se hai bisogno di qualche info sulla struttura degli organi combo sono a disposizione, io ne ho restaurato e modificato uno di questi (anche se non era uno dei blasonati ma uno sconosciuto CEI Prestige, sebbene abbastanza completo come funzionalità) quindi ho imparato abbastanza sul loro funzionamento.
Edited 26 Ott. 2013 18:29
Enrico77 28-10-13 13.44
Guarda del gibson sono in possesso dei suoni campionati dei vari tab nota per nota per verificare le forme d onda e lo schema elettrico. Difficile trovare materiale in internet per questo strumento. Mi sembra che gli osillatori siano a onda quadra e come prime prove in maniera molto ridotta vorrei provare su arduino uno. Che ne pensi?
mima85 28-10-13 15.14
Enrico77 ha scritto:
Guarda del gibson sono in possesso dei suoni campionati dei vari tab nota per nota per verificare le forme d onda e lo schema elettrico.


Ah, ottimo, quindi hai già materiale a sufficienza.

Enrico77 ha scritto:
Mi sembra che gli osillatori siano a onda quadra


In tutti gli organi a transistor gli oscillatori sono ad onda quadra, è in seguito che i segnali vengono modificati da filtri, waveshaper, ecc... per ottenere i timbri dei vari registri.

Sono ad onda quadra perché gli organi combo derivano tutte le note della tastiera dividendo la frequenza degli oscillatori dell'ottava più alta, per ricavare quelle delle ottave inferiori. In genere quindi si ha un set di 12 oscillatori ad onda quadra che alimentano l'ottava superiore (uno per nota, e le note appunto sono 12), ed una serie di divisori di frequenza, uno per ogni nota di ogni ottava, per alimentare quelle inferiori.

I divisori di frequenza altro non sono che dei flip-flop, e dato che questi lavorano solo con le onde quadre, gli oscillatori a monte devono emettere questo tipo di segnale.

Ogni divisione quindi è un dimezzamento di frequenza, per cui per esempio, prendendo sempre come riferimento il DO, avremo quello dell'ultima ottava che è alimentato direttamente dall'oscillatore, poi ci sarà un divisore che dimezza la frequenza ed alimenta il DO dell'ottava precedente, poi un altro divisore in serie al primo che divide ulteriormente la frequenza ed alimenta il DO dell'ottava ancora prima, e via dicendo, fino a coprire tutta la lunghezza della tastiera.

Quindi è una catena composta da oscillatore (ottava più alta) -> divisore 1/2 (ottava -1) -> divisore 1/2 (ottava -2) -> ecc... fino a coprire l'intera lunghezza della tastiera, e di queste catene ce n'è una indipendente per ogni nota.

Poi esistono altre varianti implementate più che altro sugli organi più economici, dove tutte le frequenze vengono derivate, sempre con dei divisori, da un unico oscillatore master ad alta frequenza. Però in organi come il Gibson od il Vox lo schema usato è quello illustrato più sopra, tant'è vero che se li apri o ne guardi gli schemi, troverai 12 schedine (o gruppi di componenti) uguali, che sono appunto gli oscillatori.

I fili che escono dalle 12 schede oscillatore vanno ad alimentare quindi la tastiera, la quale sotto ogni tasto presenta una contattiera a pettine che, quando il tasto si abbassa, va a far contatto con una serie di busbar che corrono sotto la tastiera per tutta la sua lunghezza. I busbar sono uno per ogni armonica disponibile sull'organo.

Dai busbar i segnali quindi escono per andare a finire nelle circuiterie dei registri, i quali con waveshaper e filtri modificano la forma d'onda in modo da ottenere i vari timbri.

Enrico77 ha scritto:
come prime prove in maniera molto ridotta vorrei provare su arduino uno. Che ne pensi?


È una buona idea, l'unica è che una volta che ti porti su FPGA devi riscrivere il codice, ma l'importante è cominciare a mettere in piedi la logica. Una volta ottenuta questa si tratta solo di tradurla in un altro linguaggio.
thermidor 28-10-13 16.48
C'è una bella differenza tra usare un Arduino e una FPGA (tra l' altro che tipo di FPGA?). In ogni caso iniziativa lodevole.
Enrico77 28-10-13 22.47
Guardando lo schema mi sembra di capire che le note sono filtrate per quinte e poi inviate ai tab in base al suono da ricreare, quindi in teoria i tab non sono altro che delle schede che mettono insieme le varie armoniche dello strumento da ricreare..... chiedo conferma ? vi posto qui lo schema .
Mentre nel vox continental se non sbaglio per ogni scheda oscillatore teneva un filtro per far si che l'onda di uscita fosse il più simile possibile a un onda sinosoidale per il gibson e come per il farfisa per risparmiare hanno installato pochi filtri 6/8 in totale e filtrato le onda per quinte come dicevo sopra.... a voi risulta?
Per quanto riguarda la scheda da usare non l'ho ancora scelta, prima mi preoccupo di trovare la logica e il sistema giusto di progettazione, che intendo avviare con arduino uno, visto che ce l'ho, poi per il resto una volta capito il sistema si tratta di capire il linguaggio di programmazione della scheda fpga che userò....ma secondo me questo è il male minore da sopportare rispetto il resto.... che ne dite?
Enrico77 28-10-13 22.50
Dimenticavo... lo stò studiando anche sottoforma di plug in con synthedit per sperimentazione, ma ho riscontrato dei problemi già in partenza.... creato i 12 oscillatori free con i suoi divisori la cpu si impalla...... troppi calcoli da fare evidentemente...
mima85 28-10-13 23.12
Enrico77 ha scritto:
Guardando lo schema mi sembra di capire che le note sono filtrate per quinte e poi inviate ai tab in base al suono da ricreare, quindi in teoria i tab non sono altro che delle schede che mettono insieme le varie armoniche dello strumento da ricreare.....


Esatto. I "waveshaper" non sono in realtà che dei banali sommatori d'armoniche. Anche sul mio CEI Prestige ho riscontrato la stessa tecnica, e sono ragionevolmente sicuro che è la medesima usata pure su tutti gli altri organi combo.

Enrico77 ha scritto:
Mentre nel vox continental se non sbaglio per ogni scheda oscillatore teneva un filtro per far si che l'onda di uscita fosse il più simile possibile a un onda sinosoidale


Il filtro è a bordo della scheda oscillatore, ma più che una sinusoide l'onda che esce dagli output delle schedine è una pseudo-triangolare, come puoi vedere in questo video ad 1:18. Probabilmente a valle di tutto c'è un altro filtro che smussa ulteriormente l'output completo dell'organo e lo manda al registro Flute. I registri Flute e Reed quindi non fanno altro che aumentare o diminuire il volume delle 2 chiamiamole "linee di output", che sono appunto quella senza filtro aggiuntivo (registro Reed) e quella che invece lo ha (registro Flute). Linee che poi vengono risommate e mandate all'uscita audio dell'organo

Enrico77 ha scritto:
filtrato le onda per quinte come dicevo sopra


Cosa intendi "filtrato le onde per quinte?" Magari c'è il waveshaper di qualche registro che prende una o più armoniche di quinta per generare il timbro e dopo filtra il tutto (il mio CEI Prestige per esempio lo fa per i registri "Woodwind 16", "Mix 1" e "Mix 2"), è questo che intendi?

Enrico77 ha scritto:
Per quanto riguarda la scheda da usare non l'ho ancora scelta, prima mi preoccupo di trovare la logica e il sistema giusto di progettazione, che intendo avviare con arduino uno, visto che ce l'ho, poi per il resto una volta capito il sistema si tratta di capire il linguaggio di programmazione della scheda fpga che userò...


È un buon approccio. La cosa più impegnativa è buttare giù, provare ed eventualmente migliorare ed ottimizzare la struttura che dovrà avere il tuo strumento, ma una volta stabilita e testata questa, "tradurla" per il relativo sistema di sviluppo è il meno. La struttura che andrai a progettare è la base di tutto, quindi concentrati innanzitutto su questo.
Edited 28 Ott. 2013 22:14
am0 28-10-13 23.22
Che senso ha passare da Arduino? per carità, è una belva, basato, se ricordo bene, su arm, con una flessibilità inimmaginabile. Mapperò non mi sembra l'oggetto più adatto a ciò che vuoi realizzare.

Visto che sei orientato in tal senso perchè non sviluppi da subito sul gate array? cercane uno con librerie specifiche per il trattamento dell'audio, non sono richiesti chissà quali attributi particolari vista la frequenza massima irrisoria, ma già solo per la polifonia totale degli organi qualche calcoletto bello pepato ti ci vuole.
Enrico77 29-10-13 00.53
Mi sono spiegato male....volevo dire che al contrario del vox che il segnale veniva gia parzialmente filtrato su ogni scheda, quindi per ogni nota, nel gibson il filtraggio avviene a gruppi di note. Guardando lo schema si nota ad esempio che prima del tab flute 8 le note che vanno dal C6 al G5 passano per lo stesso filtro, poi dal F#5 al C#5 per un altro filtro, dal C5 al G4 per un altro ancora e dal F#4 al C4 per un altro ancora ecc fino ad esaurimento delle note.... per il piccolo 4 la stessa cosa ma con filtraggi diversi....
Il fatto di usare arduino uno è che il mio è un esperimento e prima di spendere dei soldi voglio capire la fattibilità del progetto...
Enrico77 29-10-13 01.00
A parte arduino uno ma voi che scheda fpga mi suggerite...?
mima85 29-10-13 10.19
Enrico77 ha scritto:
Mi sono spiegato male....volevo dire che al contrario del vox che il segnale veniva gia parzialmente filtrato su ogni scheda, quindi per ogni nota, nel gibson il filtraggio avviene a gruppi di note. Guardando lo schema si nota ad esempio che prima del tab flute 8 le note che vanno dal C6 al G5 passano per lo stesso filtro, poi dal F#5 al C#5 per un altro filtro, dal C5 al G4 per un altro ancora e dal F#4 al C4 per un altro ancora ecc fino ad esaurimento delle note.... per il piccolo 4 la stessa cosa ma con filtraggi diversi....


Ah si può essere, e anche questa cosa l'ho riscontrata nel CEI, dove nel mio caso ogni ottava aveva il suo filtro.

In pratica nel mio CEI Prestige ci sono 2 sezioni, una sezione "Organ", dove con degli slider si regola semplicemente l'intensità delle armoniche (fanno le veci di un set di drawbar praticamente), ed una sezione "Orchestra" dove ci sono i vari tipi di registri (Strings, Flute, Reed, ecc...).

Per la sezione Orchestra ci sono i "waveshaper", uno per ogni registro, che pescano e sommano le armoniche (per poi eventualmente filtrare il tutto con un unico filtro) in base al timbro da emettere, come già detto più in su.

Per la sezione Organ invece chi ha progettato il Prestige ha voluto fare in modo che l'onda di ogni armonica fosse il più vicina possibile ad una sinusoide, e siccome con un unico filtro non puoi farlo perché più salendo di nota più ti avvicini alla sua frequenza di taglio (quindi il volume delle note superiori diminuisce man mano che ci si avvicina), hanno messo un filtro per ogni ottava, ognuno con una FT più alta del precedente. Il risultato era pure abbastanza penoso, perché partivi dalla prima ottava con un suono meno filtrato, e mano a mano che salivi il suono diventava più soft, e quando passavi all'ottava successiva il suono era di nuovo meno filtrato, e via dicendo. Infatti se guardi il diario del restauro dello strumento che ho linkato all'inizio, troverai anche i passaggi dove ho modificato i filtri in modo da livellare un po' queste discrepanze (e far pure somigliare l'onda a quella emessa dal Vox Continental, perlomeno per la sezione Organ).

I filtri multipli servono quindi per avere una FT adeguata ad ogni sezione della tastiera.
Edited 29 Ott. 2013 9:21
thermidor 29-10-13 14.57
Ma per curiosità, quale sarebbe sta scheda FPGA?
Enrico77 30-10-13 00.48
La scheda la devo ancora scegliere, devo ancora capire quanto grossa mi serve... Esempi di schede le vedi qui anzi se mi date dei consigli meglio....
thermidor 30-10-13 23.32
Prima di tutto bisognerebbe capire cosa vuoi fare. Se intendi usare una soluzione ibrida, come indicato da Mima, dove ti ricrei tutta la generazione dei toni e i relativi circuiti di filtro, delay e quant'altro in hardware da comandare col midi, allora basta un processore qualunque non serve scomodare una FPGA.
Se invece vuoi usare una FPGA per ricreare uno strumento, allora le cose cambiano. Per prima cosa devi avere ben chiaro in testa il circuito che vuoi ottenere (che mi pare di capire è analogico trattandosi di vecchi organi), a questo punto lo devi tradurre in digitale, allora devi valutare quale FPGA contiene abbastanza slices, look-up table, ram, dsp slices e via discorrendo per fare quello che vuoi, a naso credo che per una polifonia di 8-16 voci non puoi scendere sotto una Spartan-3.
Una Spartan-6 potrebbe aiutare, in quanto ha la possibilità di interfacciare l'USB e la codifica AC97 (quella delle schede audio), inoltre è possibile implementarci un vero e proprio processore MicroBlaze.

Il problema sta alla base, se programmi un processore dai una serie di istruzioni da eseguire in sequenza, programmare una FPGA vuole dire dare una descrizione del circuito cioè implementare fisicamente quello che faresti su uno schema elettrico, come dire sapere come fare un DCO, un filtro digitale e via discorrendo, è vero che ci sono le librerie ma......

Comunque se sei uno che mastica elettronica qualcosa tirerai fuori di certo.
mima85 31-10-13 09.44
thermidor ha scritto:
(che mi pare di capire è analogico trattandosi di vecchi organi)


Si. Oscillatori, divisori di frequenza, filtri e switch/slider.
Enrico77 03-11-13 16.21
Si in questi giorni ciò pensato su e crede che la soluzione più "semplice" anche se la più laboriosa sia quella di ricostruire via hardware i vari moduli e pilotarli con il midi..... Ripeto c'è un sacco di lavoro a costruire tutte le schede, dagli oscillatori ai filtri ecc..... sicuramente in fpga le cose si complicano notevolmante anche se dalla sua parte ci stà il meno ingombro e la possibilità di correggere gli errori, cose che via hardware in caso di errore bisogna rifare la scheda o cambiare i componenti.....
thermidor 03-11-13 23.35
Il discorso è che affrontalo come vuoi, il lavoro non è banale. Paradossalmente è più facile farsi un synth analogico, monofonico ovviamente, per il semplice motivo che fare un organo richiede un sacco di circuiteria.
Usare le FPGA certo può semplificare, a patto che tu sia attrezzato, vuole dire avere i tools di programmazione e di debugging, e ovviamente saperli usare. Aggiungerei che non fa male avere conoscenza dei linguaggi di descrizione dell' hardware, sia VHDL che Verilog.
Non ho scritto questo pistolotto per scoraggiare, ci mancherebbe, se sei motivato provaci che soddisfazioni ne avrai.
Personalmente ho notato che se un lavoro, benchè inizi a dare buoni risultati, se si protrae troppo nel tempo, stufa perchè si sta già pensando a quello che si può fare dopo. Ma questo naturalmente dipende dal carattere personale.