Lezione 11 Sintesi sottrattiva Programmazione timbrica Prof Luca
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 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 (ossia potenza di picco / 2) nella curva di risposta, espresso in Hz. – 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
Frequenza di taglio • La frequenza di taglio è per definizione la frequenza in cui si verifica un guadagno di -3 d. B. Verifichiamo! • Considerando P* = P/2, è vero che A*d. B ≈ (Adb – 3)? P* = k·(A*)2 che, per la relazione sopra = P/2 = k·A 2/2 A 2 = 2·P*/k A = (2·P*/k)1/2 = (2·k(A*)2 /k)1/2 = 21/2·A* Passando ai decibel: Adb = 20 log 10 20, 5 + 20 log 10 A* = = 20 log 10 1, 4142 + A*db = 3, 01 + A*db 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_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_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 = f s – 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, detto anche filtro notch. • Sintassi: 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 Parametri utilizzati: frequenza di centro banda 1000 Hz 5000 Hz Programmazione timbrica - Prof. Luca A. Ludovico Sintesi sottrattiva ampiezza di banda 20 Hz 1000 Hz
Visualizzazione spettrale dell’esempio 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
Esempio: filtri a bande d’ottava • Si scriva uno strumento che applica un filtro Butterworth passabanda con larghezza di banda di un’ottava, prendendo in ingresso dallo score la frequenza della nota che funge da estremo inferiore dell’ottava. • Soluzione: → 11_07_adele. csd Piè di pagina: spazio libero per eventuale nome struttura o altro
- Slides: 13