250 likes | 438 Views
Informatica applicata alla musica Introduzione a Csound 31/10/2006. Che cos’è Csound. Software per la sintesi digitale diretta del suono. Validità stabile. Supporti a Csound. Ottenere suoni con Csound. file orchestra. Programma Csound. file audio. scheda audio. amplificatore.
E N D
Informatica applicata alla musicaIntroduzione a Csound31/10/2006
Che cos’è Csound Software per la sintesi digitale diretta del suono. Validità stabile. Supporti a Csound.
Ottenere suoni con Csound file orchestra Programma Csound file audio scheda audio amplificatore Orchestra e partitura file partitura
Elaborare suoni precedentemente campionati microfono scheda audio, A/D file audio registrato file orchestra Programma Csound file audio scheda audio, D/A amplificatore file partitura
Scrivere un’orchestra Header: dà quattro informazioni di base che tutti gli strumenti dovranno adottare. Esempio: sr = 44100 kr = 4410 ksmps = 10 nchnls = 1
Scrivere un’orchestra Strumenti: costituiscono le varie “macchine virtuali” che si vogliono costruire. Esempio: instr 1 anuovaorc oscil 10000, 220, 1 out anuovaorc endin
Scrivere una partitura (score) Funzioni: servono a creare forme d’onda di cui possiamo scegliere le caratteristiche. Esempio: f1 0 4096 10 1
Scrivere una partitura (score) Note: sono composte da determinati parametri di cui gli unici tre obbligatori (p1, p2, p3) sono quelli che indicano lo strumento che deve suonare, il tempo di attacco e la durata. Esempio: i1 0 3 i1 4 2 i1 6 2
Generazione di sinusoidi ;01_sinusoidi.orc sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 instr 1 anuovaorc oscil 10000, 220, 1 out anuovaorc endin ;01_sinusoidi.sco f1 0 4096 10 1 i1 0 3 i1 4 2 i1 6 2
GEN10 • Generazione di un suono complesso composto da cinque sinusoidi in rapporto armonico. f1 0 4096 10 1 1 1 1 1 • Quinta armonica con ampiezza 15 volte maggiore rispetto alla fondamentale. f1 0 4096 10 1 1 1 1 15 • Solo quinta armonica f1 0 4096 10 0 0 0 0 1
Cambiare ampiezza e frequenza • AMPIEZZA E FREQUENZA DEFINITE PER OGNI NOTA ; 05_cambio_ampfreq.orc sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 instr 1 asuoni oscil p4, p5, 1 out asuoni endin ; 05_cambio_ampfreq.sco f1 0 4096 10 1 ;p1 p2 p3 p4 p5 i1 0 3 40000 110 i1 4 2 20000 110 i1 6 2 10000 440 I1 9 2 40000 440 • AMPIEZZA E FREQUENZA FISSE PER OGNI NOTA ; 01_sinusoidi.orc sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 instr 1 anuovaorc oscil 10000, 220, 1 out anuovaorc endin ; 01_sinusoidi.sco f1 0 4096 10 1 i1 0 3 i1 4 2 i1 6 2
Polifonia • Gli strumenti Csound sono polifonici senza limite di voci. Esempio score: f1 0 4096 10 1 ;p1 p2 p3 p4 p5 i1 0 3 7000 261.625 ;DO i1 0 3 7000 329.627 ;MI i1 0 3 7000 391.995 ;SOL i1 0 3 7000 466.163 ;SI
Numero strumenti • Csound non pone limite al numero di strumenti che possono suonare contemporaneamente. Esempio: ;orchestra sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 instr 1 aprimo oscil p4, p5, 1 out aprimo endin instr 2 asecondo oscil p4, p5, 2 out asecondo endin ;score f1 0 4096 10 1 f2 0 4096 10 0 1 ;p1 p2 p3 p4 p5 i1 0 3 10000 222 i2 4 3 10000 222 i1 8 3 8000 800 i2 12 3 8000 800
Variabili di controllo: i glissandi • Creare eventi sonori che glissano da una frequenza ad un’altra all’interno di una nota. Esempio strumento: valore iniziale tempovalore finale instr 1 kglis line 220, p3, 440 a1 oscil p4, kglis, 1 out a1 endin
Variabili di controllo: inviluppi di ampiezza • Creare una dinamica interna al suono: inviluppo. Esempio strumento: instr 1 kenv line 0, p3, 10000 a2 oscil kenv, 220, 1 out a2 endin
Modalità per gestire ampiezza e frequenza • Metodo fisso • Metodo dipendente da parametri dello score • Metodo dipendente da una variabile di controllo
Manipolare più segmenti contemporaneamente • L’opcode linseg consente di costruire più segmenti consecutivi (a differenza di line che ne genera uno solo). nella prima metà del tempo globale nella seconda metà del tempo globale instr1 kglissa linseg 800, p3/2, 1000, p3/2, 400 anew oscil 1500, kglissa, 1 out anew endin
Variabili di controllo che giacciono su uno o più segmenti di esponenziale • Per avere un glissando più naturale: usare un segmento di esponenziale. • line expon instr 1 kglis expon 220, p3, 440 a1 oscil p4, kglis, 1 out a1 endin
Variabili di controllo che giacciono su uno o più segmenti di esponenziale • linseg expseg segmenti di esponenziale per la frequenza segmenti di esponenziale per l’ampiezza instr1 kglissa expseg p5, p3/2, p6, p3/2, p7 kinvil expseg .001, p3/3, 1000, p3/3, 10000, p3/3, .001 anew oscil kinvil, kglissa, 1 out anew endin
Inviluppi con l’opcode linen • Creare inviluppi di ampiezza trapezoidali di tipo attacco-costanza-estinzione. tempo di attacco tempo di estinzione instr 1 kenv linen 10000, .1, p3, .5 a1 oscil kenv, 440, 1 out a1 endin
Codifica frequenza in ottave e semitoni ;strumento instr 1 ifreq = cpspch(p5) a1 oscil p4, ifreq, 1 out a1 endin ;score f1 0 4096 10 1 ;p1 p2 p3 p4 p5 i1 0 3 7000 8.00 i1 0 3 7000 8.02 i1 0 3 7000 8.04 i1 0 3 7000 9.00
Codifica ampiezza in deciBel ;strumento instr 1 iamp = ampdb(p4) ifreq = cpspch(p5) a1 oscil iamp, ifreq, 1 out a1 endin
Notazioni abbreviate • Note senza pause: ogni nota inizia dove termina la precedente (+). • Stesso valore ripetuto (.). • Valori che variano linearmente (>). i1 0 1 10000 200 i1 + . 10000 > i1 + . 10000 > i1 + . 10000 > i1 + . 10000 600
Costanti e variabili • Costanti: valori che non cambiano nel corso dell’esecuzione (sr, kr, sr/kr, …). • Variabili: “cassetti” dove vengono depositati i risultati delle operazioni che seguono: • di inizializzazione; • di controllo; • audio.
Riferimenti utili • R.Boulanger, The Csound book, Cambridge, MIT Press, 2000. • R.Bianchini, A.Cipriani, Il suono virtuale, Roma, ConTempoNet, 2001. • http://www.csounds.com