Re: [LAD] Prototyping algorithms and ideas

From: Kjetil S. Matheussen <k.s.matheussen@email-addr-hidden>
Date: Fri Feb 01 2008 - 18:38:20 EET

On Fri, 1 Feb 2008, Albert Graef wrote:

> Kjetil S. Matheussen wrote:
> > The second problem (besides its lack of interactivity) I have about faust
> > is that is purely functional. I have programmed lots of code in purely
> > functional style, and I like it very much, so thats not the issue. But, I
> > feel that being forced to work in one paradigm gives me less
> > possibilities.
>
> Yep, it takes some discipline, but you also get to reap the benefits
> (clear semantics, better output code).
>

Yes. I'm just pointing out the experimental approach which is
common for music programming. But it might just be a matter
of training.

> > It would be interesting to see how the routine would
> > look like in faust, if you have the time. :-)
>
> I don't have the time to really work out all the details of your example
> right now, but looking at http://www.notam02.no/~kjetism/sandysth/, the
> -1 or 1 decider should be easy to do:
>
> max_add = hslider("Max add", 0, 0, 100, 1);
> d(y,f,pc) = e(y,f,pc) ~ _;
> e(y,f,pc,d) = select2(abs(y) < 1, -1*sgn(y),
> select2(abs(f) <= max_add/100, -1*sgn(f),
> select2(pc==1, d, -1*d)));
> sgn(x) = (x>0)-(x<0);
>
> process = d;
>
> (Note that Faust's select2 is a bit different from if-then-else, it has
> the branches reversed.)
>

Thanks, that was simple. I'll try figuring out the rest myself.
But what about resampling? The main main signal usually needs to
be resampled up 5-10 times to get a decent sound. Can I do that
with faust? Something like:

process = resample(5,d)

> Faust takes a bit of a different mindset. Instead of thinking in terms
> of a memory cell to be changed, imagine a signal that changes over time,
> then it's actually quite easy. Of course we've all been raised on a von
> Neumann diet, so it takes some time to relearn how to do certain things.
> But for me this is what makes Faust so much fun to use. :)
>

Yes, its something else. I think I'll try to incorporate faust
into snd. It shouldn't be so much work, and it'll provide a
dynamic programming environment for faust, plus that faust can use
snd-rt's realtime engine for proper scheduling and connections
with ladspa/pd/midi/clm/cm/etc., and snd-rt can call faust
fucntions to get a convenient speed boost for dsp processing. A few
modifications to the faust syntax will be necesarry though to make
it work in s-expressions, but it shouldn't be so hard.
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Received on Fri Feb 1 20:15:03 2008

This archive was generated by hypermail 2.1.8 : Fri Feb 01 2008 - 20:15:03 EET