La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Marco Simoncini Oscillatori digitali e table lookup

Presentazioni simili


Presentazione sul tema: "Marco Simoncini Oscillatori digitali e table lookup"— Transcript della presentazione:

1 Marco Simoncini Oscillatori digitali e table lookup
Corso di Campionamento, Sintesi ed Elaborazione Digitale del Suono Materiale rilasciato sotto licenza Creative Commons – Attribuzione/Non Commerciale/Condividi allo stesso modo Si autorizza, in deroga al secondo punto, l’utilizzo per l’insegnamento

2 Gli «antenati»: gli oscillatori analogici
Nella presentazione 2 relativa alla sintesi additiva, comparivano le seguenti affermazioni: Il suono è una variazione di pressione che si trasmette da un generatore, ad esempio uno strumento musicale o la voce, alla membrana del timpano in un orecchio Il flusso di energia elettrica generato dalla conversione di un suono, diviene un segnale Da esse discende che per creare un suono per via elettrica o elettronica, è necessario generare una tensione variabile nel tempo, che un apposito trasduttore trasformerà poi in variazione di pressione nell’aria

3 Gli «antenati»: gli oscillatori analogici
La generazione del suono per via elettrica è abbastanza «antica». Potremmo pensare al campanello della porta, ma in quel caso l’energia elettrica viene convertita prima in energia meccanica, e poi un piccolo battente, azionato da tale energia meccanica, colpisce ripetutamente il campanello facendolo suonare Immagine tratta da

4 Gli «antenati»: gli oscillatori analogici
Un esempio più vicino alla generazione puramente elettrica è il cicalino, in cui un’elettrocalamita agisce su una membrana metallica facendola piegare avanti e indietro e genera così un suono. È un po’ il principio dell’altoparlante, ma la membrana così rigida riesce a riprodurre solamente un suono ronzante (da cui il nome inglese buzzer) Occhio che un oggettino apparentemente innocuo, come questo che ha un diametro di circa 4 cm, produce un suono che arriva a 96 db!

