Introducción a la síntesis sonora con C-sound

.

http://sonologia.blogspot.com/


Elaborado por
 ANTONIO GIMENEZ para la democratización de las ARTES DIGITALES. 

contacto:
  antogime@yahoo.com

C-sound esta considerado el sofware que usan los duros y puristas de la síntesis sonora...
Es muy simple; Este programa no requiere de instalacion...para compilar necesita la elaboración de dos archivos: 1-Orquesta (que es un patch de generadores de sonido) y 2-score (que es un archivo de control). Estos dos archivos se hacen en un editor de texto tipo wordpad y se introducen en la aplicacion...
descarguenlo en esta direccion: http://csounds.com/downloads
A PROGRAMAR!!!
No se desanimen a la primera...
SUERTE!!!

 

Sintaxis del fichero orquesta (.orc)

el fichero ".orc" consta de dos partes

-la cabecera:

es la configuración de las propiedades del audio que se va a generar.

ejemplo de cabecera para trabajar en formato CD-audio:

 

sr=44100

kr=4410

ksmps=10

nchnls=1 (si es mono o 2 si es stereo)

 

-los Instrumentos: contienen los módulos para hacer el proceso de síntesis

Estructura general:

-nombre del instrumento

-salida+opcode(modulo de síntesis)+argumentos (separados por comas). cada opcode tiene sus propios  argumentos.

-salida

-fin (endin)

 

ejemplo:

salida  opcode     amplitud   frcuencia    forma de onda (funcion "fn" del score)

a1        oscil        10000,         440,                    1

 

 

 

Cuando los opcodes son un poco mas complejos se deben "declarar" al principio del instrumento (si son de valor fijo con su numero y si son variables con su p-field respectivo) y después encadenarse con los otros módulos.

hay tres tipos de variables:

tipo i : parámetros en general y notas.

tipo k : envolventes y señales de baja resolución (como un "lfo")

tipo a: variables de alta resolución 

 

 

Esta declaración de los p-fields es a manera ilustrativa ya que no es necesaria por lo simple del instrumento:

 

instr 107

idur=p4

iamp=p5

ifreq=p5

ifun=p6

a1 oscil p4, p5, p6

  out a1

  endin  

 

 

Sintaxis del fichero score ".sco"

 

El fichero score tiene dos partes:

Las tablas de forma de onda:

Numero de tabla, punto de inicio, resolución, rutina del GEN, otros parámetros propios del GEN utilizado.

 

Ejemplo:

f1 0 4096 10 1

 

Lista de notas:

son los llamados p-fields. los tres primeros son fijos (numero de instrumento, comienzo y duración), los demás tienen que estar declarados en la orquesta.

 

ejemplo:

;inst start duration   p4         p5     p6

i107    0        1      10000    440     1

i107    1.5      1     20000    220     2

i107    3        3      10000    110     2

i107    3.5     2.5    10000   138.6   2

i107    4        2       5000    329.6   2

i107    4.5     1.5    6000     440     2

 

e

 

---------------------------------------------------------------------------------------------------------------

 

 

instr 101 ; Oscilador Simple

Argumentos: amplitud, frecuencia, forma de onda

instrumento de la orquesta

instr 101

a1 oscil 10000, 440, 1

  out a1

  endin

 

ejemplo de score

f 1 0 4096 10 1

; inst  start duration

 i 101   0        3

 

-------------------------------------------------------------------------------------------

 

instr 102 ; Modulo Simple para FM

Argumentos: amplitud, frecuencia, control de frecuencia portadora, control de freq de modulación, índice de modulación (de 0 a 4), forma de onda.

 

instrumento de la orquesta

instr 102

 

a1 foscil 10000, 440, 1,2, 3, 1

  out a1

  endin

 

ejemplo de score

f 1 0 4096 10 1

 

;inst  start duration

i 102   0        3

 

 

--------------------------------------------------------------------------------------------

instr 103 ; Modulo  BUZZ Simple

argumentos: amplitud, frecuencia, numero de armónicos requeridos (1 por defecto), forma de onda.

Instrumento de la orquesta

instr 103

a1 buzz 10000, 440, 10, 1

  out a1

  endin

 

ejemplo de score

f 1 0 4096 10 1

 

;inst  start duration

i 103    0       3

 

-----------------------------------------------------------------------------------------------

 

instr 104 ; Modulo PLUCK simple

