Realizzazione filtro nel roland d50

orange1978 22-08-12 16.29
come molti ben sapranno la roland d50 è uno dei synth digitali che meglio incarna lo spirito analogico....ascoltando certi suoni sopratutto programmati non quelli di fabbrica si puo ammirare un filtro molto bello, graffiante, caldo, a volte sporco che ingannerebbe molti sulla sua natura...se roland avesse scritto da qualche parte sul manuale che la macchina aveva al suo interno oscillatori digitali e filtro analogico stile prophet vs credo che molti ci sarebbero cascati.

la cosa che però piu stupisce è che in realtà la d50 non possiede filtri ne analogici ne digitali! la funzione filtro è realizzata modificando direttamente la forma d'onda SYN che sono due, square e saw entrambe con pwm....e questa è la ragione x la quale quando si usano gli oscillatori di tipo PCM lo stadio tvf (time variant filter) non è attivo e biaognerà aspettare la d70 per fare in modo che roland sviluppasse una funzione filtro che potesse essere applicata a dei campioni, direi quindi una vera funzione dsp.

come si realizza tutto ciò? chiedo a degli esperti come si fa a realizzare una funzione filtro direttamente modificando una forma d'onda come nel d50? e quali vantaggi si avrebbero a livello di suono ammesso che ci siano? è forse questo il segreto del suono splendido di questa macchina o del jp8080?
mima85 22-08-12 19.26
Caspita, questa mi è nuova pure a me, interessante.

Ho trovato questo vecchio thread dove ne parlano, devo dargli una lettura completa perché è un po' lungo.

Sicuramente adotteranno una qualche tecnica di waveshaping per simulare il comportamento di un filtro risonante.

Il vantaggio penso riguardi solamente il dispendio di risorse della CPU, che con le limitate potenze di allora andava spremuta il più possibile. Fare waveshaping su un singolo periodo di un segnale e continuare a scrivere ripetute volte nel buffer d'uscita tale periodo (in modo da generare appunto il segnale) penso sia molto meno dispendioso per la CPU che calcolare in DSP un filtro su un segnale già "finito".

Il JP-80x0 non so se usa ancora questo approccio dato che nel frattempo (10 anni dopo il D-50) la potenza di calcolo delle CPU è notevolmente aumentata.

Comunque mi ci documento, questa cosa mi interessa.
anumj 23-08-12 01.47
Addentrarsi in un D-50 significa scoprire tantissime similutidini con i moderni VA.
il comportamento dei filtri è emulato matematicamente dallo stesso DSP che genera le forme d'onda sintetiche (squ e saw).

Contrariamente a quanto avviene nei sintetizzatori Roland precedenti dove la generazione sonora (DCO) veniva poi lavorata dal filtro analogico.

Implementare un DSP dedicato per filtrare anche la sezione PCM avrebbe comportato costi impressionanti per l'epoca (parliamo di ben 25 anni fa) e il D50 sarebbe in quel modo diventato un prodotto di nicchia (PPG per esempio) e non un synth cosi popolare.

carmol 23-08-12 04.21
Semplificando, senza considerare la risonanza,
la cosa può essere fatta per interpolazione:
si fa passare l'onda, sia essa quadra o sawtooth,
per un filtro passabasso chiuso; l'onda diventerà più smussata,
qualcosa di più simile ad una sinusoide, a seconda della pendenza
e delle caratteristiche del filtro; tale onda filtrata, così come l'onda originale, viene
memorizzata in una wavetable.
Per simulare il filtraggio graduale, cioè l'apertura variabile del cutoff, basta dunque
operare un MORPHING, cioè una trasformazione + o - lineare,
a seconda della caratteristica che si vuol dare al filtro,
tra la forma originale e l'onda filtrata;
le forme d'onda ottenute vanno da quella in cui è presente tutto il contenuto armonico
a quella in cui il contenuto armonico a parte la fondamentale è attenuato al massimo,
ottenendo quindi una simulazione di filtro passa basso con apertura variabile.

La variazione del cutoff corrisponde allo stadio intermedio di trasformazione.

La trasformazione si ottiene calcolando nei vari step
il punto intermedio tra la forma originale e quella filtrata
(tecnicamente interpolazione);
è ovviamente una approssimazione, molto meno impegnativa
della simulazione di un filtro tramite calcolo dello spettro, FFT, etc.

A volte tutta la trasformazione viene memorizzata
in una wavetable; nel blofeld, ad esempio, sono presenti
wavetables di questo tipo.
Edited 23 Ago. 2012 2:37
orange1978 23-08-12 05.11
tramite wavetable ci arrivavo anche io ma dubito che sia realizzato cosi anche perchè vi sono ulteriori parametri tipo risonanza e pwm da tenere in considerazione però nulla puo essere escluso....ma la tecnica del waveshaping? puo essere tenuta in considerazione nel d50?.

@anumj

capisco quello che vuoi dire,ma mi chiedo non è possibile utilizzare un solo dsp per elaborare tutto? penso di si la maggior parte dei synth usano un solo dsp....poi dipende.
forse intendi che l'uso di un dsp piu potente avrebbe fatto lievitare i costi? e di conseguenza l'unico modo era usare questa tecnica?
anumj 23-08-12 11.37
orange1978 ha scritto:
capisco quello che vuoi dire,ma mi chiedo non è possibile utilizzare un solo dsp per elaborare tutto? penso di si la maggior parte dei synth usano un solo dsp....poi dipende.
forse intendi che l'uso di un dsp piu potente avrebbe fatto lievitare i costi? e di conseguenza l'unico modo era usare questa tecnica


