[CM] Re: [Faudiostream-devel] Faust and Snd-rt

Yann Orlarey orlarey at free.fr
Mon, 17 Mar 2008 17:46:28 +0100


Hi Kjetil,

Thanks you *very* much. I still have to try it, but it is a very 
important contribution ! I have uploaded the "snd-rt-gtk.cpp" file to 
the Faust CVS.

Yann



Kjetil S. Matheussen a écrit :
> Hi,
>
> Latest versions of snd and snd-ls: 
> http://www.notam02.no/arkiv/src/snd/snd-ls-0.9.8.9.tar.gz
> contain code to use faust from snd-rt.
>
> I have mentioned this both on the linux audio mailing
> list and on the linux audio conference but haven't had
> time to implement it yet.
>
> This is the faust module containing glue code for snd-rt:
>
>   http://www.notam02.no/arkiv/src/snd/snd-rt-gtk.cpp
>
> ...which must be copied it into the lib/faust directory.
> Hopefully Yann will include it in faust. (Its almost
> entirely similar to the jack-gtk module though.)
>
>
>
> Simplest example:
>
>   (<rt-faust> (out (osc 400)))
>
>
>
> ...which is exactly the same as:
>
>   (<rt-faust> "process=osc(400);")
>
>
>
> Larger example:
>
>   (<rt-faust> (import "math.lib")
>               (= (smooth c) (colon "*(1-c)" "+~*(c)"))
>               (= vol        (colon  (hslider "volume (db)" 0 -96 0 0.1)
>                                     db2linear
>                                     (smooth 0.99)))
>               (= freq       (hslider "freq" 1000 0 24000 0.1))
>               (out (vgroup "Osc" (* (osci freq) vol))))
>
>
>
> Evaluating code in the x11 buffer, for example from the faust software 
> catalog:
>
>   (<rt-faust> :autoimport-libs #f	   
>              (x11-selection))
>
>
> Import code from url:
>
>   (<rt-faust> (url "http://..."))
>
>
>
> Import local file:
>
>   (<rt-faust> (include "/home/kjetil/snd-run/osc.dsp"))
>
>
>
> Display the faust source of the lastest evaluated faust object:
>   (display-faust-source)
>
>
>
> Sending sound from one RT object to another:
>
> (let ((abus (make-bus)))
>   (<rt-faust> :in-bus abus
>               (= (smooth c) "*(1-c) : +~*(c)")
>               (= gain       (colon (vslider " dB " 0 -96 4 0.1)
>                                    db2linear
>                                    (smooth 0.999)))
>               (out (vgroup "fader" "*(gain)")))
>   (<rt-out> :out-bus abus
>             (oscil)))
>
>
> Using faust to monitor the output of the RT engine:
>
>   (<rt-faust> :in-bus *out-bus*
>              "vmeter(x)       = attach(x, envelop(x) : vbargraph(\"dB\", -96, 10));
>               hmeter(x)       = attach(x, envelop(x) : hbargraph(\"dB\", -96, 10));
>               envelop         = abs : max(db2linear(-96)) : linear2db : min(10)  : max ~ -(96.0/SR);
>               process         = vmeter;")
>
>
>
> Faust lisp macro:
>
>   (define-faust-macro (oscivol freq vol)
>     `(* ,vol (osci ,freq)))
>
>   (<rt-faust> (out (oscivol 500 0.2)))
>
>
>
> Calling Faust functions from Snd-Rt code.
> Both the frequency slider and the volume
> slider will appear in the same dialog:
>
>   (<rt-out> (* (<faust> (= freq    (vslider "freq" 600 0 2400 0.1))
>                         (= process (vgroup "ai" (osc freq))))
>                (<slider> "vol" 0.0 0.1 1.0)))
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Faudiostream-devel mailing list
> Faudiostream-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/faudiostream-devel
>
>
>