Argumentos: amplitud, frecuencia, buffer, forma de onda, método de decay(1 a 6 tipos de decay).

instrumento de la orquesta

instr 104

a1 pluck 10000, 440, 440, 2, 1

  out a1

  endin

 

ejemplo de score

f 2 0 4096 10 1 .5 .333 .25 .2 .166 .142 .125 .111 .1 .09 .083 .076 .071 .066 .062

 

; inst start duration

i 104    0       3

 

-------------------------------------------------------------------------------------------------

 

instr 105 ; Modulo Granular Simple

 

Argumentos: amplitud, frecuencia, densidad de granos por segundo, máxima amplitud del amp, máxima frecuencia del pitch, duración de granos, forma de onda, forma de onda para controlar la envolvente de amplitud de los granos, máxima duración de granos.

 

instrumento de la orquesta

instr 105

a1 grain 10000, 440, 55, 10000, 2, .05, 1, 3, 1

  out a1

  endin

 

 

ejemplo de score

f 1 0 4096 10 1

f 3 0 4097 20 2 1

 

 

; inst start duration

i 105    0       3

 

 

---------------------------------------------------------------------------------------------------

 

instr 107 ; Modulo Oscil controlado desde el Score

 

instrumento de la orquesta

instr 107

a1 oscil p4, p5, p6

  out a1

  endin  

 

 

 

ejemplo de score

f1 0 4096 10 1

f2 0 4096 10 1 .5 .333 .25 .2 .166 .142 .125 .111 .1 .09 .083 .076 .071 .066 .062

 

;inst start duration   p4         p5     p6

i107    0        1      10000    440     1

i107    1.5      1     20000    220     2

i107    3        3      10000    110     2

i107    3.5     2.5    10000   138.6   2

i107    4        2       5000    329.6   2

i107    4.5     1.5    6000     440     2

 

 

-----------------------------------------------------------------------------------------------------

 

 

instr 108 ; Modulo Simple FM Controlado desde el Score

 

instrumeto de la orquesta

instr 108

a1 foscil p4, p5, p6, p7, p8, p9

  out a1

  endin

 

ejemplo de  score

f1 0 4096 10 1

f2 0 4096 10 1 .5 .333 .25 .2 .166 .142 .125 .111 .1 .09 .083 .076 .071 .066 .062

 

 

;inst start duration   p4       p5     p6   p7    p8  p9

i108    0       1      10000   440      1    2      3    1

i108   1.5     1       20000  220      1   13      8    1

i108    3       3       10000  110      1    1      13   1

i108   3.5    2.5      10000  130.8   1   2.001  8   1

i108     4      2         5000   329.6  1   3.003  5    1

i108    4.5   1.5       6000     440   1   5.005  3    1

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Aplicando envolventes:

 

 

Hay varios tipos de opcodes para hacer envolventes, los principales son:

line ia, idur1, ib (aplica una linea recta de idur segundos entre ia e ib puntos).

linen xamp, irise, idur, idec (amplitud maxima, attack time ,duracion total, release time)

linseg ia, idur1, ib [, idur2] [, ic] [...] genera una serie de segmentos lineales, primer entre ia e ib en idur1 segundos, después los siguientes a partir de ib hasta  ic en idur2 segundos, etc...

ejemplo:

linseg 0, 0.01, 1, 0.1, 0.5, idur-0.11, 0

explicacion: comienza en 0 seg, va de 0 a 1 en 0.01 seg, va de 1 a 0.5 en 0.1 seg, va de 0.5 a 0 en i-dur menos 0.11.

 

--------------------------------------------------------------------------------------------------------

 

instr 113 ; Oscilador Simple con Envolvente

Usando la envolvente de dos segmentos (ataque y caida) "linen"

 

instrumeto de la orquesta

instr 113

k1 linen p4, p7, p3, p8 ; p3=dur, p4=amp, p7=attack, p8=release

a1 oscil k1, p5, p6 ; p5=freq, p6=forma de onda

  out a1  

  endin    

 

ejemplo de score

f1 0 4096 10 1

f2 0 4096 10 1 .5 .333 .25 .2 .166 .142 .125 .111 .1 .09 .083 .076 .071 .066 .062

 

;ins strt  dur    p4(amp) p5(frq)     p6(fn)  p7(atk)   p8(rel)

i113   0    2    10000       440         1          1          1

