Is using Faust with Rhapsody possible?
-
@Lindon yes allof 'em, the faust library is a gold mine, as long as the license is clear and it sounds good (and there isn‘t a existing HISE alternative like with eg. biquad filters), it‘s a candidate.
-
@Christoph-Hart @Lindon I would be happy to share, I've got a fat stack of Faust code on a hardrive from mostly MIT libraries.
-
Why not make them into stock HISE effects too?
The unrealistic option of dynamic loading is definitely the one I'd prefer because I can see that no matter what effects we make available in Rhapsody developers will always want to be able to add their own or tweak the ones that are there.
I also get people asking about including compiled scriptnode patches (effects and instruments and not necessarily faust based) into Rhapsody.
-
@HISEnberg great, I'm wondering what would be the best way of collecting those. Maybe we'll just post them here in the topic with these rules:
- one faust code per topic using the backticks codebox syntax
- the code must be pasteable into the hise faust node as is and create all the parameters or external connections
- license must be permissible (I know that Rhapsody is GPL so this isn't a strict requirement but let's be honest, the engagement will be a lot higher if all you proprietary folk will get something out of this too)
- if there are changes to a faust code, the original post should be edited so that it won't create a paper trail of incremental steps to the final suggestion)
- people can upvote each post and they will be added sorted by popularity.
The unrealistic option of dynamic loading is definitely the one I'd prefer because I can see that no matter what effects we make available in Rhapsody developers will always want to be able to add their own or tweak the ones that are there.
Thank god I introduced this option right away as being unrealistic :) I think we have to aim for a 80% solution - right now the Rhapsody libraries can only use the (very limited) set of effects available in stock HISE so if at the end of this process we come up with a collection of effects that are "good" (tm), then it certainly made the world a better place. Whether we decide to integrate these effects into HISE or embed them into the Rhapsody player is up to discussion. Of course there are people who want to be able to modify as much as possible (that's basically a law at this point), but then the Rhapsody route is not for them and they have to compile their own app.
-
@Christoph-Hart Great ideas. Generally speaking most faust code will declare the authors and license at the top, so perhaps including an "edited by" section is an appropriate format.
Though I like the idea of sharing them here, I can see this quickly spiraling out of control: a lot of the same code being shared, navigating through a bunch of posts to find the one you want, etc. A GitHub repo may be a better alternative but less accessible (or harder to find) for HISE users. Lastly, perhaps a seperate post to start the topic may be in order?
For my part, I might try to build them into one massive project and share the snippet, might save me posting to the HISE forum tens of times.
**Edit: it would also be admirable of the person who posts the snippets to add a link to the original github repo.
-
@HISEnberg said in Is using Faust with Rhapsody possible?:
tens of times
Is this going to blow up the Rhapsody binary?
-
@d-healey Very well could. I will keep things simple to start.
-
@HISEnberg I mean in terms of file size. @Christoph-Hart Will bundling faust effects affect performance or resource usage of expansions that don't use them?
-
@Christoph-Hart said in Is using Faust with Rhapsody possible?:
@HISEnberg great, I'm wondering what would be the best way of collecting those. Maybe we'll just post them here in the topic with these rules:
- one faust code per topic using the backticks codebox syntax
- the code must be pasteable into the hise faust node as is and create all the parameters or external connections
- license must be permissible (I know that Rhapsody is GPL so this isn't a strict requirement but let's be honest, the engagement will be a lot higher if all you proprietary folk will get something out of this too)
Well I guess we should start by deciding what licenses we want to admit, a fair amount of code in the faust respository use "MIT-style STK-4.3 license" - so is that OK?
-
@Lindon MIT is fine, I think STK is too but not 100% sure.
-
@d-healey Ah that is a legitimate concern. I have one project with about 40 FX (mixed use of Faust, Scriptnode and RNBO) that is about 700 MBs in the DSP folder alone.
Just some food for thought, and correct me if I am wrong here: You and obviously @Christoph-Hart are more seasoned than me, but I've often thought about HISE initially starting as an alternative to Kontakt's sampler players and over the years evolving into this alternative DSP environment to do so much more.
Especially with Faust integration, the wavetable, Scriptnode, Global Mod, RNBO, etc. so many doors opened up to explore. All that to say, it seems that increasingly users are posting on the forum, looking to use HISE to create plugins other than samplers. This is especially true for FX plugins.
Perhaps a template like Rhapsody but for FX would offer a better alternative, rather than incorporating them into Rhapsody?
-
@HISEnberg said in Is using Faust with Rhapsody possible?:
Perhaps a template like Rhapsody but for FX would offer a better alternative, rather than incorporating them into Rhapsody?
Why wouldn't you want to add FX into your Sampler project?
-
@HISEnberg said in Is using Faust with Rhapsody possible?:
Perhaps a template like Rhapsody but for FX would offer a better alternative, rather than incorporating them into Rhapsody?
The main advantage of Rhapsody is that developers don't need to worry about compiling their projects and the stuff that goes along with it - codesigning, notarizing, distributing installers, etc.
So while an effects template might be good I think it's a tangent to the idea of implementing effects for developers working on expansions for Rhapsody.
-
-
Ah that is a legitimate concern. I have one project with about 40 FX (mixed use of Faust, Scriptnode and RNBO) that is about 700 MBs in the DSP folder alone.
That's a non issue, the bulk of that are objects files that the compiler will throw away. You can expect the final binary size increase of DSP algorithms no matter how complex to be in the kilobytes (unless you start embedding impulse responses or big chunks of audio data).
A GitHub repo may be a better alternative but less accessible (or harder to find) for HISE users
Yes, that is my experience as well with random GitHub repos that nobody will find. But on the other hand the development will be much more easy and I suspect it to be a handful of contributors at this point that we can manually add to the repo. I'll create one later and invite you, also everybody that wants to contribute just drop your GitHub user name here and I'll add you as collaborateur.
-
@Christoph-Hart Will I need to compile Rhapsody using a particular version of faust?
-
@d-healey said in Is using Faust with Rhapsody possible?:
@Christoph-Hart Will I need to compile Rhapsody using a particular version of faust?
If you export the DLL to compile the faust plugins then it will create the C++ code in the AdditionalSourceCode folder so theoretically you would have to do this once for every effect library version and don't need to have Faust running on the system that you compile the binaries for distribution, but let's talk integration when we get there, there are multiple options and all of them should be pretty straight forward.
-
@Christoph-Hart said in Is using Faust with Rhapsody possible?:
. I'll create one later and invite you, also everybody that wants to contribute just drop your GitHub user name here and I'll add you as collaborateur.I think you have mine already but just in case:
LindonAtChannelRobot
-
Awesome thanks, mine is:
mzajner -
Alright, I've added you two guys and wrote a short readme (we can expand the guidelines over time), but that should be good enough to get the ball rolling.