Informatica applicata alla musica Introduzione a Csound 31/10/2006
description
Transcript of Informatica applicata alla musica Introduzione a Csound 31/10/2006
Informatica applicata alla Informatica applicata alla musicamusica
Introduzione a Introduzione a CsoundCsound
31/10/200631/10/2006
Che cos’è CsoundChe cos’è Csound Software per la sintesi Software per la sintesi digitale diretta del suono.digitale diretta del suono.
Validità stabile.Validità stabile.
Supporti a Csound.Supporti a Csound.
Ottenere suoni con Ottenere suoni con CsoundCsound
Orchestra e partituraOrchestra e partitura
file orchestrafile orchestra
file partiturafile partitura
Programma CsoundProgramma Csound file audio scheda audio amplificatore
Elaborare suoni Elaborare suoni precedentemente precedentemente
campionaticampionati
file orchestrafile orchestra
file partiturafile partituraProgramma CsoundProgramma Csound file audio scheda audio, D/A
file audio registrato
microfono
scheda audio, A/D
amplificatore
Scrivere Scrivere un’orchestraun’orchestra
Header: Header: dà quattro informazioni di dà quattro informazioni di base che tutti gli strumenti dovranno base che tutti gli strumenti dovranno adottare.adottare.
Esempio:Esempio:sr = 44100sr = 44100kr = 4410kr = 4410ksmps = 10ksmps = 10nchnls = 1nchnls = 1
Scrivere Scrivere un’orchestraun’orchestra
Strumenti: Strumenti: costituiscono le varie costituiscono le varie “macchine virtuali” che si vogliono “macchine virtuali” che si vogliono costruire.costruire.
Esempio:Esempio:instrinstr 11
anuovaorcanuovaorc osciloscil 10000, 220, 110000, 220, 1out out anuovaorcanuovaorcendinendin
Scrivere una partitura Scrivere una partitura (score)(score)
Funzioni: Funzioni: servono a creare forme servono a creare forme d’onda di cui possiamo scegliere le d’onda di cui possiamo scegliere le caratteristiche.caratteristiche.
Esempio:Esempio:f1f1 00 40964096 1010 11
Scrivere una partitura Scrivere una partitura (score)(score)
Note: Note: sono composte da sono composte da determinati parametri di cui gli unici determinati parametri di cui gli unici tre obbligatori (p1, p2, p3) sono quelli tre obbligatori (p1, p2, p3) sono quelli che indicano lo strumento che deve che indicano lo strumento che deve suonare, il tempo di attacco e la durata.suonare, il tempo di attacco e la durata.
Esempio:Esempio:i1i1 00 33i1i1 44 22i1i1 66 22
Generazione di Generazione di sinusoidisinusoidi;01_sinusoidi.orc;01_sinusoidi.orc
sr = 44100sr = 44100kr = 4410kr = 4410ksmps = 10ksmps = 10nchnls = 1nchnls = 1
instrinstr 11anuovaorcanuovaorc osciloscil 10000, 220, 110000, 220, 1
out out anuovaorcanuovaorcendinendin
;01_sinusoidi.sco;01_sinusoidi.scof1f1 00 40964096 1010 11i1i1 00 33i1i1 44 22i1i1 66 22
GEN10GEN10 Generazione di un suono complesso Generazione di un suono complesso
composto da cinque sinusoidi in composto da cinque sinusoidi in rapporto armonico.rapporto armonico.f1f1 00 40964096 1010 11 11 11 11 11
Quinta armonica con ampiezza 15 volte Quinta armonica con ampiezza 15 volte maggiore rispetto alla fondamentale.maggiore rispetto alla fondamentale.f1f1 00 40964096 1010 11 11 11 11 1515
Solo quinta armonicaSolo quinta armonicaf1f1 00 40964096 1010 00 00 00 00 11
Cambiare ampiezza e Cambiare ampiezza e frequenzafrequenza
AMPIEZZA E FREQUENZA FISSEAMPIEZZA E FREQUENZA FISSEPER OGNI NOTAPER OGNI NOTA
; 01_sinusoidi.orc; 01_sinusoidi.orcsr = 44100sr = 44100kr = 4410kr = 4410ksmps = 10ksmps = 10nchnls = 1nchnls = 1
instrinstr 11anuovaorcanuovaorc osciloscil 10000, 22010000, 220, 1, 1
out out anuovaorcanuovaorc
endinendin
; ; 01_sinusoidi01_sinusoidi.sco.scof1f1 00 40964096 1010 11i1i1 00 33i1i1 44 22i1i1 66 22
AMPIEZZA E FREQUENZA AMPIEZZA E FREQUENZA DEFINITE PER OGNI NOTADEFINITE PER OGNI NOTA
; 05_cambio_ampfreq.orc; 05_cambio_ampfreq.orcsr = 44100sr = 44100kr = 4410kr = 4410ksmps = 10ksmps = 10nchnls = 1nchnls = 1
instrinstr 11asuoniasuoni osciloscil p4, p5p4, p5, 1, 1
out out asuoniasuoniendinendin
; ; 05_cambio_ampfreq.sco05_cambio_ampfreq.scof1f1 00 40964096 1010 11;p1;p1 p2p2 p3p3 p4p4
p5p5i1i1 00 33 4000040000 110110i1i1 44 22 2000020000 110110i1i1 66 22 1000010000 440440I1I1 99 22 4000040000 440440
PolifoniaPolifonia Gli strumenti Csound sono polifonici Gli strumenti Csound sono polifonici
senza limite di voci.senza limite di voci.
Esempio score:Esempio score:f1f1 00 40964096 1010 11;p1;p1 p2p2 p3p3 p4p4 p5p5i1i1 00 33 70007000 261.625261.625 ;DO;DOi1i1 00 33 70007000 329.627329.627 ;MI;MIi1i1 00 33 70007000 391.995391.995 ;SOL;SOLi1i1 00 33 70007000 466.163466.163 ;SI ;SI
Numero strumentiNumero strumenti
Esempio:Esempio:;orchestra;orchestrasr = 44100sr = 44100kr = 4410kr = 4410ksmps = 10ksmps = 10nchnls = 1nchnls = 1
instrinstr 11aprimoaprimo osciloscil p4, p5, p4, p5, 11
out out aprimoaprimoendinendin
instrinstr 22asecondoasecondo osciloscil p4, p5, p4, p5, 22
out out asecondoasecondoendinendin
;score;scoref1f1 00 40964096 1010 11f2f2 00 40964096 1010 00
11;p1;p1p2p2 p3p3 p4p4 p5p5i1i1 00 33 1000010000 222222i2i2 44 33 1000010000 222222i1i1 88 33 80008000 800800i2i2 1212 33 80008000 800800
Csound non pone limite al numero di strumenti che possono suonare Csound non pone limite al numero di strumenti che possono suonare contemporaneamente.contemporaneamente.
Variabili di controllo: i Variabili di controllo: i glissandiglissandi
Creare eventi sonori che glissano da Creare eventi sonori che glissano da una frequenza ad un’altra all’interno una frequenza ad un’altra all’interno di una nota.di una nota.
Esempio strumento:Esempio strumento: valore iniziale tempovalore iniziale tempo valore finalevalore finaleinstr 1instr 1
kgliskglis lineline 220, p3, 440220, p3, 440a1a1 osciloscil p4, kglis,p4, kglis, 11
outout a1a1endinendin
Variabili di controllo: inviluppi Variabili di controllo: inviluppi di ampiezzadi ampiezza
Creare una dinamica interna al Creare una dinamica interna al suono: inviluppo.suono: inviluppo.
Esempio strumento:Esempio strumento:
instr 1instr 1kenv kenv lineline 0, p3, 100000, p3, 10000a2a2 osciloscil kenv, 220, 1kenv, 220, 1
outout a2a2endinendin
Modalità per gestire Modalità per gestire ampiezza e frequenzaampiezza e frequenza
1.1. Metodo fissoMetodo fisso
2.2. Metodo dipendente da parametri Metodo dipendente da parametri dello scoredello score
3.3. Metodo dipendente da una Metodo dipendente da una variabile di controllovariabile di controllo
Manipolare più segmenti Manipolare più segmenti contemporaneamentecontemporaneamente
L’opcode linseg consente di L’opcode linseg consente di costruire più segmenti consecutivi (a costruire più segmenti consecutivi (a differenza di line che ne genera uno differenza di line che ne genera uno solo).solo).
nella prima metà del tempo globale nella prima metà del tempo globale nella seconda metà del tempo nella seconda metà del tempo
globaleglobale instr1instr1kglissakglissa linseglinseg 800, 800, p3/2p3/2, 1000, , 1000, p3/2p3/2, 400, 400anewanew osciloscil 1500, kglissa, 11500, kglissa, 1
outout anewanewendinendin
Variabili di controllo che Variabili di controllo che giacciono su uno o più giacciono su uno o più
segmenti di esponenzialesegmenti di esponenziale Per avere un glissando più naturale: Per avere un glissando più naturale:
usare un segmento di esponenziale.usare un segmento di esponenziale. line line expon expon
instr 1instr 1kgliskglis exponexpon 220, p3, 440220, p3, 440a1a1 osciloscil p4, kglis, 1p4, kglis, 1
outout a1a1endinendin
Variabili di controllo che Variabili di controllo che giacciono su uno o più giacciono su uno o più
segmenti di esponenzialesegmenti di esponenziale linseg linseg expseg expseg
segmenti di esponenziale per la frequenzasegmenti di esponenziale per la frequenzasegmenti di esponenziale per segmenti di esponenziale per
l’ampiezzal’ampiezza
instr1instr1kglissakglissa expsegexpsegp5, p3/2, p6, p3/2, p7p5, p3/2, p6, p3/2, p7kinvilkinvil expsegexpseg.001, p3/3, 1000, p3/3, 10000, p3/3, .001.001, p3/3, 1000, p3/3, 10000, p3/3, .001anewanew osciloscil kinvil, kglissa, 1kinvil, kglissa, 1
outout anewanewendinendin
Inviluppi con l’opcode Inviluppi con l’opcode linenlinen
Creare inviluppi di ampiezza Creare inviluppi di ampiezza trapezoidali di tipo attacco-costanza-trapezoidali di tipo attacco-costanza-estinzione.estinzione.
tempo di attacco tempo di estinzionetempo di attacco tempo di estinzione
instr 1instr 1kenvkenv linenlinen 10000, .1, p3, .510000, .1, p3, .5a1a1 osciloscil kenv, 440, 1kenv, 440, 1
outout a1a1endinendin
Codifica frequenza in ottave Codifica frequenza in ottave e semitonie semitoni
;strumento;strumentoinstr 1instr 1
ifreq ifreq = = cpspch(p5)cpspch(p5)a1a1 osciloscil p4, ifreq, 1p4, ifreq, 1
outout a1 a1 endinendin
;score;scoref1f1 00 40964096 1010 11;p1;p1p2p2 p3p3 p4p4 p5p5i1i1 00 33 70007000 8.008.00i1i1 00 33 70007000 8.028.02i1i1 00 33 70007000 8.048.04i1i1 00 33 70007000 9.009.00
nome nota
Hz Cpspch
DODO 261.63 8.00DO#DO# 277.18 8.01RERE 293.66 8.02RE#RE# 311.13 8.03MIMI 329.63 8.04FAFA 349.23 8.05FA#FA# 370.00 8.06SOLSOL 392.00 8.07SOL#SOL# 392.00 8.07LALA 440.00 8.09LA#LA# 466.17 8.10SISI 493.86 8.11DODO 523.26 9.00
Codifica ampiezza in Codifica ampiezza in deciBeldeciBel
dBdB valorevalore9090 31622.731622.7
888888 25118.825118.8
66…… ……
…… ……22 1.261.2600 1.001.00
;strumento;strumentoinstr 1instr 1
iamp iamp = = ampdb(p4)ampdb(p4)ifreq ifreq = = cpspch(p5)cpspch(p5)a1a1 osciloscil iamp, ifreq, iamp, ifreq,
11outout a1 a1 endinendin
Notazioni abbreviateNotazioni abbreviate
Note senza pause: ogni nota inizia dove Note senza pause: ogni nota inizia dove termina la precedente (+).termina la precedente (+).
Stesso valore ripetuto (.).Stesso valore ripetuto (.). Valori che variano linearmente (>).Valori che variano linearmente (>).
i1i1 00 11 1000010000 200200i1i1 ++ .. 1000010000 >>i1i1 ++ .. 1000010000 >>i1i1 ++ .. 1000010000 >>i1i1 ++ .. 1000010000 600600
Costanti e variabiliCostanti e variabili Costanti: valori che non cambiano nel Costanti: valori che non cambiano nel
corso dell’esecuzione (sr, kr, sr/kr, …).corso dell’esecuzione (sr, kr, sr/kr, …). Variabili: “cassetti” dove vengono Variabili: “cassetti” dove vengono
depositati i risultati delle operazioni depositati i risultati delle operazioni che seguono:che seguono:• di inizializzazione;di inizializzazione;• di controllo;di controllo;• audio.audio.
Riferimenti utiliRiferimenti utili R.Boulanger, The Csound book,
Cambridge, MIT Press, 2000.
R.Bianchini, A.Cipriani, Il suono virtuale, Roma, ConTempoNet, 2001.
http://www.csounds.comhttp://www.csounds.com