1 / 13

L’oscillatore digitale

Introduzione al corso. L’oscillatore digitale. Programmazione timbrica (Prof. Luca A. Ludovico). Sintesi mediante forma d’onda fissa. La caratteristica di molti suoni musicali è di essere quasi-periodici o armonici.

ferrol
Download Presentation

L’oscillatore digitale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduzione al corso L’oscillatore digitale Programmazione timbrica (Prof. Luca A. Ludovico)

  2. Sintesi mediante forma d’onda 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. Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

  3. Periodo e ciclo • Il parametro fondamentale di una forma d'onda periodica è il periodo, ossia l’intervallo di tempo in cui si completa un ciclo. • Il ciclo della forma d’onda può essere ricostruito all’interno dell’elaboratore: • 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) Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

  4. Sintesi con forma d’onda fissa in Csound • In Csound esistono numerosi opcode che sfruttano la sintesi mediante forma d’onda 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 d’onda. • 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. Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

  5. 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 dell’oscillatore digitale (opcode oscil, oscili) è ciclica: arrivati all’indice massimo, si riparte da 0. Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

  6. Un’ottica ribaltata • Quando ci si pone il problema della conversione analogico-digitale di una forma d’onda, tipicamente si fissa un’opportuna frequenza di campionamento e si determina così un certo numero di valori nell’unità di tempo. • Per la sintesi con forma d’onda fissa, è già disponibile un numero di punti prefissato. Il problema diventa a che velocità l’oscillatore digitale deve leggere la tabella per produrre una data frequenza. Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

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

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

  9. Esempio • Ipotesi di lavoro: • file audio con frequenza di campionamento 16 KHz (16000 punti al secondo) • l’oscillatore 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: l’oscillatore legge dalla tabella ed emette un valore su due. Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

  10. Esempio • Ipotesi di lavoro: • file audio con frequenza di campionamento 16 KHz (16000 punti al secondo) • l’oscillatore 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: l’oscillatore deve leggere ed emettere anche valori non presenti in tabella. Come fare? Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

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

  12. La soluzione coninterpolazione Interpolazione lineare Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

  13. 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. • L’interpolazione 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. Programmazione timbrica (Prof. Luca A. Ludovico)L’oscillatore digitale

More Related