Linguaggi di programmazione per l’informatica musicale Conservatorio di Musica Antonio Buzzolla di Adria Diego Catania, Luca A. Ludovico LIM (Laboratorio di Informatica Musicale) DICo – Università degli Studi di Milano
May 01, 2015
Linguaggi di programmazione per l’informatica musicale
Conservatorio di Musica Antonio Buzzolla
di Adria
Diego Catania, Luca A. Ludovico
LIM (Laboratorio di Informatica Musicale)
DICo – Università degli Studi di Milano
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 2
Digital Sound Production
1957 – Max V. Mathews (Bell Labs)
“a computer could synthesize sounds according to any pitch scale or waveform”
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 3
Digital Sound Production
1957 – Max V. Mathews (Bell Labs)
IBM 704 Vacuum tube 36 bit, floating point, 32k words core memory Istruzioni in linguaggio macchina
Risultato su nastro (digitale) magnetico Computer a 12 bit (vacuum tube)
Conversione digitale-analogico
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 4
Digital Sound Production
1957 – Max V. Mathews (Bell Labs)
Music I Segnale a forma di triangolo equilatero Possibilità di controllo
Pitch Forma d’onda Durata
Guttman, Newman (1957) – In a silver scale Prima composizione (con conversione digitale-
analogico)
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 5
Digital Sound Production
1958 – Max V. Mathews (Bell Labs)
Music II 4 voci indipendenti 16 forme d’onda
IBM 7094 Transistor Programmabile in assembler
Guttman, Newman (1958) – Pitch Variation Primo concerto di CM - Svizzera
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 6
Digital Sound Production
1960 – Max V. Mathews & Joan Miller
(Bell Labs)
Music III Introduzione degli UG
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 7
Digital Sound Production
Unit Generator (UG) Moduli per il trattamento dei segnali:
Oscillatori Filtri Amplificatori Etc…
Configurabili in patch
Modellazione di numerosi algoritmi di sintesi
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 8
Digital Sound Production
1963 – Max V. Mathews (Bell Labs)
Music IV Linguaggio macro assembly
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 9
Digital Sound Production
1968 – Max V. Mathews (Bell Labs)
Music V Linguaggio standard per l’elaboratore
Fortran IV
’70 - Diffusione negli ambiti universitari e di laboratori di ricerca
(art of digital synth)
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 10
Digital Sound Production
Music V Modello seguito da:
Music 4BF Music 360 Music 7 Music 11 Csound MUS10 Cmusic Common Music Lisp
Tutti appartenenti alla famiglia Music N
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 11
Digital Sound Production
Software Synthesis
Versus
Hardware Synthesis
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 12
Software Synthesis
Tutti i calcoli necessari per la computazione di un flusso di campioni vengono realizzati da un programma, modificabile arbitrariamente dall’utente.
La risorsa hw è un general purpose computer
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 13
Software Synthesis
Flessibile Uso di elaboratori poco costosi Si possono implementare una varietà
di algoritmi di sintesi Real-time Non-Real-Time
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 14
Software Synthesis
Categorie Editor grafico di strumenti Linguaggi di sintesi
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 15
Software Synthesis
Graphical instrument editor UG -> Icone Icone + Interconnessioni -> Patch
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 16
Software Synthesis
Real-time La computazione di un campione della forma
d’onda finale, avviene all’interno di un periodo di campionamento
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 17
Software Synthesis
Synthesis Language Codice -> Testo Testo -> Interprete
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 18
Hardware Synthesis
Circuiteria dedicata alla produzione sonora
Computazioni in tempo reale Flessibilità ridotta (algoritmi predefiniti)
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 19
DSP Synthesis
Digital Signal Processors Elaborazioni ad alta capacità computazionale Programmabile
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 20
Algoritmi e Metodi
Obiettivo: generare una successione di numeri, che rappresentino i campioni di una forma d’onda sonora
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 21
Algoritmi e Metodi
Obiettivo: generare una successione di numeri, che rappresentino i campioni di una forma d’onda sonora
Tabella con valori precalcolati Funzione matematica
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 22
Algoritmi e Metodi - Table-lookup
Wavetable: locazione di memoria in cui vengono memorizzati i valori di un ciclo della forma d’onda
Table-lookup: metodologia di produzione sonora, basata sulla lettura ciclica della wavetable
(digital oscillator)
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 23
Algoritmi e Metodi – Table-lookup
Fixed waveform synthesis La forma d’onda non cambia durante tutto
l’evento sonoro
Definizione della frequenza di output: Frequenza di campionamento della
tabella Lettura con incremento
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 24
Algoritmi e Metodi – Table-lookup
Fixed waveform synthesis1. phase_index = modL(prev_phase + increment)
2. output = amp x wavetable [phase_index]
Dove:
increment = L x OutFreq / SamplingFreq
Se increment non è intero?
23 ottobre 2004 Linguaggi di programmazione per l’Informatica Musicale 25
Algoritmi e Metodi – Table-lookup
Time-varying waveform synthesis Uno (o piu’) parametri della forma d’onda
varia durante l’estensione dell’evento sonoro
Concetto di Inviluppo (Envelope)