5 Gli «antenati»: gli oscillatori analogici
Ciò che accomuna tutti i dispositivi di generazione o restituzione sonora, però è il fatto che la corrente nel circuito non può essere continua, ma deve variare nel tempo Nel campanello di diapositiva 3, la corrente viene interrotta quando il battente si sposta verso il campanello e si ripristina quando, a causa di tale interruzione, il battente torna in posizione di riposo e chiude il circuito Nel cicalino, che può essere alimentato in corrente continua, un circuito interno crea l’oscillazione Se noi invece applichiamo una corrente continua, quindi che non varia nel tempo, a un altoparlante, tutto quello che sentiamo è un «click» iniziale, seguito dal più rigoroso silenzio (e magari si brucia la bobina, ma quello è un altro discorso

6 Gli «antenati»: gli oscillatori analogici
Ciò che ci serve, quindi, per generare un suono elettronicamente, è una variazione di tensione. Se tale variazione è alternativa e regolare, possiamo parlare di un’oscillazione Nel mondo dell’hardware analogico l’oscillazione si ottiene, in linea di principio, con una capacità e un’induttanza I due componenti sono in grado, se collegati a un’adeguata sorgente di tensione, di caricarsi di energia. Lo fanno però in tempi diversi e, mentre uno si carica, l’altro si scarica. In questo modo generano una corrente che circola alternativamente nelle due direzioni mentre i due componenti si «rimpallano» l’energia. Un esempio più articolato qui

7 Gli «antenati»: gli oscillatori analogici
Nei «vecchi» sintetizzatori analogici, si sfruttava questo principio per generare segnali oscillatòri (naturalmente i circuiti reali erano molto più complicati Gli oscillatori tipici di un sintetizzatore analogico erano il VCO (Voltage Controlled Oscillator) e l’LFO (Low Frequency Oscillator) Il primo serve a generare un segnale nella banda udibile, segnale che poi viene elaborato negli stadi successivi del sintetizzatore Il secondo oscilla a frequenze molto più basse (tipicamente non udibili) e serve principalmente come segnale di comando, ovvero per gestire altri segnali

8 Gli «antenati»: gli oscillatori analogici
Nei «vecchi» sintetizzatori analogici, si sfruttava questo principio per generare segnali oscillatòri (naturalmente i circuiti reali erano molto più complicati Gli oscillatori tipici di un sintetizzatore analogico erano il VCO (Voltage Controlled Oscillator) e l’LFO (Low Frequency Oscillator) Il primo serve a generare un segnale nella banda udibile, segnale che poi viene elaborato negli stadi successivi del sintetizzatore Il secondo oscilla a frequenze molto più basse (tipicamente non udibili) e serve principalmente come segnale di comando, ovvero per gestire altri segnali

9 Gli «antenati»: gli oscillatori analogici

10 Gli «oscillatori» digitali
Nel mondo digitale sarebbe molto facile (beh…) sostituire a condensatori, induttanze e compagnia il semplice calcolo delle forme d’onda. Per ottenere un oscillatore digitale si potrebbe cioè «dirgli» di calcolare un adeguato numero di punti di una sinusoide e poi di mandarla a un convertitore digitale analogico (DAC) per trasformarla in suono da inviare ad amplificatore e altoparlanti In realtà, però, ordinare a un computer di fare un simile calcolo richiederebbe più potenza di elaborazione di quanto si possa immaginare a un primo sguardo Calcolare una sola sinusoide, infatti, sarebbe una sciocchezza, anche dovendola ripetere magari volte il secondo. Ma…

11 Gli «oscillatori» digitali
…Con una sola sinusoide si farebbe della musica piuttosto noiosa. E se le sinusoidi diventassero invece cinquanta o cento (cosa non rara nella musica elettronica), il numero di calcoli comincerebbe a essere elevato anche per un computer Per questo motivo si utilizzano le cosiddette lookup table, ovvero «tabelle in cui cercare» che contengono già tutti i valori necessari per creare una sinusoide (o un’altra onda) Le lookup table vengono utilizzate, appunto, con un lookup oscillator, che si limita a leggere ripetitivamente i valori, con la frequenza impostata, in una tabella prefissata

12 Gli «oscillatori» digitali
Il principio è analogo a quello che si utilizzava a scuola quando non esistevano le calcolatrici tascabili: si comprava un bel volume di «tavole trigonometriche e matematiche» e, quando serviva un logaritmo o il seno di un angolo, lo si andava a cercare nelle relative tabelle

13 Gli «oscillatori» digitali
L’oscillatore, quindi, «legge» ripetitivamente i valori che descrivono l’onda desiderata e li invia agli stadi di elaborazione successivi o alla conversione DAC per la riproduzione audio Poniamo di voler generare una sinusoide a 440 Hz. Si «dice» all’oscillatore di leggere i valori della sinusoide 440 volte ogni secondo, e di presentarli sulla propria uscita Dato che i valori nella tabella sono sempre gli stessi, la sinusoide sarà periodica e deterministica Nei programmi per la generazione e l’elaborazione del suono esistono diversi oggetti del tipo descritto. In Max/MSP abbiamo Cycle~

14 Gli «oscillatori» digitali
Cycle~, preso a sé, contiene campioni digitali di una sinusoide. Quando gli impartisco una frequenza, sostanzialmente gli dico quante volte ogni secondo deve «leggere» quei campioni e «suonarli» all’uscita Il campione «+1» è una copia del primo e serve alla sovrapposizione con questo, in modo da garantire l’assenza di «click» in uscita L’operatore cycle~ può però leggere anche altre forme d’onda, per la precisione altri suoni campionati. Però questi devono durare sempre campioni, né uno di più, né uno di meno Ovviamente se il «loop» di tali campioni non è accurato, il suono che ne risulta sarà di scarsa qualità

15 Gli «oscillatori» digitali
Per far sì che cycle~ legga una serie di campioni differente da quella che ha «dentro», bisogna utilizzare un altro operatore che si chiama «buffer~» e che consente di caricare un suono da riprodurre, appunto con cycle~ o con altri operatori Bisogna comunque ricordare che il suono in buffer~ deve durare campioni. A questo proposito è possibile utilizzare anche suoni più lunghi, ma bisogna dire a buffer~ di consentire solo la lettura di 513 di essi

16 Configurazione minima dell’oggetto cycle~
Patch Lookup Tables 01

17 Utilizzo di cycle~ con l’oggetto buffer~
Se vogliamo fare «leggere» a cycle~ una serie di 512 campioni non provenienti dal suo «interno» ma da una fonte esterna, dobbiamo fare interagire cycle~ con l’oggetto buffer~ A tale scopo, dovremo «dire» a cycle~, scrivendolo al suo interno o inviandogli un messaggio, il nome dell’oggetto buffer~ da cui leggere Idealmente la lunghezza del file caricato in buffer~ dovrebbe essere di 513 campioni, con l’ultimo e il primo uguali

18 Facciamo conoscenza con l’oggetto buffer
L’oggetto buffer~, come si evince dalla tilde ~ dopo il suo nome, è un oggetto per il trattamento dei segnali Più precisamente, l’oggetto consente di caricare file audio nei più diffusi formati All’oggetto buffer~ è sempre necessario dare un nome. Questo può essere scritto dentro l’oggetto stesso o essergli inviato con un messaggio

19 Una piccola modifica per la patch, un grande passo per l’umanità!
Patch Lookup Tables 02 L’oggetto buffer~ consente di caricare file nei formati *.aiff, *. aif, *. au, *. wav, *. flac, *. snd, *. mp3, *. data, *. m4a, *. caf Se si fa clic sul messaggio «read», viene visualizzata una finestra di selezione dei file che consente di scegliere il file audio da caricare

20 Ma… 513 campioni…? Come…? La costruzione di un’onda periodica per ora esula un po’ dall’ambito delle nostre lezioni. Ci basti sapere che, se disponiamo di una serie di 513 campioni che «descrivono» un’onda periodica, possiamo caricarla in buffer~ e «suonarla» alla frequenza che desideriamo A scopo sperimentale, possiamo caricare in buffer~ un piccolo pezzo di file, lungo giusto 513 campioni, che ci possiamo ritagliare da noi prelevandolo da un file audio qualsiasi, con un programma come Audacity

21 Una volta aperto Audacity, carichiamo un file audio a nostro piacimento

22 Trasformiamo la traccia, se è stereo, in mono

23 Una volta trasformata in «mono» la traccia, «agganciamone» con il mouse il bordo inferiore per ampliarla al massimo in altezza; quindi facciamo più volte clic sul pulsante «zoom in» per ingrandirla sino a vedere (circa) i singoli campioni!

24 Scegliamo un punto in cui il segnale è a zero: allo scopo usiamo una funzione del menu Modifica, «Trova incroci con zero»

25 Nota 1: sembra che la funzione di Audacity individui solo i passaggi a zero che provengono da un valore negativo Nota 2: altri software più avanzati (e magari a pagamento) consentono di visualizzare la posizione in campioni. Audacity arriva ai decimillesimi di secondo ma non ai campioni.

26 Il primo dei tre contatori in basso indica la posizione; prendiamone nota; quindi selezioniamo, sopra il secondo contatore, «Lunghezza» e scriviamo nel contatore stesso «513» (campioni). Una parte del segnale verrà selezionata e cambierà in colore grigio scuro

27 Facendo clic sul pulsante «Adatta selezione» vediamo tutti i campioni selezionati

28 Creazione di una nuova traccia di 513 campioni
A questo punto abbiamo selezionato 513 campioni del nostro file audio Usando Modifica > Copia o CTRL+C (Option-C su Mac), copiamo la selezione A questo punto possiamo chiudere la traccia originale Usando Tracce > Aggiungi nuova > Traccia audio, creiamo una nuova traccia monofonica

29 Creazione di una nuova traccia di 513 campioni
Portiamo il cursore all’inizio della traccia creata e scegliamo Modifica > Incolla o CTRL+V (Option-V su Mac) Abbiamo così una traccia di 513 campioni. Probabilmente dopo l’operazione di incollatura sembrerà non sia successo niente, perché il materiale incollato è molto breve Basterà però ingrandire nuovamente la traccia per constatare che i nostri 513 campioni sono stati effettivamente incollati su di essa Il capolavoro creato può essere udito: è però necessario selezionare i famosi 513 campioni e avviare la riproduzione di Audacity mantenendo premuto il tasto MAIUSC mentre si fa clic su «Play»


Scaricare ppt "Marco Simoncini Oscillatori digitali e table lookup"

Presentazioni simili


Annunci Google