Strumenti software per l`elaborazione e la generazione in real
Transcript
Strumenti software per l`elaborazione e la generazione in real
Strumenti software per la generazione e l’elaborazione in tempo reale del segnale musicale Sylviane Sapir Conservatorio “O. Respighi” Latina Email: [email protected] 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 Composizione automatica Suoni (DSP) Sintesi Aiuto alla composizione Editoria musicale 06/06/07 Effetti Analisi Esecuzione Automatica (sequencer) Teoria Analisi musicologica Interpretazione partiture Installazioni Improvvisazioni Strumenti software della Musica Informatica - S. Sapir Strumenti Sensori, interfacce Filologia Industria spettacolo strumenti musicali Audio, Web, … 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” Gli anni ‘60: il periodo del “Voltage Control” Groupe de Recherche Musicale (GRM) – Paris, Westdeutscher Rundfunk (WDR) – Köln, Studio di Fonologia della RAI – Milano Musica acusmatica, elettronica, tape music 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, … Gli anni ‘80: Sintetizzatori commerciali e MIDI Università e centri di ricerca (Bell labs., CCRMA, MIT, CSC, …) Nascita di centri specializzati (IRCAM, Tempo Reale, ZKM, …) 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… 06/06/07 Sviluppo di Internet, tecnologie digitali per l’elaborazione di immagini e video, performance multimediali e multimodali, performance in rete, … 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 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 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 puntatore in scrittura Modulo 1 Array Principio di funzionamento 06/06/07 Pass1 – verifica sintatica Pass2 – ordinamento temporale Pass3 – calcolo campioni Modulo 2 puntatore in lettura Interconnessione fra moduli tramite area dati condivisa 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 06/06/07 Tabella contenente i dati Colonna: micro evento (1 campo) Righe: macro evento {n campi} Campi riservati dal sistema P1 P2 P3 … Strumenti software della Musica Informatica - S. Sapir 11 Csound - Segnali e collegamento tra blocchi Segnali audio Segnali di controllo Calcolati alla frequenza sr (samping rate) Identificati da variabili che iniziano con a (audio) 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 argument A B result 06/06/07 Strumenti software della Musica Informatica - S. Sapir 12 Csound - Sessione di lavoro 1. 2. 3. 4. 5. 06/06/07 Progettazione a tavolino Schema a blocchi degli strumenti Codifica mediante editor di testo Compilazione e rendering con una versione di Csound Ascolto con programma audio utilitario e debug se necessario Strumenti software della Musica Informatica - S. Sapir 13 Csound - Esempio Problema musicale Timbro: “organo” 06/06/07 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) 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 ; ins T0 dur amp i 1 0 2 5000 i 1 0 1 4000 i 1 1 1 6000 i 1 2 1 7000 i 1 3 1 3000 e 06/06/07 p5 freq 262 329 392 440 392 p6 p7 p8 fun att dec 1 0.2 0.5 . 0.1 0.3 . . . . . . . . . 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) 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 Composizione automatica Suoni (DSP) Sintesi Aiuto alla composizione Editoria musicale 06/06/07 Effetti Analisi Teoria Esecuzione Automatica (sequencer) Analisi musicologica Interpretazione partiture Installazioni Improvvisazioni Strumenti software della Musica Informatica - S. Sapir Strumenti Sensori, interfacce Filologia Industria spettacolo strumenti musicali Audio, Web, … 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: 06/06/07 IRCAM: 4A, 4B, … 4X (1978…1986) Stanford University: Samson Box (1979) Iris (Bontempi/Farfisa): MARS (1992) Strumenti software della Musica Informatica - S. Sapir 20 Musica informatica e tempo reale oggi Le macchine dedicate le macchine generiche (G.P.) sono diventate troppo costose e complesse da gestire 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 Introduzione di priorità funzionali 06/06/07 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 Distinzione fra flussi audio e flussi di controllo: le funzioni di controllo hanno una priorità più bassa rispetto a quelle audio 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 Un ritardo nel calcolo implica l’eventuale perdita di campioni in ingresso o l’interruzione del flusso di campioni in uscita Limita la complessità dei calcoli, il numero di voci (polifonia)… Produce dei rumori indesiderati (clic) Sviluppo software multi-piattaforma 06/06/07 Funzioni DSP Interfaccia Utente (Programmazione) Controllo in tempo reale (Performance) 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 Connessioni 06/06/07 Message Object Number Flusso audio ~ Messaggi 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 06/06/07 Da menu Put Da short-cut: [ctrl] + [1], [ctrl] + [2], … [alt] + [b], [alt] + [v], … Strumenti software della Musica Informatica - S. Sapir 26 PD - Object boxes Classe o tipo Definito da atomi - (testo) Inlet Ingressi e uscite Argomento alla creazione Outlet 06/06/07 Trasmissione dati e messaggi Oggetti di controllo: NomeClasse Classe Serie di argomenti 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 Strumenti software della Musica Informatica - S. Sapir 27 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 06/06/07 Stringhe di caratteri alfanumerici, numeri, lista di numeri 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 06/06/07 Numeri, potenziometri, pulsanti, display, … Strumenti software della Musica Informatica - S. Sapir 29 PD - Gestione messaggi Messaggio mezzo di comunicazione fra oggetti di PD, contiene: Ordine di trasmissione tra oggetti Dall’alto verso il basso Ingressi caldi e freddi – ordine in ricezione Selector o simbolo non numerico senza spazio o virgola (float, bang, symbol, list, …) Serie di argomenti (simboli o numeri separati da spazi, virgola o ;) 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 Array Lista di numeri Contenitore di campioni audio o di funzioni, creati come subpatch in forma di Graph Structure e template Riconoscibili dal simbolo $ Sostituiti da valori provenienti da lista di argomenti di altri messaggi 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 06/06/07 MIDI, OSC, TCP/IP Strumenti software della Musica Informatica - S. Sapir 32 PD - Esempio Oscillatore Polifonia Tecnica Strumenti software della Musica Informatica - S. Sapir Frequenza Forma d’onda Volume Conversione freq 06/06/07 Table lookup Controlli Monofonico Midi -> Hz 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 Analisi, mappamento, sincronizzazione DSP Suono Dispositivi di cattura del gesto Dispositivi di elaborazione numerica del segnale Sistema di relazioni tra gesto e suono 06/06/07 Sensori Analisi e estrazione dei parametri gestuali Sistema arbitrario di mappamento tra parametri gestuali e parametri sonori Meccanismo di sincronizzazione Strumenti software della Musica Informatica - S. Sapir 35 Interfacce e dispositivi di controllo Quali dispositivi di controllo adoperare? Tradizionali Innovativi 06/06/07 Familiarità & abilità/tecnica dell’esecutore Virtuosismi Nuova gestualità e gesti semplici Ergonomia, flessibilità, programmabilità Spettacolarità e espressività estesa Strumenti software della Musica Informatica - S. Sapir 36 Dispositivi di controllo Laptop performance Joystick Mouse Tastiera Tavoletta grafica Performance con dispositivi MIDI o simili 06/06/07 Console di potenziometri e pulsanti Strumenti (tastiere, breath controller, pad, chitarre) Dispositivi innovativi costruiti su misura Strumenti software della Musica Informatica - S. Sapir 37 Esempi di sensori Forza/Pressione Movimento 06/06/07 Spazio sensorizzato Telecamere Strumenti software della Musica Informatica - S. Sapir 38 Le tipologie del gesto nel Live Electronics Gesti strumentali Diretto Indiretto Strumento acustico 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 06/06/07 Gesto diretto Partitura Evento sonoro Gesto di controllo Gesto indiretto Strumenti software della Musica Informatica - S. Sapir Ambiente esecutivo Evento sonoro 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 06/06/07 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 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 06/06/07 Numero dei microfoni; 1 Numero di diffusori: 4 Configurazione del mixer Schema dei collegamenti Controlli musicali remoti 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 Pure Data Elaborazione del suono e dell’immagine in tempo reale Sintesi con tecnica sottrattiva Analisi del segnale ed estrazione di parametri acustici per il controllo della sintesi Max/Msp 06/06/07 Esempio di sonificazione Strumenti software della Musica Informatica - S. Sapir 43 Grazie per l’attenzione 06/06/07 Strumenti software della Musica Informatica - S. Sapir 44