Strumenti di lavoro

 

Csound (2)

 

- Convertitori di pitch

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

>>

 

 

 

 

 

 

- Altri operatori di sintesi

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

>>

 

 

 

 

 

- Operatori di modifica

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

>>

 

 

 

 

 

- Input/Output esterno

 

 

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