Lezione 11 Sintesi sottrattiva Programmazione timbrica - Prof. Luca A. Ludovico Comportamento dei principali filtri Filtro passa-basso Low-pass filter Filtro passa-alto High-pass filter Filtro passa-banda Band-pass filter Filtro sopprimi-banda Band stop filter Band reject filter Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Filtri passa-basso: opcode tone e tonek • Un filtro passa-basso attenua le frequenze al di sopra della frequenza di taglio ft secondo una certa curva di attenuazione. L’opcode tone implementa un filtro passa-basso ricorsivo di primo ordine con risposta in frequenza variabile. • Sintassi: ares tone asig, khp [, iskp] – asig è il segnale in input originale – khp è il punto di metà potenza nella curva di risposta espresso in Hz. Metà potenza significa potenza di picco / √2 – iskip (opzionale, default = 0) permette di inizializzare lo spazio interno, mantenendo (iskip = 0) o meno (iskip ≠ 0) l’informazione precedente. • Se è sufficiente una minore risoluzione: kres tonek ksig, khp [, iskip] Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Filtri di ordine superiore • In Csound esistono due modi per ottenere filtri di ordine superiore: – Mettere in serie n filtri del I ordine, di modo che l’uscita del primo filtro fornisca il segnale di ingresso al secondo filtro, e via dicendo; – Utilizzare un opcode ad hoc, nel caso dei filtri passa-basso tonex, la cui gestione a livello computazionale è più efficiente. • Sintassi: ares tonex asig, khp [, inumlayer] [, iskip] ove inumlayer (opzionale, default = 4) è il numero di filtri messi in serie. • Esempio: → 11_01_tone_tonex.csd Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Filtri passa-alto: opcode atone, atonek e atonex • Un filtro passa-alto permette solo il passaggio di frequenze al di sopra di un dato valore detto frequenza di taglio e attenua le restanti secondo una certa curva. • Sintassi per filtri del I ordine: ares atone asig, khp [, iskip] kres atonek ksig, khp [, iskip] • Sintassi per filtri di ordine superiore: ares atonex asig, khp [, inumlayer] [, iskip] • Esempio: → 11_02_atone_atonex.csd Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Filtri passa-banda: opcode reson • L’opcode reson implementa un filtro risonante del secondo ordine. • Sintassi: ares reson asig, kcf, kbw [, iscl] [, iskip] ove kcf è la frequenza centrale mentre kbw controlla l’ampiezza della banda passante. • Varianti del filtro passa-banda che, oltre ai due poli, contengono due zeri nella funzione di trasferimento: resonr e resonz (si distinguono per la posizione degli 0) • Esempi: → 11_03_reson.csd, 11_04_gigi.csd Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Esprimere le caratteristiche del filtro p-b • Esistono 3 modi equivalenti per esprimere le caratteristiche del filtro passa-banda: 1. fc (freq. di centro banda) e l (larghezza di banda) 2. fi e fs (rispettivamente frequenza di taglio inferiore e superiore) 3. fc (frequenza di centro banda) e Q (fattore di merito del filtro), ove per definizione Q = fc/l Si nota che - fissata fc - al crescere di Q decresce l, quindi si ottiene una maggiore esaltazione delle frequenze nella banda passante, fino ad arrivare al limite a una singola frequenza. • Ovviamente è possibile passare con semplici equazioni da una formulazione a un’altra: fi = fc – l/2 fs = fc + l/2 l = fs – fi Q = fc/l l = fc/Q fc = Q ∙ l Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Filtri sopprimi-banda: opcode areson • L’opcode areson implementa un filtro sopprimi-banda la cui funzione di trasferimento è complementare rispetto a quella di reson (a parità di parametrizzazione) • Sintassi: ares areson asig, kcf, kbw [, iscl] [, iskip] ove kcf è la frequenza centrale mentre kbw controlla l’ampiezza della banda da sopprimere. • Esempio: → 11_05_areson.csd Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva Filtri Butterworth • Un filtro Butterworth (o "massimamente piatto") ha lo scopo di ottenere una risposta in frequenza il più possibile piatta (in modulo) nella banda passante. • Questi filtri sono caratterizzati da: buona costanza nella banda passante, ottima precisione e ottima attenuazione delle frequenze esterne alla banda passante. La loro esecuzione in Csound è leggermente più lenta. Esempio: → 11_06_butter.csd • Sintassi: ares butterlp asig, kfreq [, iskip] ares butterhp asig, kfreq [, iskip] ares butterbp asig, kfreq, kband [, iskip] ares butterbr asig, kfreq, kband [, iskip] Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva passa-basso passa-alto passa-banda sopprimi-banda Confronto con altri filtri lineari Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva