Strumenti software per la generazione e l’elaborazione...
Transcript of Strumenti software per la generazione e l’elaborazione...
Strumenti software per la generazione e l’elaborazione in tempo reale del segnale musicale
Sylviane Sapir
Conservatorio “O. Respighi” LatinaEmail: [email protected]
06/06/07 Strumenti software della Musica Informatica - S. Sapir 2
Sommario
Musica Informatica – i linguaggi storici Introduzione a Csound
Musica Informatica – il tempo reale Introduzione a Pure Data
Sistemi musicali interattivi Interfacce e dispositivi di controllo Ambienti esecutivi per il “live Electronics”
Esempi applicativi Sintesi del suono con tecniche classiche Analisi del segnale ed estrazione di parametri di controllo Applicazione alla sonificazione Elaborazione di suoni ed immagini in tempo reale
06/06/07 Strumenti software della Musica Informatica - S. Sapir 3
Musica Informatica
Insieme di applicazioni ed ambiti disciplinari che nascono dall’uso dell’elaboratore in musica
I sistemi informatici tendono a trasformarsi in uno «strumento» musicale di riferimento, come lo fu il pianoforte nel XIX secolo
Un sistema informatico può svolgere molte funzioni musicali: strumento musicale, mezzo per comporre, studio di registrazione e di post-produzione, sistema di editoria, di archiviazione, ...
06/06/07 Strumenti software della Musica Informatica - S. Sapir 4
Musica Informatica
Musica Matematica Fisica Scienze cognitive Informatica
Musica Informatica
Scrittura
Sintesi
Suoni (DSP) Esecuzione Teoria
Composizioneautomatica
Aiuto allacomposizione
Editoria musicale
Effetti
Filologia
Analisimusicologica
Automatica(sequencer)
Interpretazionepartiture
InstallazioniImprovvisazioni
Strumenti
Sensori,interfacce
Analisi
Industria spettacolostrumenti musicali
Audio, Web, …
06/06/07 Strumenti software della Musica Informatica - S. Sapir 5
Codifica informatica della musica
Audio La musica viene rappresentata con la codifica della forma
d'onda: i campioni audio. Midi
La musica viene rappresentata con la codifica dei gesti prodotti dall’esecutore che suona la musica.
Partitura La musica viene rappresentata con la codifica dei segni grafici
della partitura. Programma
La musica viene rappresentata con la codifica di un processo che genera o elabora informazione musicale (audio, Midi, Simboli)
06/06/07 Strumenti software della Musica Informatica - S. Sapir 6
Sviluppo tecnologico in musica nel ‘900
Gli anni ‘50: il periodo degli “Studi Radiofonici” Groupe de Recherche Musicale (GRM) – Paris, Westdeutscher Rundfunk (WDR) –
Köln, Studio di Fonologia della RAI – Milano Musica acusmatica, elettronica, tape music
Gli anni ‘60: il periodo del “Voltage Control” Sintetizzatori modulari (Moog, Arp, …) Elettrificazione ed amplificazione degli strumenti tradizionali Minimalismo, Rock e Pop Music
Gli anni ‘70: la nascita della “Computer Music” Sviluppo dell’informatica – main frames, linguaggi Fortran, C, …
Università e centri di ricerca (Bell labs., CCRMA, MIT, CSC, …) Nascita di centri specializzati (IRCAM, Tempo Reale, ZKM, …)
Gli anni ‘80: Sintetizzatori commerciali e MIDI Integrazione dei componenti elettronici (VLSI) ed applicazioni in tempo reale Avvento dei PC e home studio, sviluppo di tastiere elettroniche e nuovi dispositivi di
controllo Poi…
Sviluppo di Internet, tecnologie digitali per l’elaborazione di immagini e video, performance multimediali e multimodali, performance in rete, …
06/06/07 Strumenti software della Musica Informatica - S. Sapir 7
I linguaggi storici della Musica Informatica
06/06/07 Strumenti software della Musica Informatica - S. Sapir 8
Introduzione a Csound
Programma e linguaggio per l’elaborazione numerica del suono
Appartiene alla famiglia Musicn di Max Mathews Sviluppato da Barry Vercoe al Media Lab del M.I.T. Applicazione in tempo differito Versioni funzionanti in tempo reale, con funzionalità
aggiunte (Midi, Video, …)
06/06/07 Strumenti software della Musica Informatica - S. Sapir 9
Csound - Concetti base
Csound opera su file di testo Orchestra (.ORC)
contiene gli algoritmi di trattamento del suono raggruppati in strumenti
Partitura (.SCO)contiene i dati o i parametri utili agli strumenti dell’orchestra per elaborare il suono
06/06/07 Strumenti software della Musica Informatica - S. Sapir 10
Linguaggi a “Unit Generator”
Unit Generator UG, opcode, modulo Funzione operativa Rappresentazione grafica Sistema di condivisione dati
Principio di funzionamento Pass1 – verifica sintatica Pass2 – ordinamento
temporale Pass3 – calcolo campioni
Modulo 1
Modulo 2
puntatore inscrittura
puntatore inlettura
Array
Interconnessione fra moduli tramitearea dati condivisa
06/06/07 Strumenti software della Musica Informatica - S. Sapir 11
Csound - Sintassi Orchestralabel: result opcode argument1, argument2, … ;comment ScoreResult p1 p2 p3 p4 … ;comment P campi
Tabella contenente i dati Colonna: micro evento (1 campo) Righe: macro evento {n campi} Campi riservati dal sistema P1 P2 P3 …
06/06/07 Strumenti software della Musica Informatica - S. Sapir 12
Csound - Segnali e collegamento tra blocchi
Segnali audio Calcolati alla frequenza sr (samping rate) Identificati da variabili che iniziano con a (audio)
Segnali di controllo Calcolati alla frequenza kr (kontrol rate) Identificati da variabili che iniziano con k (kontrol)
Collegamento tra blocchi A e B Result di A come argument di B
a1 oscil p4, p5, p6 a2 oscil a1, p7, p8 A B
result
argument
06/06/07 Strumenti software della Musica Informatica - S. Sapir 13
Csound - Sessione di lavoro
1. Progettazione a tavolino2. Schema a blocchi degli strumenti3. Codifica mediante editor di testo4. Compilazione e rendering con una versione
di Csound5. Ascolto con programma audio utilitario e
debug se necessario
06/06/07 Strumenti software della Musica Informatica - S. Sapir 14
Csound - Esempio Timbro semplificato
Onda a spettro armonico Inviluppo d’ampiezza
Altezza note Frequenza fondamentale Unità di misura: musicale, fisica (Hz)
Durate note Metronomo Unità di misura: musicale, fisica
(sec) Intensità note
Relative Unità di misura: musicale, fisica (dB)
Timbro: “organo”
Problema musicale
06/06/07 Strumenti software della Musica Informatica - S. Sapir 15
Csound - Schema a blocchi strumentosr = 44100 ; frequenza di campionamentokr = 4410 ; frequenza di controlloksmps = 10nchnls = 1 ;uscita monoinstr 1; ****************************
idur = p3 iamp = p4 ifq1 = p5 if1 = p6 irise = p7 idec = p8 k1 linen iamp, irise, idur, idec a1 oscili k1, ifq1, if1 out a1
endin
06/06/07 Strumenti software della Musica Informatica - S. Sapir 16
Csound – Funzione e partitura;Definizione funzionif 1 0 4096 10 1 1 1 1 1 1 1 1 1 1;forma d’onda complessa con 10 armoniche
t 0 60 ;metronomo a 60 bps
;Partitura; p1 p2 p3 p4 p5 p6 p7 p8; ins T0 dur amp freq fun att deci 1 0 2 5000 262 1 0.2 0.5i 1 0 1 4000 329 . 0.1 0.3i 1 1 1 6000 392 . . .i 1 2 1 7000 440 . . .i 1 3 1 3000 392 . . .e
CSound Compiler Details:orchname: F:\Corsi\MusicaElettronica\Dispense\Linguaggi\esempioCsound.orcscorename: F:\Corsi\MusicaElettronica\Dispense\Linguaggi\esempioCsound.scoorch compiler:18 lines read
instr 1sorting score ...
... doneCsound Version 4.23f02 (Mar 9 2003)graphics not supported on this terminal, ascii substituted0dBFS level = 32767.0orch now loadedaudio buffered in 16384 sample-frame blockswriting 32768-byte blks of shorts to F:\Corsi\MusicaElettronica\Dispense\Linguaggi\esempioCsound.wav (WAV)SECTION 1:ftable 1:ftable 1: 4096 points, scalemax 1.000new alloc for instr 1:new alloc for instr 1:B 0.000 .. 1.000 T 1.000 TT 1.000 M: 8952.1B 1.000 .. 2.000 T 2.000 TT 2.000 M: 10989.3B 2.000 .. 3.000 T 3.000 TT 3.000 M: 7000.0B 3.000 .. 4.000 T 4.000 TT 4.000 M: 3000.0end of score. overall amps: 10989.3
overall samples out of range: 00 errors in performancepeak CH 1: 10989.310547 (written: 0.335377) at 6547211 32768-byte soundblks of shorts written to F:\Corsi\MusicaElettronica\Dispense\Linguaggi\esempioCsound.wav (WAV)
06/06/07 Strumenti software della Musica Informatica - S. Sapir 17
Distribuzioni Csound
Sito ufficialewww.csounds.com
Versione canonica (console, winsound)www.cs.bath.ac.uk/~jpff/dream.html
CsoundAV (G. Maldonado)http://csounds.com/maldonado/download.htm
WinXound (Editore di testo per Csound)www.ibart.it/winxound
06/06/07 Strumenti software della Musica Informatica - S. Sapir 18
Fondamenti dei sistemi in tempo reale Da sempre gli strumenti musicali tradizionali rispondono in
maniera immediata alle sollecitazioni dello strumentista Dagli anni ‘50 con l’uso del nastro è possibile riprodurre la
musica a distanza e senza esecutori, ma la produzione del materiale sonoro con i dispositivi analogici avviene sempre in tempo reale
Gli anni ’70 hanno segnato una svolta nella prassi musicale: Produzione dei suoni in tempo differito Scomparsa della figura dell’esecutore tradizionale (l’interprete) Scomparsa della gestualità e dei principi causali alla base di tutte
le musiche Per molti musicisti nasce l’esigenza di riallacciarsi con una prassi
“tradizionale” senza tuttavia perdere i vantaggi provenienti dall’uso delle tecnologie digitali per la manipolazione del suono
06/06/07 Strumenti software della Musica Informatica - S. Sapir 19
Musica Informatica
Musica Matematica Fisica Scienze cognitive Informatica
Musica Informatica
Scrittura
Sintesi
Suoni (DSP) Esecuzione Teoria
Composizioneautomatica
Aiuto allacomposizione
Editoria musicale
Effetti
Filologia
Analisimusicologica
Automatica(sequencer)
Interpretazionepartiture
InstallazioniImprovvisazioni
Strumenti
Sensori,interfacce
Analisi
Industria spettacolostrumenti musicali
Audio, Web, …
e Tempo Reale
06/06/07 Strumenti software della Musica Informatica - S. Sapir 20
Musica informatica e tempo reale ieri
Per poter funzionare in tempo reale, è necessario produrre i singoli campioni in un lasso di tempo inferiore al periodo di campionamento (1/fs)
Questo tempo è difficile da prevedere Nei computers “General Purpose” Con i Sistemi Operativi non ottimizzati per applicazioni in tempo reale
Nasce quindi l’esigenza di “macchine dedicate” composte da: Digital Signal Processor: 2 tipi di architettura
A funzioni fisse (oscillatori, filtri, generatori di inviluppo, ….) - prodotti commerciali A funzioni variabili (programmabili) – concetto di patch
I/O: canali di ingressi e uscite audio e non (controlli Midi) Host computer o microprocessore di controllo: per configurazione ed eventualmente
controllo della performance con Sistema Operativo e linguaggi o interfacce dedicati ad applicazioni in tempo reale
Alcuni esempi storici di macchine dedicate: IRCAM: 4A, 4B, … 4X (1978…1986) Stanford University: Samson Box (1979) Iris (Bontempi/Farfisa): MARS (1992)
06/06/07 Strumenti software della Musica Informatica - S. Sapir 21
Musica informatica e tempo reale oggi
Le macchine dedicate sono diventate troppo costose e complesse da gestire
le macchine generiche (G.P.) sono molto più potenti di quelle dedicate se accoppiate ad una
scheda audio multi-canali ed interfaccia Midi Sono state sviluppate tecniche che permettono una
migliore risposta temporale dei sistemi G.P.: la bufferizzazione dei campioni
Il calcolo di un gruppo di campioni (buffer) invece di un solo campione
Permette di assorbire i picchi di calcolo e di ragionare sulla quantità media di calcoli necessari
Introduzione di priorità funzionali Distinzione fra flussi audio e flussi di controllo: le funzioni di controllo
hanno una priorità più bassa rispetto a quelle audio
06/06/07 Strumenti software della Musica Informatica - S. Sapir 22
Problemi con i sistemi General Purpose
Latenza il tempo di risposta del sistema un tempo proporzionale alla dimensione del buffer del sistema
Criticità delle risorse Il numero di risorse per il calcolo RT dipende dall’impiego
corrente della CPU Limita la complessità dei calcoli, il numero di voci (polifonia)…
Un ritardo nel calcolo implica l’eventuale perdita di campioni in ingresso o l’interruzione del flusso di campioni in uscita Produce dei rumori indesiderati (clic)
Sviluppo software multi-piattaforma Funzioni DSP Interfaccia Utente (Programmazione) Controllo in tempo reale (Performance)
06/06/07 Strumenti software della Musica Informatica - S. Sapir 23
Introduzione a Pure Data
Autore: Miller Puckette Ambiente di programmazione
Programmazione grafica ad oggetti (riprende il concetto storico di modularità)
Shell multi-piattaforma: TCL/TK Gestione audio, midi e altri media Interazione grafica Elaborazione in tempo reale
Per performance musicali "live" Molto simile a Max/Msp (Ircam/Cycling74) GEM per gestione immagini e video
06/06/07 Strumenti software della Musica Informatica - S. Sapir 24
Oggetti di PD
Patches Documenti di PD Costituiti da boxes
interconnessi tra loro Message Object Number
Connessioni Flusso audio ~ Messaggi
06/06/07 Strumenti software della Musica Informatica - S. Sapir 25
PD - Finestra principale
Livelli diIngresso e
uscita
Suono On/Off
Livelli On/Off
Messaggi di PD (errori, messaggi di sistema, uscita standard, …)
06/06/07 Strumenti software della Musica Informatica - S. Sapir 26
PD - Finestra di Patch
Modalità: [ctrl]+[e] Edit mode Run mode
1 finestra = 1 patch Inserimento di oggetti
Da menu Put Da short-cut: [ctrl] + [1], [ctrl] + [2], …
[alt] + [b], [alt] + [v], …
06/06/07 Strumenti software della Musica Informatica - S. Sapir 27
PD - Object boxes Definito da atomi - (testo)
Classe Serie di argomenti
Ingressi e uscite Trasmissione dati e messaggi
Oggetti di controllo: NomeClasse Elaborazione di eventi discreti Aritmetica, stampa, Midi, … Connessione normale
Oggetti audio: NomeClasse~ Elaborazione di eventi continui –
flusso audio Aritmetica, in/out, Dsp, … Connessione in neretto
Classe o tipo
Argomento alla creazione
Inlet
Outlet
06/06/07 Strumenti software della Musica Informatica - S. Sapir 28
PD - Message boxes
Messaggio Testo interpretato da altri oggetti o da PD Inviato
quando il patch è attivo Alla ricezione di un altro messaggio Da un click del mouse
Esempi Stringhe di caratteri alfanumerici, numeri, lista di
numeri
06/06/07 Strumenti software della Musica Informatica - S. Sapir 29
PD - GUI boxes
Interfaccia utente grafica hanno varie forme Il loro contenuto (dati) varia secondo l’interazione
grafica in corso (con mouse o tastiera) Esempi
Numeri, potenziometri, pulsanti, display, …
06/06/07 Strumenti software della Musica Informatica - S. Sapir 30
PD - Gestione messaggi
Messaggiomezzo di comunicazione fra oggetti di PD, contiene: Selector o simbolo non numerico senza spazio o virgola (float, bang,
symbol, list, …) Serie di argomenti (simboli o numeri separati da spazi, virgola o ;)
Ordine di trasmissione tra oggetti Dall’alto verso il basso
Ingressi caldi e freddi – ordine in ricezione Inlet più a sinistra: caldo – un messaggio in arrivo nel punto caldo attiva
l’oggetto Altri inlet: freddi – per memorizzare dati in arrivo
Uscite degli oggetti – ordine in uscita I messaggi in uscita sono inviati da destra a sinistra
06/06/07 Strumenti software della Musica Informatica - S. Sapir 31
PD – Subpatches e « Incapsulation »
Object box: pd NomeSubpatch Creazione di una nuova finestra di patch Gerarchia o filiazione tra patch e subpatch
Subpatch salvato con il patch Copie multiple di un subpatch sono indipendenti
Click su subpatch in modalità Run apre il subpatch Astrazioni
Subpatch salvato con NomeSubpatch.pd Astrazione richiamata in un patch con nome NomeSubPatch Istanze multiple di astrazione fanno riferimento ad un unico file
(non indipendenti) Possibilità di utilizzare argomenti variabili alla creazione
06/06/07 Strumenti software della Musica Informatica - S. Sapir 32
PD – Altre caratteristiche Variabili
Riconoscibili dal simbolo $ Sostituiti da valori provenienti da lista di argomenti di altri messaggi
Array Lista di numeri Contenitore di campioni audio o di funzioni, creati come subpatch in forma di
Graph Structure e template
Per manipolare e visualizzare liste di dati organizzati secondo un template Oggetto Template: descrive la struttura dati mediante l’uso di campi (fields) Oggetto Pointer: permette di accedere agli elementi della struttura dati Oggetti di visualizzazione dei campi: Polygons, Curves Altri oggetti per accedere e modificare i campi della struttura: Get, Set, … Uso: partiture grafiche
Comunicazioni e protocolli MIDI, OSC, TCP/IP
06/06/07 Strumenti software della Musica Informatica - S. Sapir 33
PD - EsempioOscillatore Polifonia
Monofonico Tecnica
Table lookup Controlli
Frequenza Forma d’onda Volume
Conversione freq Midi -> Hz
06/06/07 Strumenti software della Musica Informatica - S. Sapir 34
Distribuzione PD
Sito ufficialehttp//www.crca.ucsd.edu/~msp
Vedere anchehttp://sourceforge.net/projects/pure-data/
Comunitàhttp://www.puredata.org/
Altri programmi free o shareware similiEyesWeb: http://www.infomus.dist.unige.it (Sviluppato dal Laboratorio di Informatica Musicale - DIST – Univ. di Genova)CPS: http://www.bonneville.nl/cpsSync Modular: http://www.mtu-net.ru/syncmodular/
06/06/07 Strumenti software della Musica Informatica - S. Sapir 35
Sistema musicale interattivo
Dispositivi di cattura del gesto Dispositivi di elaborazione numerica del segnale Sistema di relazioni tra gesto e suono
Analisi e estrazione dei parametri gestuali Sistema arbitrario di mappamento tra parametri
gestuali e parametri sonori Meccanismo di sincronizzazione
Sensori DSPMovimento del corpo SuonoAnalisi, mappamento,
sincronizzazione
06/06/07 Strumenti software della Musica Informatica - S. Sapir 36
Interfacce e dispositivi di controllo
Quali dispositivi di controllo adoperare? Tradizionali
Familiarità & abilità/tecnica dell’esecutore Virtuosismi
Innovativi Nuova gestualità e gesti semplici Ergonomia, flessibilità, programmabilità Spettacolarità e espressività estesa
06/06/07 Strumenti software della Musica Informatica - S. Sapir 37
Dispositivi di controllo Laptop performance
Joystick Mouse Tastiera Tavoletta grafica
Performance con dispositivi MIDI o simili Console di potenziometri e pulsanti Strumenti (tastiere, breath controller, pad, chitarre) Dispositivi innovativi costruiti su misura
06/06/07 Strumenti software della Musica Informatica - S. Sapir 38
Esempi di sensori Forza/Pressione
Movimento Spazio sensorizzato Telecamere
06/06/07 Strumenti software della Musica Informatica - S. Sapir 39
Le tipologie del gesto nel Live Electronics Gesti strumentali
Diretto Indiretto
Es. Pitch, envelope tracking Gesti di controllo
Interprete elettronico Partitura (score follower)
Livelli di congruenza tra Gesto strumentale e eventi
sonori Gesto di controllo e
elaborazione del suono
Gesto diretto
Strumentoacustico
Evento sonoro
Ambienteesecutivo
Gesto di controllo
Evento sonoro
Gesto indiretto
Partitura
06/06/07 Strumenti software della Musica Informatica - S. Sapir 40
Tecniche di elaborazioni del suono Tempo reale e principio di causalità
Alcune tecniche non sono possibili Letture al contrario di un suono
Principali categorie di elaborazioni del suono ordinate secondo parametri musicali Tempo/evento:campionamento, ritardo, accumulazione Altezza: trasposizione, modulazione, pitch tracking Dinamica: segmentazione, rinforzo, envelope tracking Timbro: filtraggio, modulazione ad anello, granularizzazione Spazio: panning multicanale, riverbero, doppler
06/06/07 Strumenti software della Musica Informatica - S. Sapir 41
Esempio pratico Schema a blocchi delle varie
situazioni esecutive Numero di programmi (algoritmi): 4 Valori di alcuni parametri Numero e funzione dei controlli per
l’esecuzione: 17 Disposizione in sala dei musicisti e
dei dispositivi elettroacustici Numero dei microfoni; 1 Numero di diffusori: 4 Configurazione del mixer Schema dei collegamenti Controlli musicali remoti
06/06/07 Strumenti software della Musica Informatica - S. Sapir 42
Partitura per l’esecuzione
Luigi Nono (1987)Post-Prae-Ludium per Donauper tuba e live electronics
Estratto della partitura ed. Ricordi
Partitura•Istruzioni per l’esecutore e commenti di G. Schiaffini•Schema ambiente esecutivo•Indicazioni per la regia del suono•Partitura per l’esecuzione
06/06/07 Strumenti software della Musica Informatica - S. Sapir 43
Esempi applicativi
CsoundAV Elaborazione del suono e dell’immagine in tempo
reale Pure Data
Sintesi con tecnica sottrattiva Analisi del segnale ed estrazione di parametri
acustici per il controllo della sintesi Max/Msp
Esempio di sonificazione