Strumenti software per la generazione e l elaborazione in tempo reale del segnale musicale Sylviane Sapir Conservatorio O. Respighi Latina Email: sylviane.sapir@tin.it
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 2
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 3
Musica Informatica Musica Matematica Fisica Scienze cognitive Informatica Musica Informatica Scrittura Suoni (DSP) Esecuzione Teoria Strumenti Composizione automatica Aiuto alla composizione Editoria musicale Sintesi Analisi Effetti Automatica (sequencer) Installazioni Improvvisazioni Interpretazione partiture Analisi musicologica Filologia Sensori, interfacce Industria spettacolo strumenti musicali Audio, Web, 06/06/07 Strumenti software della Musica Informatica - S. Sapir 4
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 5
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 6
I linguaggi storici della Musica Informatica 06/06/07 Strumenti software della Musica Informatica - S. Sapir 7
Introduzione a Csound Programma e linguaggio per l elaborazione numerica del suono Appartiene alla famiglia Music n 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 8
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 9
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 puntatore in scrittura Modulo 1 Array Modulo 2 puntatore in lettura Interconnessione fra moduli tramite area dati condivisa 06/06/07 Strumenti software della Musica Informatica - S. Sapir 10
Csound - Sintassi Orchestra label: result opcode argument1, argument2, ;comment Score Result 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 11
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 argument result 06/06/07 Strumenti software della Musica Informatica - S. Sapir 12
Csound - Sessione di lavoro 1. Progettazione a tavolino 2. Schema a blocchi degli strumenti 3. Codifica mediante editor di testo 4. Compilazione e rendering con una versione di Csound 5. Ascolto con programma audio utilitario e debug se necessario 06/06/07 Strumenti software della Musica Informatica - S. Sapir 13
Csound - Esempio Problema musicale Timbro: organo 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) 06/06/07 Strumenti software della Musica Informatica - S. Sapir 14
Csound - Schema a blocchi strumento sr = 44100 ; frequenza di campionamento kr = 4410 ; frequenza di controllo ksmps = 10 nchnls = 1 ;uscita mono instr 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 15
Csound Funzione e partitura ;Definizione funzioni f 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 dec i 1 0 2 5000 262 1 0.2 0.5 i 1 0 1 4000 329. 0.1 0.3 i 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.orc scorename: F:\Corsi\MusicaElettronica\Dispense\Linguaggi\esempioCsound.sco orch compiler: 18 lines read instr 1 sorting score...... done Csound Version 4.23f02 (Mar 9 2003) graphics not supported on this terminal, ascii substituted 0dBFS level = 32767.0 orch now loaded audio buffered in 16384 sample-frame blocks writing 32768-byte blks of shorts to F:\Corsi\MusicaElettronica\Dispense\Linguaggi\esempioCsound.wav (WAV) SECTION 1: ftable 1: ftable 1: 4096 points, scalemax 1.000 new alloc for instr 1: new alloc for instr 1: B 0.000.. 1.000 T 1.000 TT 1.000 M: 8952.1 B 1.000.. 2.000 T 2.000 TT 2.000 M: 10989.3 B 2.000.. 3.000 T 3.000 TT 3.000 M: 7000.0 B 3.000.. 4.000 T 4.000 TT 4.000 M: 3000.0 end of score. overall amps: 10989.3 overall samples out of range: 0 0 errors in performance peak CH 1: 10989.310547 (written: 0.335377) at 65472 11 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 16
Distribuzioni Csound Sito ufficiale www.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 17
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 18
Musica Informatica e Tempo Reale Musica Matematica Fisica Scienze cognitive Informatica Musica Informatica Scrittura Suoni (DSP) Esecuzione Teoria Strumenti Composizione automatica Aiuto alla composizione Editoria musicale Sintesi Effetti Analisi Automatica (sequencer) Installazioni Improvvisazioni Interpretazione partiture Analisi musicologica Filologia Sensori, interfacce Industria spettacolo strumenti musicali Audio, Web, 06/06/07 Strumenti software della Musica Informatica - S. Sapir 19
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 20
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 21
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 22
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 23
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 24
PD - Finestra principale Suono On/Off Livelli di Ingresso e uscita Livelli On/Off Messaggi di PD (errori, messaggi di sistema, uscita standard, ) 06/06/07 Strumenti software della Musica Informatica - S. Sapir 25
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 26
PD - Object boxes Classe o tipo Outlet Inlet Argomento alla creazione 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 06/06/07 Strumenti software della Musica Informatica - S. Sapir 27
PD - Message boxes Messaggio Testo interpretato da altri oggetti o da PD Inviato Esempi quando il patch è attivo Alla ricezione di un altro messaggio Da un click del mouse Stringhe di caratteri alfanumerici, numeri, lista di numeri 06/06/07 Strumenti software della Musica Informatica - S. Sapir 28
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 29
PD - Gestione messaggi Messaggio mezzo 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 30
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 31
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 32
PD - Esempio Oscillatore 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 33
Distribuzione PD Sito ufficiale http//www.crca.ucsd.edu/~msp Vedere anche http://sourceforge.net/projects/pure-data/ Comunità http://www.puredata.org/ Altri programmi free o shareware simili EyesWeb: http://www.infomus.dist.unige.it (Sviluppato dal Laboratorio di Informatica Musicale - DIST Univ. di Genova) CPS: http://www.bonneville.nl/cps Sync Modular: http://www.mtu-net.ru/syncmodular/ 06/06/07 Strumenti software della Musica Informatica - S. Sapir 34
Sistema musicale interattivo Movimento del corpo Sensori Analisi, mappamento, sincronizzazione DSP Suono 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 06/06/07 Strumenti software della Musica Informatica - S. Sapir 35
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 36
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 37
Esempi di sensori Forza/Pressione Movimento Spazio sensorizzato Telecamere 06/06/07 Strumenti software della Musica Informatica - S. Sapir 38
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 Partitura Gesto di controllo Gesto indiretto Gesto diretto Strumento acustico Evento sonoro Ambiente esecutivo Evento sonoro 06/06/07 Strumenti software della Musica Informatica - S. Sapir 39
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 40
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 41
Partitura per l esecuzione Luigi Nono (1987) Post-Prae-Ludium per Donau per tuba e live electronics Partitura Istruzioni per l esecutore e commenti di G. Schiaffini Schema ambiente esecutivo Indicazioni per la regia del suono Partitura per l esecuzione Estratto della partitura ed. Ricordi 06/06/07 Strumenti software della Musica Informatica - S. Sapir 42
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 06/06/07 Strumenti software della Musica Informatica - S. Sapir 43
Grazie per l attenzione 06/06/07 Strumenti software della Musica Informatica - S. Sapir 44