Strumenti di lavoro
Csound (2)
Rappresentazione altezze e frequenze:
Funzioni di conversione delle altezze
| octpch(pch) | Converte un pitch (nota) in un valore di tipo octave point decimal |
| pchoct(oct) | Converte un valore di tipo octave point decimal in un pitch |
| cpspch(pch) | Converte un pitch (nota) in una frequenza assoluta (in Hertz) |
| octcps(cps) | Converte una frequenza in un valore di tipo octave point decimal |
| cpsoct(oct) | Converte un valore di tipo octave point decimal in una frequenza assoluta |
| buzz xamp, xcps, knh, ifn[, iphs] | Oscillazione composta da knh armoniche di uguale ampiezza normalizzata a xamp e frequenza fondamentale xcps della tabella ifn |
| rand xamp[, iseed] | Rumore bianco di ampiezza massima xamp |
| grain xamp, xpitch, xdens, kampoff, kpitchoff, kgdur, igfn, iwfn, imgdur | Forma d'onda di tipo granulare; xamp ampiezza totale, xpitch frquenza del grano, xdens densità (grani al sec), kampoff massima deviazione da xamp, kpitchoff massima deviazione da xpitch, kgdur durata del grano, igfn num. tab. della forma d'onda del grano, iwfn n. tab. inviluppo del grano, imgdur massima durata del grano |
| pluck kamp, kcps, icps, ifn, imeth [, iparm1, iparm2] | Algoritmo di Karplus-Strong; kamp ampiezza massima, kcps passo di scansione del buffer di ritorno, icps frequenza dell'oscillazione, ifn n. tab. forma d'onda di partenza, imeth metodo di decadimento (da 1 a 6) |
| expseg ia, idur1, ib[, idur2, ic[...]] | Come linseg ma usando tratti di esponenziale al posto di segmenti di retta; |
| linen xamp, xamp, idur, idec | Inviluppo trapezoidale di ampiezza xamp, attacco xamp, durata idur, decay idec |
| balance asig, acomp[, ihp, istor] | Normalizza amp. di asig con quelle di un segn. di riferimento acomp |
| reverb asig, krvt[, istor] | Riverberazione di asig per krvt secondi |
| delay asig, idlt[, istor] | Ritarda il segnale asig di idlt secondi |
Esempi
| asrc __ | buzz 10000,440, sr/440, 1 | ; treno di impulsi |
| a1 | reson asrc, 1000,100 | ; filtro passa-banda 1 |
| a2 | reson a1,3000,500 | ; filtro passa-banda 2 |
| afin | balance a2, asrc | ; bilanciamento con il segn. orig. |
| a3 __ | reverb ga1, 1.5 | ; riverbera il contenuto della varisbile globale ga1 |
| out a3 | ; manda in uscita il segnale riverberato | |
| ga1 = 0 | ; svuota ga1 per il prossimo passo |
| soundin ifilcod[, iskptim][, iformat] | Segnale ottenuto caricando i campioni dal file ifilcod |
| outs asig1, asig2 | Uscita stereofonica (su 2 canali) dai segnali asig1 e asig2 |
| outq asig1, asig2, asig3, asig4 | Uscita quadrifonica (su 4 canali) dai segnali asig1, asig2, asig3 e asig4 |
- Carry e ramping per le partiture
| . | Carry: lo stesso valore del campo corrispondente della riga precedente |
| + | Solo per il parametro p2 di un'istruzione i: ottiene il parametro p2 sommando p2 e p3 della riga precedente |
| < | Ramping: interpolazione lineare con il valore del campo corrispondente della riga precedente |
Esempi
| i1 0 1 100 i1 1 1 < i1 2 1 < i1 3 1 400 |
__è equivalente a __ | i1 0 1 100 i1 1 1 200 i1 2 1 300 i1 3 1 400 |
____________ | i1 0 .5 100 i. + . . i. + . . |
__è equivalente a __ | i1 0 .5 100 i1 .5 .5 100 i1 1 .5 100 |
- Altri generatori di Look-up Table
| Numero | Parametri | Significato |
| GEN01 | # time size 1 file skt format ch | Caricamento della tabella con i campioni di un file sonoro (file); gli altri tre parametri vanno messi, di solito, a 0 |
| GEN03 | # time size 3 x1 x2 c0 c1 c2 ... cn | Tabella con i valori di un polinomio di grado n tra x1 e x2 con coefficienti c0, c1, .... |
| GEN20 | # time size 10 wind max opt | Tabella con i valori di finestra standard (da usare con l'operatore grain); wind può essere scelto tra 1 e 9 |
- Esercizi
Modificare "creativamente" i parametri dei seguenti pattern sonori per ottenere suoni "interessanti"
1)
Orchestra
| sr = 22050 | |
| kr = 2205 | |
| ksmps = 10 | |
| nchnls = 1 | |
| ; | |
| instr 1 | |
| iamp __ | = ampdb(p4) |
| kenv | linen iamp,.1,p3,.1 |
| a1 | oscil kenv,p5*p6,1 |
| out a1 | |
| endin |
Score
f 1 0. 4096. 10. 1.
i 1 0. 1. 84. 65.25 1
i 1 + . 84. 65.25 2
i 1 + . 84. 65.25 3
i 1 + . 84. 65.25 4
i 1 + . 84. 65.25 5
i 1 + . 84. 65.25 6
i 1 + . 84. 65.25 7
i 1 + . 84. 65.25 8
i 1 + . 84. 65.25 9
i 1 + . 84. 65.25 10
i 1 + . 84. 65.25 11
i 1 + . 84. 65.25 12
2)
Orchestra
| sr = 22050 | |
| kr = 2205 | |
| ksmps = 10 | |
| nchnls = 1 | |
| ; | |
| instr 2 | |
| iamp | = ampdb(p4) |
| kenv __ | expon iamp,p3,.1 |
| a1 | oscil kenv,p5,1 |
| out a1 | |
| endin |
Score
f 1 0. 8192. 10. 1.
i 1 0. 2. 90. 261
3)
Orchestra
| sr = 22050 | |
| kr = 2205 | |
| ksmps = 10 | |
| nchnls = 1 | |
| ; | |
| instr 3 | |
| idur | = p3/4 |
| iamp | = ampdb(p4) |
| iamp2 | = iamp/2 |
| kamp | linseg 0,idur,iamp,idur,iamp2,idur,iamp2,idur,0 |
| ashap __ | oscil 126,cpspch(p5),1 |
| asig | table ashap,2 |
| out kamp*asig | |
| endin |
Score
f1 0 256 10 1 .5 .3
f2 0 256 3 -1 1 0 1 1 1
i1 0 1 80 8.01
i1 1 . . 8.03
i1 2 . . 8.06
i1 3 . . 8.08
i1 4 . . 8.10
4)
Orchestra
| sr = 22050 | |
| kr = 2205 | |
| ksmps = 10 | |
| nchnls = 1 | |
| ; | |
| instr 4 | |
| idur8 | = p3/8 |
| idur4 | = p3/4 |
| idur2 | = p3/2 |
| iamp | = ampdb(p4) |
| iamp2 __ | = iamp/2 |
| impk | = octpch(p5) |
| kindx | linseg 1,idur8,impk,idur2,impk,idur4,impk/2,idur8,1 |
| kamp | linseg 0,idur4+idur8,iamp,idur2,iamp,idur8,iamp2 |
| asig | foscili kamp,cpspch(p5),1,.785,kindx,1 |
| out asig | |
| endin |
Score
f1 0 256 10 1
i1 0 1.5 80 6.01
i1 1 . . 6.03
i1 2 . . 6.06
i1 3 . . 6.08
i1 4 . . 6.10
i1 5 . . 6.09
i1 6 . . 6.07
i1 7 . . 6.05
i1 8 . . 6.02
i1 9 . . 6.00
5)
Orchestra
| sr = 22050 | |
| kr = 2205 | |
| ksmps = 10 | |
| nchnls = 1 | |
| ; | |
| instr 5 | |
| idur8 | = p3/8 |
| idur2d4 __ | = p3/2+p3/4 |
| ibw | = p5/2 |
| idur2 | = p3/2 |
| iamp | = ampdb(p4) |
| ifmin | = p5*p6 |
| ifmax | = p5*p7 |
| kfreq | linseg ifmin,idur2,ifmax,idur2,ifmin |
| kfreq2 | linseg ifmax,idur2,ifmin*2,idur2,ifmax |
| kamp | linseg 0,idur4+idur8,iamp,idur2,iamp,idur8,iamp2 |
| asig | oscil kamp,p5,1 |
| a1 | reson asig,kfreq,ibw,1 |
| a2 | reson asig,kfreq2,ibw*2,1 |
| out a1+a2/2 | |
| endin |
Score
f1 0 4096 7 0 2048 1 0 -1 2048 0
i1 0 16 88 50 1 10
i1 5 18 . 52 . .
i1 7 10 . 48 . .
i1 10 20 . 51 . .
i1 12 15 . 49 . .
i1 16 10 . 53 . .
6)
Orchestra
| sr = 22050 | |
| kr = 2205 | |
| ksmps = 10 | |
| nchnls = 1 | |
| ; | |
| instr 6 | |
| idur8 | = p3/8 |
| idur2d4 __ | = p3/2+p3/4 |
| ibw | = p5/2 |
| idur2 | = p3/2 |
| iamp | = ampdb(p4) |
| kfreq | linseg p5,idur2,p6,idur2,p5 |
| kamp | linseg 0,idur8,iamp,idur2d4,iamp,idur8,0 |
| asig | soundin "cel_do.wav" |
| afltsig | reson asig,kfreq,ibw,1 |
| ab | balance afltsig,asig |
| out kamp*(ab+.25*asig) | |
| endin |
Score
i1 0 8 12 50 750
i1 6.5 . 11 . 500
i1 13 . . . 700
7)
Orchestra
| instr | 7 | |
| k2 __ | linseg | p5, p3/2, p9, p3/2, p5 |
| k3 | line | p10, p3, p11 |
| k4 | line | p12, p3, p13 |
| k5 | expon __ | p14, p3, p15 |
| k6 | expon | p16, p3, p17 |
| a1 | grain | p4, k2, k3, k4, k5, k6, 1, p6, 1 |
| a2 | linen | a1, p7, p3, p8 |
| out | a2 | |
| endin |
Score
f1 0 4096 10 1
f3 0 4097 20 2 1
i 117 0 5 1000 440 3 1 .1 430 12000 4000 120 50 .01 .05 .1 .01
i 117 6 10 4000 1760 3 5 .1 60 5 200 500 1000 10 20000 1 .01
8)
Orchestra
| instr | 8 | |
| idur | = | p3 |
| iamp | = | ampdb(p4) |
| ifrq | = | cpspch(p5) |
| iatk | = | p6 |
| irel | = | p7 |
| ivibdel | = | p8 |
| imoddpt __ | = | p9 |
| imodfrq | = | p10 |
| iharm | = | p11 |
| kenv | linen | iamp, iatk, idur, irel |
| kvibenv | linseg __ | 0, ivibdel, 1, idur-ivibdel, .3 |
| klfo | oscil | kvibenv*imoddpt, imodfrq, 1 |
| asig | buzz | kenv, ifrq+klfo, iharm, 1 |
| out | asig | |
| endin |
Score
f 1 0 4096 10 1
i 126 0 2.2 70 6.09 .1 .3 1 6 5 10
i 126 2 2.2 73 6.11 .2 .4 .5 5 6 9
i 126 4 2.2 77 7.01 .01 .5 .8 4 5 12
i 126 6 2.2 80 7.02 .3 .3 1.6 7 7 6
i 126 8 6.2 70 6.04 1.5 .3 2 6 4.7 8
i 126 8 6.2 73 6.08 .9 .4 1.5 5 6 11
i 126 8 6.2 77 6.11 3.01 .5 .18 4 5 5
i 126 8 6.2 80 7.04 2.4 .3 3.6 5.3 5.6 7
Verificare visivamente con un programma di wave editing le forme d'onda e gli spettri dei suoni creati con gli operatori di sintesi di Csound
Costruire dei suoni simili a campane usando il metodo di sintesi FM (modulazione di frequenza)
Creare delle "melodie" usando come note dei brevi file sonori esterni
Creare melodie usando l'algoritmo di Karplus-Strong per imitare uno strumento a corde pizzicate
| Home | Precedente |