Lezione 22 Effetti con unità di ritardo Distorsione non lineare Programmazione timbrica - Prof. Luca A. Ludovico Parte I EFFETTI AUDIO BASATI SU UNITA’ DI RITARDO Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto di chorus • Il chorus è un effetto audio elettronico il cui scopo è simulare la compresenza di più sorgenti sonore dello stesso tipo, come avviene per un coro di voci o un duo (o più) di strumenti musicali uguali che eseguono la medesima partitura. • La struttura dell'effetto consiste in un mixer che raggruppa, oltre al segnale di ingresso inalterato, una o più voci supplementari da esso ricavate mediante l'utilizzo di linee di ritardo. Il mixer riunirà pertanto più segnali audio, con fase e altezza leggermente differenti, generando così la sensazione di più sorgenti simultanee. • Il tempo di ritardo viene generalmente modulato con un oscillatore a bassa frequenza (LFO), in modo da applicare un effetto Doppler al suono, così da alzarne e abbassarne gradatamente il pitch e provocare piccole differenze di fase. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto flanger • Il flanger è un effetto audio elettronico realizzato mediante l'impiego di una linea di ritardo, con tempi sensibilmente elevati (fino a qualche decina di millisecondi), attraverso la quale viene fatto passare il segnale da trattare. Il segnale così ritardato viene miscelato col segnale originale, dando luogo alla cancellazione di quelle frequenze che si trovano in opposizione di fase. • L’effetto è quello di un filtro a pettine (comb filter), così detto per la caratteristica forma del segnale trattato quando osservato all'analizzatore di spettro. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto flanger • Il flanger deve il suo nome alla tecnica con la quale fu inventato negli anni cinquanta: il tecnico del suono, riproducendo in sincrono due copie dello stesso nastro con due registratori, premeva con un dito la flangia (flanging) della bobina debitrice di uno dei due, provocando un ritardo nella fase. La miscelazione dei due registratori dava origine all'effetto in questione. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto flanger • Il suono risultante presenta picchi di risonanza e punti di assenza del segnale audio; modulando il tempo di ritardo della linea di ritardo mediante un LFO con periodo molto lungo (< 1s), l'effetto sarà di evanescenza sull'intera gamma dello spettro audio. • Introducendo poi una data percentuale di retroazione (feedback) sulla linea di ritardo si giunge progressivamente ad un effetto Larsen. In queste condizioni, il suono trattato dal flanger risulta molto filtrato e tendenzialmente metallico. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto flanger Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto phaser • Il phaser è un effetto audio elettronico, impiegato generalmente per dare risalto a parti soliste in contesti dal vivo, molto popolare verso la fine degli anni sessanta. • Ha un funzionamento simile a quello del flanger, senza però limitarsi a miscelare il segnale originale con quello ritardato, ma aggiungendo altri ritardi intermedi e sfruttando il feedback per ottenere un elevato Q del comb filter. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Ritardi variabili in Csound: opcode vdelay • L’opcode vdelay realizza un ritardo variabile a interpolazione. E’ la base per implementare l’effetto Doppler, chorus e flanger. • Non è differente da delayr/deltapi/delayw, ma è più semplice da usare (vedi esempio del flanging più avanti) • Sintassi: ares vdelay asig, adel, imaxdel [, iskip] ove – asig è il segnale in ingresso; – imaxdel è il valore massimo di ritardo in millisecondi; – adel è il valore corrente del ritardo in millisecondi. Funzioni lineari non implicheranno variazioni nel pitch, mentre valori che cambiano rapidamente potrebbero causare discontinuità nella forma d’onda. Inoltre il ritardo deve essere sempre positivo. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Varianti di vdelay • L’opcode vdelay3, sebbene introdotto nella versione 3.5, è tuttora considerato sperimentale, e adotta l’interpolazione cubica anziché lineare. • Se serve maggior controllo e maggiore precisione (a scapito della rapidità di calcolo), ci sono gli opcode della famiglia vdelayx, con versioni specifiche per i segnali stereo (vdelayxs), in quadrifonia (vdelayxq), ecc. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Esempi in Csound • Nel primo esempio si modella il comportamento reale dell’operazione di flanging con 2 bobine, in cui ciascuna bobina introduce un ritardo (provocato dalla distanza tra la testina di registrazione cui viene inviato il suono e quella di lettura che lo riproduce), ma il primo è fisso mentre il secondo è variabile. La modellazione avviene sia tramite delayr/deltapi/delayw sia tramite vdelay. Esempio: →22_01_flanger.csd • Analogamente, l’esempio di chorus mostra l’implementazione senza e con vdelay: →22_02_chorus.csd Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Effetto wah-wah • Il wah-wah è un effetto audio che prende il nome dal caratteristico suono prodotto dal taglio e dal reinserimento graduale delle frequenze alte, vagamente assimilabile a un miagolio o a un vagito, da cui il nome onomatopeico. • Il wah-wah è uno dei pochi effetti tradizionali che non sono stati soppiantati da versioni digitali nelle esibizioni dal vivo. A differenza di altri effetti, infatti, il wah-wah non deve essere semplicemente inserito e disinserito in funzione del brano musicale da eseguire, ma viene controllato in modo continuo e a totale discrezione di chi lo usa, applicando un effetto potenzialmente diverso a ogni singola nota. • Esempio che sfrutta GEN07 per la frequenza di centro-banda di un filtro passabanda: →22_03_wah_wah.csd Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Parte II DISTORSIONE NON LINEARE Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Ripasso su GEN e opcode table • Durante la Lezione 14 si è visto come operare con diverse GEN la scrittura di valori in tabella (GEN02, GEN05, GEN07, GEN16) all’interno dello score, e come effettuare in modo complementare la lettura di valori da tabella all’interno dell’orchestra attraverso gli opcode table e tablei. • Una delle applicazioni di rilievo di questa tecnica è la scrittura/lettura della funzione distorcente per un segnale audio, il che permette di effettuare la cosiddetta sintesi per distorsione non lineare o waveshaping. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Funzione distorcente • Nella sua forma più controllabile, il waveshaping si basa sulla lettura di una tabella che contiene una funzione apposita, detta funzione distorcente. L’indice di lettura è costituito dall’ampiezza del segnale in ingresso, mentre il valore in corrispondenza è l’ampiezza del segnale dopo il processing. • Si tratta di rappresentare e di leggere da tabella una funzione y = f(x), ove x in questo caso è il valore di ampiezza istantaneo del segnale audio entrante, mentre y rappresenta il nuovo valore di ampiezza istantaneo da conferire al segnale audio per eseguire il waveshaping. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Casistica • Se la funzione è una retta non ha luogo alcuna distorsione: – se la retta è inclinata a 45° e passa per l’origine, cioè y = f(x) = x allora il valore di uscita y è pari all’ingresso x; – se la retta ha inclinazione diversa e passa dall’origine, cioè y = f(x) = a∙x allora l’andamento dell’uscita è uguale a quello dell’ingresso, salvo un fattore correttivo (che può essere maggiore o minore di 1) > vedi compressori ed espansori di dinamica; – se la retta non passa per l’origine, ossia y = f(x) = a∙x + b allora valgono i discorsi precedenti, ma con l’aggiunta di un offset. • Se non si tratta di una retta, si ha distorsione: questo discorso applicato a un segnale audio implica l’introduzione di nuove frequenze. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Esempio grafico di non distorsione a>1 y = a∙x con a = 1 Espansori di dinamica a<1 Compressori di dinamica Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Espansori di dinamica • Un espansore è un dispositivo che, per una certa ampiezza efficace del segnale in ingresso, fa variare di una quantità maggiore il segnale in uscita (y = a∙x con a > 1). • Un espansore può servire per ampliare la gamma dinamica di un segnale che risulta troppo schiacciato e per restituirgli aggressività. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Compressori di dinamica • Un compressore è un dispositivo che, per una certa ampiezza efficace del segnale in ingresso, fa variare di una quantità minore il segnale in uscita (y = a∙x con a < 1) • Un compressore può servire per limitare la gamma dinamica di un segnale, ad esempio per evitare che i suoi picchi mandino in distorsione il sistema. • Esistono anche effetti musicali basati sui compressori, come ad esempio la compressione molto spinta in uso nel rock che neutralizza l’attacco delle note, eliminando l’effetto di corda pizzicata sulle chitarre. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Uso combinato di compressori ed espansori • Compressore ed espansore possono essere utilizzati in maniera collaborativa per migliorare i processi di registrazione e riproduzione del suono, come nel caso dei registratori a nastro con sistema Dolby e dbx. • Il suono in ingresso al registratore viene dapprima compresso in ampiezza per evitare di mandare il segnale in clipping. Questa operazione riduce opportunamente la gamma dinamica. In riproduzione, il segnale viene sottoposto a un espansore per riportarlo ai livelli originali. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Compressione e limitazione • Nell’ambito delle infinite funzioni non lineari che possono definire il comportamento di un compressore, vi sono alcune definizioni standard. • Si definisce soglia di compressione il livello in cui un guadagno unitario (y = x) si trasforma in una retta con pendenza minore, e il rapporto di compressione è per definizione (1/a) : 1. • Si definisce soglia di limitazione il livello oltre il quale la retta assume pendenza nulla. • Esempio di compressore: →22_04_compressor.csd Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Esempio di distorsione non lineare y = a∙x + b, con a = 1/2 y = a∙x + b, con a = 1/5 Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Altro esempio di distorsione non lineare Risultato: la sinusoide in ingresso diventa in uscita una sinusoide tagliata al raggiungimento delle ampiezze +A e -A, con conseguente modifica dello spettro. A rappresenta il livello di clipping. Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare Altro esempio di distorsione non lineare • Attraverso GEN07 si può codificare in una tabella il comportamento della funzione distorcente vista alla slide precedente (però una volta descritta la funzione in tabella, lo 0 non corrisponde all’origine degli assi, bensì all’estremo inferiore delle x). • Attraverso un’opportuna combinazione di opcode, si crea un indice di lettura dei punti da tabella che oscilla con andamento sinusoidale. • Esempio: →22_05_dnl.csd Programmazione timbrica - Prof. Luca A. Ludovico Effetti e distorsione non lineare