Getting started with Faust for SuperCollider

It is actually the next step for me to create a script to generate the .sc files as well here: GitHub - madskjeldgaard/faust2supercollider2

The original is written in ruby and I honestly can’t be bothered to learn Ruby.

Adding something like this would be fairly easy I think.

@madskjeldgaard Great initiative, but do I understand correctly that you are proposing to rewrite the faust2supercollider script? wouldn’t be better to just bring these ideas forward to the Faust team for example in a PR? Isn’t it a good moment to move the discussion to the Faust lists/channels?

You’re right Alejandro. Let’s discuss some of these ideas in an issue perhaps.

If you could drop a link here for those of us following I’d appreciate it!

I’ve opened up an issue here which contains some of the ideas discussed here. Please feel free to add to the list !

Thank you, Mads, but it looks like you forgot the link.

whoops, sorry, here it is:

Another cool Faust/SC integration could be to embed the Faust compiler + LLVM JIT compiler in a dynamically programmable UGen (see Embedding the Compiler - Faust Documentation). This has been discussed in the SC community in the past, but never achieved :sweat_smile:

2 Likes

Great idea Stephane! So this in practice would mean you could sort of livecode faust scripts in SuperCollider while using them? Mind blowing!

1 Like

Wow!! trying to get my head around this one. :grinning:
What excactly means? a sort of generic uGen that can be livecoded? or would the integration still produce a new uGen and therefore the SuperCollider Library has to be compiled anyway?

The point is to have live coding yes, as we can do (for years…) in Max/MSP and PureData with faustgen(2). Here is an example of pd-faustgen2 demonstrated at last IFC: 4_Workshop2_Learning and using Faust in the PD environment - A. Gräf - IFC20 - YouTube

2 Likes

Stephane just asked this on the faust list. Anyone have an opinion?

::

Can other SC users give their feeling here?

Thanks.

Stéphane

Le 21 mai 2021 à 12:57, Sam Pluta spluta@gmail.com a écrit :

Thanks for looking into this.

My personal preference would be for the prefix not to be there, since it isn’t there when compiling for other platforms. It makes the UGen names overly verbose, and, if one desires, one can still always name the UGen that way manually by just naming the file accordingly.

Sam

On May 21, 2021, at 12:48 PM, Stéphane Letz letz@grame.fr wrote:

The Faust Web IDE interact with the « faustservice » (GitHub - grame-cncm/faustservice), a set of predefined Makefiles that trigger the faust2xx tools installed on the remove compilation machines. So this system is not fully flexible yet.

Stéphane

Le 21 mai 2021 à 12:19, Sam Pluta spluta@gmail.com a écrit :

Thanks Julius. Yes, I have that working correctly. But the online IDE also compiles directly to SC, and for that I don’t know if there is a way to set the options to get rid of the prefix. The max and pd compilers don’t add the prefix. Just the SC one.

Sam

On May 20, 2021, at 11:53 PM, Julius Smith julius.smith@gmail.com wrote:

When I last used it, faust2supercollider had a -noprefix option.

  • Julius

On Mon, May 17, 2021 at 1:32 PM Sam Pluta spluta@gmail.com wrote:
Is there a way to use the faustIDE to export to supercollider without adding the word Faust in front of the UGen? I imagine this is going with the default of faust2supercollider, but it would be great to be able to turn it off (as you can in the Ruby script). The online IDE is amazing, btw. Thanks for that work.

sam


Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
faudiostream-users List Signup and Options


“Anybody who knows all about nothing knows everything” – Leonard Susskind

Agreed - better to omit the prefix

Yeah I also agree - let it go :slight_smile:

The same here, I agree to let go of the prefix.

Done yesterday on the Faust online compiler, so in particular when using the Faust IDE.

@Stephane_Letz the optimizations you did to the supercollider backend recently has made a big (positive) difference in performance. I see it hasn’t been released yet. Any idea on when it will be put into a release? Thanks!

I am running faust compiled from source so I get all the benefits of this now but I guess others might not have gotten these yet.

I am toying around with this today… wish me luck!

I’ve slowly started work on a FaustGen UGen here: GitHub - madskjeldgaard/faustgen-supercollider: A Faust code interpreting SuperCollider plugin

It doesn’t work yet, but it’s got the depencies sorted and I am able to create dsp factories but the actual processing doesn’t work yet, but hopefully I’ll figure this out. If anyone wants to help out, let me know

I’ve made a seperate thread for FaustGen discussions: [WIP] FaustGen - a UGen for interpreting Faust code