Sintesi sottrattiva con Csound – Rumore bianco filtrato (con qualche trucco).

Lavorando con Csound su una delle tecniche “storiche”.
2 sono i parametri principali:

  • La sorgente: rumore di qualsiasi tipo/colorazione, treno di impulsi, etc…
  • Il tipo di filtro: passa alto, passa banda, etc…

E’ ovvio che sia la sorgente che il tipo di filtro possono essere tempo-varianti, per questioni di semplicità ho optato per sorgente e filtri invarianti nel tempo.
La sorgente è un generatore di rumore bianco, i filtri sono dei passa banda.
Allego due esempi ottenuti dalla stessa orchestra cambiando un solo parametro della score: la larghezza di banda del filtro:

  • Banda larga: rumore variamente “colorato”.
  • Banda stretta:  quasi note dal timbro simile a organo a canne. (Consideriamo che in linea teorica si può restringere la banda fino ad ottenere la singola sinusoide, è possibile tramite più filtri in cascata, ma non era questo il mio scopo, se voglio una sinusoide uso la GEN10…)

banda_larga

banda_stretta

Un’occhiata al file.
Vi consiglio di fare un “copy and paste” su un editor di Cosund per avere evidenziata la sintassi e leggerlo più comodamente.
Ogni nota è formata dalla fondamentale + le 2 armoniche successive…si lo ammetto non è solo sintesi sottrattiva, c’è anche della sintesi additiva!
Il centro di banda di ciascun parziale varia secondo un generatore random interpolato che lo fa leggermente oscillare, il generatore random è diverso per ciascun parziale, come la larghezza di banda è diversa per ciascun parziale.
Vi starete chiedendo perché: un generatore casuale non è mai completamente casuale, la sequenza si ripete, sia che usiate l’opcode  rand che l’opcode noise avvertirete una ciclicità nelle fluttuazioni di rumore, ecco perché ho deciso di variare in maniera pseudo-random il centro banda.
Il terzo parametro dell’opcode randi se impostato su  un valore maggiore o uguale a 2 fa in modo che ogni volta generi una frequenza pseudo-random differente, in questo modo ad ogni rendering avremo delle micro oscillazioni diverse del timbro.

NOTA PER IL RENDERING:
Nella orchestra ho usato il parametro kcontrollabanda che mi legge un fader di una GUI (io uso abitualmente Qute-Csound), programmatevi un piccolo slider, oppure mandatemi una mail se desiderate il file con slider compreso.

Per un rendering corretto cancellare le parti in rosso e otterrete il file: banda_stretta.mp3

Buona musica.
Stefano.

<CsOptions>
</CsOptions>

<CsInstruments>

sr = 44100
kr = 4410
ksmps = 10
nchnls = 2
0dbfs = 1

instr Soprano_1

arumore1 rand 0.3, 0.5, 3
arumore2 rand 0.3, 0.5, 2
arumore3 rand 0.3, 0.5, 4

krand1 randi 1.6, 6, 2
krand2 randi 1.2, 4, 3
krand3 randi 1.8, 8, 4

kcontrollobanda invalue “banda”

ifreq = cpspch (p4)
iband = p5
afiltrobp1 reson arumore1, ifreq+krand1, iband*kcontrollobanda, 2
afiltrobp2 reson arumore2, (2*ifreq)+krand2, 0.43*iband*kcontrollobanda, 2
afiltrobp3 reson arumore3, (3*ifreq)+krand3, 0.36*iband*kcontrollobanda, 2

kenvelope linseg 0, (0.1*p3), 2*p6, p3 – ((0.1*p3) + (0.1*p3)), 2*p6, 0.1*p3, 0

outch 1, (afiltrobp1 + (0.36*afiltrobp2) + (0.012*afiltrobp3)) * kenvelope
outch 2, (afiltrobp1 + (0.35*afiltrobp2) + (0.013*afiltrobp3)) * kenvelope

endin

</CsInstruments>
<CsScore>

t 0 30

i “Soprano_1” 0 12 6.07 0.21 0.214

i “Soprano_1” 0 6 9.07 0.812 0.052
i “Soprano_1” 0 6 9.02 0.581 0.073

i “Soprano_1” 0 3 8.07 0.131 0.2
i “Soprano_1” 0 3 8.02 0.11 0.14

i “Soprano_1” 3 3 7.04 0.11 0.32
i “Soprano_1” 3 3 7.06 0.51 0.21

i “Soprano_1” 6 6 10.03 0.11 0.2
i “Soprano_1” 6 6 10.00 0.11 0.11

i “Soprano_1” 6 3 8.05 0.131 0.2
i “Soprano_1” 6 3 8.02 0.11 0.14

i “Soprano_1” 9 3 7.08 0.11 0.32
i “Soprano_1” 9 3 7.01 0.51 0.21

i “Soprano_1” 9 3 12.06 0.11 0.011
i “Soprano_1” 9 3 15.03 0.51 0.059

e

</CsScore>
</CsoundSynthesizer>



Condividi su:
  • PDF
  • Print
  • Add to favorites
  • Facebook
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Ping.fm

Tags: , ,

I commenti sono chiusi.

Arichivio