[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 PSL-BA@listas.im.ufba.br https://listas.im.ufba.br/cgi-bin/mailman/listinfo/psl-ba