[EMAIL PROTECTED] (Pedro Kröger) writes:
> para quem tiver mais interesse sobre musica e codigo, um bom lugar para
> visitar é o linux-sound [3], especialmente a seção "Software Sound
> Synthesis & Music Composition Packages".
algumas linguagens para composição interessantes:
csound [1] provavelmente a linguagem para síntese sonora por
software mais poderosa que existe. o csound vem da
linhagem do Music I, a primeira linguagem para
musica, feita na década de 60! um exemplo da
linguagem:
----------------------------------------------------------------------
instr 138 ;sweeping fm with vibrato & discrete pan
idur = p3
iamp = ampdb(p4)
ifrq = cpspch(p5)
ifc = p6
ifm = p7
iatk = p8
irel = p9
indx1 = p10
indx2 = p11
indxtim = p12
ilfodep = p13
ilfofrq = p14
ipan = p15
irvbsnd = p16
kampenv expseg .01, iatk, iamp, idur/9, iamp*.6, idur-(iatk+irel+idur/9),
iamp*.7, irel,.01
klfo oscil ilfodep, ilfofrq, 1
kindex expon indx1, indxtim, indx2
asig foscil kampenv, ifrq+klfo, ifc, ifm, kindex, 1
outs asig*ipan, asig*(1-ipan)
garvb = garvb+(asig*irvbsnd)
endin
----------------------------------------------------------------------
chucK [2] uma linguagem para áudio nova, baseada em tempo, concorrente
e
"on-the-fly". um exemplo da linguagem:
----------------------------------------------------------------------
// impulse to filter to dac
Impulse i => BiQuad f => dac;
// set the filter's pole radius
.99 => f.prad;
// set equal gain zero's
1 => f.eqzs;
// initialize float variable
0.0 => float v;
// infinite time-loop
while( true )
{
// set the current sample/impulse
1.0 => i.next;
// sweep the filter resonant frequency
Std.fabs(Math.sin(v)) * 4000.0 => f.pfreq;
// increment v
v + .1 => v;
// advance time
100::ms => now;
}
----------------------------------------------------------------------
SuperCollider [3] originalmente só existia para Mac, mas
recentemente se tornou free software. ela é uma
linguagem completa para musica, inspirada no
smalltalk. um exemplo:
----------------------------------------------------------------------
s = Server.internal;
s.boot;
{ SinOsc.ar(LFNoise0.ar(10, 400, 800), 0, 0.3) }.play(s);
a = { SinOsc.ar(LFNoise0.ar(10, 400, 800), 0, 0.3) }.play(s);
a.free;
(
SynthDef.new("ch2-ex1", {
Out.ar(0, // an Out ugen is needed to send the signal to a bus
// bus 0 is the hardware out, left channel
SinOsc.ar( // a sine wave oscillator
LFNoise0.ar(10, 400, 800), // randomly choose a
frequency every 0.1 sec
0, // phase: constant 0
0.3 // amplitude: constant 0.3
)
)
}).send(s);
)
a = Synth.new("ch2-ex1", target: s);
a.free;
----------------------------------------------------------------------
foo [4] outra linguagem recente. baseada em scheme (um dialeto
de lisp)
CLM [5] uma das melhores linguagens de sintese que existem. é
implementada em Lisp. um exemplo simples:
----------------------------------------------------------------------
(with-sound ()
(loop for i from 0 to 7 do
(fm-violin (* i .25) .5 (* 100 (1+ i)) .1)))
(play)
----------------------------------------------------------------------
Abracos,
pedro
Footnotes:
[1] http://www.csounds.com/
[2] http://chuck.cs.princeton.edu/
[3] http://supercollider.sourceforge.net/
[4] http://foo.sourceforge.net/
[5] http://ccrma.stanford.edu/software/clm/
_______________________________________________
PSL-BA mailing list
[email protected]
https://listas.im.ufba.br/cgi-bin/mailman/listinfo/psl-ba