.
http://sonologia.blogspot.com/
Elaborado por ANTONIO GIMENEZ para la democratización de las ARTES DIGITALES.
contacto:
antogime@yahoo.com
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