Strumenti software per la generazione e l’elaborazione...

44
Strumenti software per la generazione e l’elaborazione in tempo reale del segnale musicale Sylviane Sapir Conservatorio “O. Respighi” Latina Email: [email protected]

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

06/06/07 Strumenti software della Musica Informatica - S. Sapir 44

Grazie per l’attenzione