Certo che è possibile, è una tecnica peraltro utilizzata anche da altri sintetizzatori negli anni 80.
Il CEM3396 è un chip di generazione e elaborazione sonora, compelto di wavegenerator, mixer, VCA e filtro a 4 poli. Tutto in uno e a costi notevolmente ridotti.
maxpiano69 23-08-12 11.41
Secondo me il TVF è un semplice filtro digitale, il fatto che non fosse applicato ai sample è probabillmente una scelta di semplicità (non devo leggere dei sample da memoria ma mi basta ricevere l'output della funzione che calcola la saw/square) e coerente con la filosofia della LA synthesis, che ne prevedeva l'uso per caratterizzare l'attacco dei suoni (ed inoltre i sample probabilmente avevano già il loro "filtro" all'origine, ovvero insito nella loro forma d'onda)

È possibile inoltre che dovendo trattare solo saw/square Roland abbia potuto usare un algoritmo semplificato (le forme d'onda in questione contengono solo armoniche multipli interi della fondamentale)

Il termine TVF è probabilmente "TVF -- "time-variant filter", a long-standing Roland-ism for the digital equivalent of your basic VCF" in quanto l'unica caratteristica "time variant" che vedo nel TVF del D50 è quella consueta data dalle modulazioni (inviluppi/lfo)
Edited 23 Ago. 2012 10:36
orange1978 23-08-12 14.09
no max è risaputo che la d50 calcola il filtro tramite modifica in realtime sulla forma d'onda....non cè alcun filtro come lo intendiamo noi.

@anumj si certo...però il cem non è proprio un dsp ma un chip che include un synth anologico completo su un processore singolo, è la stessa idea del MOS SID presente nel commodore 64 ma ovviamente con una migliore qualità sonora.
carmol 23-08-12 15.09
orange1978 ha scritto:
no max è risaputo che la d50 calcola il filtro tramite modifica in realtime sulla forma d'onda....non cè alcun filtro come lo intendiamo noi.

Un filtro digitale è appunto una modifica in realtime sulla forma d'onda;
ad esempio, un semplicissimo filtro digitale passa basso
si ottiene con un sommatore, cioè riportando all'uscita, al ciclo di clock i,
la somma del valore dell'onda al ciclo di clock i al
valore dell'onda al ciclo i-1, e dividendo per 2 (per normalizzare il risultato).
Se come valore dell'onda al ciclo i-1 considero il valore "filtrato",
(cioè precedentemente sommato a i-2 e diviso per due)
simulo un filtro con risonanza.

Anch'io però non ho pensato a tale tipo di filtro
perchè si parlava di onda generata già filtrata;
d'altra parte un siffatto filtro è applicabile a qualsiasi tipo di waveform.
Edited 23 Ago. 2012 13:14
orange1978 23-08-12 16.00
ser per realizzare un filtro basta una cosi semplice operazione, come mai allora tutti i synth digitali hanno filtrinche suonano molto diversi tra loro? se il sistema è sempre quello dovrebbero essere tutti uguali no?
maxpiano69 23-08-12 16.09
@ orange1978
ser per realizzare un filtro basta una cosi semplice operazione, come mai allora tutti i synth digitali hanno filtrinche suonano molto diversi tra loro? se il sistema è sempre quello dovrebbero essere tutti uguali no?
Il punto è che il modello matematico del filtro è noto, ma la sua implementazione perfetta non è praticabile per cui le implementazioni "reali" cercano di ovviare in modi diversi. questo può essere uno dei motivi del diverso comportamento dei filtri digitali su synth diversi.

Qualche nozione generale la puoi leggere su Wiki http://en.wikipedia.org/wiki/Digital_filter

The design of digital filters is a deceptively complex topic.[1] Although filters are easily understood and calculated, the practical challenges of their design and implementation are significant and are the subject of much advanced research. (...)

come ho aggiunto nel mio post precedente è possibile che sul D50, grazie al fatto di dover filtrare solo forme d'onda semplici e note a priori, l'implementazione fosse abbastanza semplificata, ma è solo una mia ipotesi
(bel topic cmq) emo
Edited 23 Ago. 2012 14:10
carmol 23-08-12 17.57
orange1978 ha scritto:
ser per realizzare un filtro basta una cosi semplice operazione, come mai allora tutti i synth digitali hanno filtrinche suonano molto diversi tra loro? se il sistema è sempre quello dovrebbero essere tutti uguali no?

Quello illustrato è un filtro di base del primo ordine,
come mettere un condensatore in parallelo.
Infatti il condensatore può essere visto come
un sommatore nell'analogico (non sommatore di due segnali,
ma dei valori di un segnale nel tempo) o meglio
(semplificando) svolge la funzione dell'integrale matematico.
Nessuno oggi si sognerebbe di fare un filtro con
un semplice condensatore in parallelo,
anche se il circuito, nella sua semplicità, funziona perfettamente.

Analogamente, nel digitale si utilizzano algoritmi più complessi per avvicinare
di più la risposta del filtro digitale a quella di un filtro ideale,
oppure per emulare specifici filtri analogici,
o per dare al filtro digitale una propria impronta sonora.

QUI c'è un articolo abbastanza
chiaro in merito; il paragrafo "Il passaggio al digitale"
cita: "Potremmo per esempio pensare di "filtrare" un segnale semplicemente
facendone una media mobile (cioè in modo che ogni valore in uscita sia la media degli ultimi m valori entrati).",
nel mio caso avevo semplificato al massimo considerando m=2.
Edited 23 Ago. 2012 16:24