La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Loscillatore digitale Introduzione al corso Programmazione timbrica (Prof. Luca A. Ludovico)

Presentazioni simili


Presentazione sul tema: "Loscillatore digitale Introduzione al corso Programmazione timbrica (Prof. Luca A. Ludovico)"— Transcript della presentazione:

1 Loscillatore digitale Introduzione al corso Programmazione timbrica (Prof. Luca A. Ludovico)

2 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Sintesi mediante forma donda fissa La caratteristica di molti suoni musicali è di essere quasi-periodici o armonici. Il più semplice metodo di sintesi consiste nel produrre un segnale periodico mediante la ripetizione continua di una certa forma d'onda. Questo metodo viene chiamato sintesi con forma d'onda fissa, e il modulo che la realizza si chiama oscillatore digitale, che contiene la forma d'onda memorizzata in una tabella.

3 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Periodo e ciclo Il parametro fondamentale di una forma d'onda periodica è il periodo, ossia lintervallo di tempo in cui si completa un ciclo. Il ciclo della forma donda può essere ricostruito allinterno dellelaboratore: –usando appositi algoritmi (ad esempio un generatore di oscillazioni sinusoidali in rapporto armonico) –fornendo punto per punto i valori di ampiezza voluti (ad esempio leggendoli da un file audio in ingresso)

4 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Sintesi con forma donda fissa in Csound In Csound esistono numerosi opcode che sfruttano la sintesi mediante forma donda fissa. –Ad esempio, oscil e oscili implementano un oscillatore digitale E possibile fissare il numero di punti della tabella, ossia il numero di celle al cui interno verranno scritti i valori provenienti dal campionamento della forma donda. –Tanto maggiore sarà il numero di punti, tanto più raffinata sarà la discretizzazione. –In Csound per dimensionare le tabelle si usa tipicamente una potenza di 2, ad esempio 4096 punti.

5 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Lettura di campioni da una tabella Una tabella Csound è un insieme di celle contenenti valori numerici, accessibili tramite un indice che parte da 0. La lettura da parte delloscillatore digitale (opcode oscil, oscili) è ciclica: arrivati allindice massimo, si riparte da val 0 val 1 val 2 val 3 val 4 val 5 val 6 val 7

6 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Unottica ribaltata Quando ci si pone il problema della conversione analogico-digitale di una forma donda, tipicamente si fissa unopportuna frequenza di campionamento e si determina così un certo numero di valori nellunità di tempo. Per la sintesi con forma donda fissa, è già disponibile un numero di punti prefissato. Il problema diventa a che velocità loscillatore digitale deve leggere la tabella per produrre una data frequenza.

7 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Esempio Sia data una tabella contenente n valori per discretizzare un ciclo. –In figura, il ciclo è unoscillazione sinusoidale pura e n = 8 (valore molto basso per ottenere una buona ricostruzione)

8 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Esempio Ipotesi di lavoro: –file audio con frequenza di campionamento 16 KHz (16000 punti al secondo) –loscillatore digitale deve emettere una frequenza di 2 KHz Considerazione: loscillatore deve «riempire» punti al secondo con 2000 oscillazioni. Ogni oscillazione richiede quindi di compilare / 2000 = 8 punti, che sono proprio quelli presenti in tabella. Soluzione: loscillatore legge dalla tabella ed emette ogni singolo valore.

9 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Esempio Ipotesi di lavoro: –file audio con frequenza di campionamento 16 KHz (16000 punti al secondo) –loscillatore digitale deve emettere una frequenza di 4 KHz Considerazione: in tabella è presente il doppio dei valori richiesti, perché la durata del ciclo nello stream audio da produrre è 16 / 4 = 4 punti. Soluzione: loscillatore legge dalla tabella ed emette un valore su due.

10 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Esempio Ipotesi di lavoro: –file audio con frequenza di campionamento 16 KHz (16000 punti al secondo) –loscillatore digitale deve emettere una frequenza di 1 KHz Considerazione: in tabella è presente la metà dei valori richiesti, perché la durata del ciclo nello stream audio da produrre è 16 / 1 = 16 punti. Soluzione: loscillatore deve leggere ed emettere anche valori non presenti in tabella. Come fare?

11 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale La soluzione senza interpolazione Valori mancanti

12 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale La soluzione con interpolazione Interpolazione lineare

13 Programmazione timbrica (Prof. Luca A. Ludovico) Loscillatore digitale Interpolazione: vantaggi e svantaggi Le due tecniche di calcolo dei valori mancanti, con e senza interpolazione, funzionano anche quando il numero di punti da calcolare non presenti in tabella non è un multiplo intero di quello dato. Linterpolazione lineare provoca un errore di quantizzazione minore (o uguale), ma ha tempi di calcolo maggiori –Con la potenza di calcolo attuale… Molti opcode Csound hanno una versione senza e una con interpolazione lineare.


Scaricare ppt "Loscillatore digitale Introduzione al corso Programmazione timbrica (Prof. Luca A. Ludovico)"

Presentazioni simili


Annunci Google