i113  2.5  2    10000       220         2          .01      1.99

i113   5    4    10000       110         2          3.9       .1

i113  10  10   10000        138.6      2          9           1

i113  10  10   10000         329.6     1           5          5

i113  10  10    10000        440        1           1          9

 

---------------------------------------------------------------------------------------------------------

 

 instr 115 ; Modulo BUZZ con Envolvente

 

instrumento de orquesta

intr 115

k1 linen p4, p7, p3, p8

k2 expon p9, p3, p10

a1 buzz 1, p5, k2+1, p6

  out k1*a1

  endin  

 

ejemplo de score

 

f 1 0 4096 10 1

 

;ins    strt    dur    p4(amp)     p5(frq)      p6(fn)    p7(atk)     p8(rel)  p9(#harm1)  p10(#harm2)

i 115    0       3    10000         440             1         1            1            30                  2

i 115   4.5     3     10000        220             1         2      .      1             2                 30

i 115     8       3    10000       110              1        .01          .01           20                6

i 115     12    10    10000      130.8            1        .01          .01             1               15

i 115     12    10    10000       311.1           1         8             1             33                2

i 115     12     10   10000        440             1         5             .5              3               11

 

 

----------------------------------------------------------------------------------------------------------

 

instr 117 ; Modulo Granular con Envolvente

 

 

instrumento de orquesta

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  

  

 

ejemplo de score

f1 0 4096 10 1

f3 0 4097 20 2 1

 

; ins strt dur   p4(amp)   p5(frq)   p6(fn) p7(atk) p8(rel) p9(bend) p10(dens1) p11(dens2) p12(ampof1) p13(ampof2) p14(pchof1) p15(pchof2) p16(gdur1) p17(gdur2)

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

 

 

-------------------------------------------------------------------------------------------------------------------------------------------

instr 99; reverberador

Argumentos:  nreverb asig (senal de entrada), ktime (tiempo de reverberacion de 0 a ....), khdif (color de la reverberacion de 0 a 1)

 

la reverb funciona como un envío a la manera de  un auxiliar de una consola de audio analógica y este procedimiento es  llamado variable global de audio "ga".

pasos a seguir:

inicialización en la cabecera

 

sr=44100

kr=4410

ksmps=10

nchnls=1 (si es mono o 2 si es stereo)

ga  init 0  (inicializacion de la reverb)

 

-numero de instrumento cualquiera

-opcodes

 

ga = ga + asign * irev ;tomar senal de audio y la envia a la reverb.

 

outs asign

 

endin

 

 

después del ultimo instrumento:

instr 99

irevtime = 2.0 ;(reverb time-numero o p-field)

idec = 0.5 ;(reverb color-numero o p-field)

arev  nreverb ga, irevtime, idec ; reverberacion

out  arev ;salida de la senal reverberada

ga = 0 ;limpiar la reverb

endin

 

nota: al final del score se tiene que hacer referencia al instr 99  de esta manera:

i99  0  x; evento de reverberacion que comienza en 0 y termina en el tiempo total de la pieza mas la irevtime

 

ejemplo del uso del instr 99:

 

 

ORCHESTRA

sr = 44100

kr = 4410

ksmps = 10

nchnls = 1

ga init 0 ; inicialización a cero

 

instr 1

idur = p3

iamp = p4

ifreq = p5

itable = p6

irev = p7

kenv linseg 0, 0.01, 1, 0.1, 0.5, idur-0.11, 0

asig oscil iamp, ifreq, itable

asign = asig * kenv

ga = ga + asign * irev ; envian senal a la reverb

out asign

endin

 

instr 99 ; modulo de reverberacion

irevtime = 2.0

idec = 0.5

arev  nreverb ga, irevtime, idec ; toman la senal

out arev ; salida de la senal reverberada

ga = 0 ; limpian la reverb

endin

 

 

SCORE

 

f1 0 4096 10 1

f2 0 4096 10 1 0.5 0.3 0.2 0.1

f3 0 4096 10 1 0.3 0.2 0.15 0.1 0.05 0.02 0.01

;ins start dur  p4(amp)   p5(freq)  p6(f_table)     p7(reverb-amount)

 i1     0     5    4000           440         1                        0.5

i1     5      8   4000            500         2                        1

i1     13     5    4000           800         3                        1

 

i99 0 20 ;evento de reverberacion

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                          
Hoy habia 1 visitantes (3 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis