HISE Logo Forum
    • Categories
    • Register
    • Login

    Is using Faust with Rhapsody possible?

    Scheduled Pinned Locked Moved General Questions
    47 Posts 8 Posters 2.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      j.dennis
      last edited by

      I am using the Rhapsody boilerplate with a script fx. In the scriptnode, I have added a faust effect (greyhole reverb). It sounds great.

      However, when I export the project as a Rhapsody Library Player, the faust effect is not working.

      I then went into the scriptnode for the faust effect, and enabled Allow Compilation and exported the DSP networks as dll. All fine so far.

      I then tried to export the Rhapsody Library Player again but it states The project must not use compiled DSP Networks.

      It is at all possible to use HISE/Faust with Rhapsody?

      The main reason I would like to use faust is to have a better reverb options over the basic reverb effect in HISE.

      Any help would be much appreciated.

      Christoph HartC 1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart @j.dennis
        last edited by

        You are right that you cannot use Faust effects in Rhapsody. The rationale is that we cannot rely on the Faust runtime to run on an end user system so we have to compile the faust effects to C++ code and since the Rhapsody player is compiled without these, you cannot access them.

        In theory there are two options going forward to solve, but only one of them is realistic:

        1. Allow dynamic loading of C++ effects using the same concept as HISE uses (through a compiled dll that contains the effects that can be loaded)
        2. Make a community effort to create a good set of readily available effects from the Faust library and embed them into the Rhapsody player (so you can use them from your Rhapsody library).

        Now option 1 is the unrealistic one because I absolutely will not have to ensure that the system for loading effects during development meets the requirements of stability, API compatibility and reliability needed for an end user solution. That leaves us with option 2, which might be a good idea anyways. So here would be the outline of the process

        1. We (and I mean this not in the royal we sense) search and collect all interesting bits in the Faust library that would make a good default effect. Then we find a good set of parameters that cover a broad range of applications.
        2. We compile the library and include it in the Rhapsody Player binary. I could then also include the effect dll in the Rhapsody template that will be extracted when you create a new project.

        I'm overly emphasizing the community effort here because the issue with this approach is that there is not much room for change once the effects are built into Rhapsody so we have to get it right on day one, but if that's something that we agree on is worth pursuing, then let's go.

        LindonL J 3 Replies Last reply Reply Quote 3
        • LindonL
          Lindon @Christoph Hart
          last edited by Lindon

          @Christoph-Hart I'm in. What effects do we want - the std Faust stuff for a start?

          • compressors/limiters?
          • delays - tape, ping-pong etc.
          • reverbs - theres a bunch of different ones in faust
          • EQ?
          • Filters?
          • Distortion (non linear
          • chorus/phaser (tho to be honest I dont really like the faust implementations I've heard)

          HISE Development for hire.
          www.channelrobot.com

          Christoph HartC 1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart @Lindon
            last edited by

            @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.

            HISEnbergH 1 Reply Last reply Reply Quote 0
            • HISEnbergH
              HISEnberg @Christoph Hart
              last edited by HISEnberg

              @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.

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey
                last edited by

                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.

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                1 Reply Last reply Reply Quote 1
                • Christoph HartC
                  Christoph Hart @HISEnberg
                  last edited by

                  @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.

                  HISEnbergH LindonL 2 Replies Last reply Reply Quote 2
                  • HISEnbergH
                    HISEnberg @Christoph Hart
                    last edited by HISEnberg

                    @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.

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @HISEnberg
                      last edited by

                      @HISEnberg said in Is using Faust with Rhapsody possible?:

                      tens of times

                      Is this going to blow up the Rhapsody binary?

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      HISEnbergH 1 Reply Last reply Reply Quote 0
                      • HISEnbergH
                        HISEnberg @d.healey
                        last edited by

                        @d-healey Very well could. I will keep things simple to start.

                        d.healeyD 1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey @HISEnberg
                          last edited by

                          @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?

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          HISEnbergH 1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @Christoph Hart
                            last edited by

                            @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?

                            HISE Development for hire.
                            www.channelrobot.com

                            d.healeyD 1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey @Lindon
                              last edited by

                              @Lindon MIT is fine, I think STK is too but not 100% sure.

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • HISEnbergH
                                HISEnberg @d.healey
                                last edited by HISEnberg

                                @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?

                                LindonL d.healeyD 2 Replies Last reply Reply Quote 0
                                • LindonL
                                  Lindon @HISEnberg
                                  last edited by

                                  @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?

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @HISEnberg
                                    last edited by

                                    @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.

                                    Libre Wave - Freedom respecting instruments and effects
                                    My Patreon - HISE tutorials
                                    YouTube Channel - Public HISE tutorials

                                    HISEnbergH 1 Reply Last reply Reply Quote 0
                                    • HISEnbergH
                                      HISEnberg @d.healey
                                      last edited by

                                      @d-healey @Lindon Thanks for clarifying, I will leave it up to you guys to decide on how to move forward on this then :)

                                      Christoph HartC 1 Reply Last reply Reply Quote 0
                                      • Christoph HartC
                                        Christoph Hart @HISEnberg
                                        last edited by

                                        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.

                                        d.healeyD LindonL HISEnbergH 3 Replies Last reply Reply Quote 2
                                        • d.healeyD
                                          d.healey @Christoph Hart
                                          last edited by

                                          @Christoph-Hart Will I need to compile Rhapsody using a particular version of faust?

                                          Libre Wave - Freedom respecting instruments and effects
                                          My Patreon - HISE tutorials
                                          YouTube Channel - Public HISE tutorials

                                          Christoph HartC 1 Reply Last reply Reply Quote 0
                                          • Christoph HartC
                                            Christoph Hart @d.healey
                                            last edited by

                                            @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.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            12

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.7k

                                            Posts