HISE Logo Forum
    • Categories
    • Register
    • Login

    Faust is here...

    Scheduled Pinned Locked Moved Faust Development
    96 Posts 21 Posters 13.6k 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.
    • d.healeyD
      d.healey
      last edited by

      Excellent work, well done!

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

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

        I'm particularly looking forward to the MIDI and sound generators. So where does this leave SNEX?

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

        1 Reply Last reply Reply Quote 0
        • Dan KorneffD
          Dan Korneff
          last edited by

          I'm so so so happy about this! Thanks so much for making this happen!

          Dan Korneff - Producer / Mixer / Audio Nerd

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

            @etXzat well done . Great Work.

            HISE Development for hire.
            www.channelrobot.com

            DanHD 1 Reply Last reply Reply Quote 0
            • DanHD
              DanH @Lindon
              last edited by

              much excite :)

              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
              https://dhplugins.com/ | https://dcbreaks.com/
              London, UK

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

                So as a little teaser that goes beyond hello world: here's a little snippet that includes a much much much better sounding reverb than the stock JUCE / HISE reverb:

                // Faust Source File: reverbtest
                // Created with HISE on 2022-10-12
                import("stdfaust.lib");
                
                // approximate reverberation time in seconds ([0.1..60] sec) (T60 - the time for the reverb to decay by 60db when damp == 0 ). Does not effect early reflections
                t60 = hslider("ReverbTime", 4.2, 0.1, 12, 0.1); 
                
                // controls damping of high-frequencies as the reverb decays. 0 is no damping, 1 is very strong damping. Values should be between ([0..1])
                damp = hslider("Damping", 0.5, 0.0, 1.0, 0.01); 
                
                // scales size of delay-lines within the reverberator, producing the impression of a larger or smaller space. Values below 1 can sound metallic. Values should be between [0.5..5]
                size = hslider("Size", 3.5, 0.5, 5.0, 0.01); 
                
                // controls shape of early reflections. Values of 0.707 or more produce smooth exponential decay. Lower values produce a slower build-up of echoes. Values should be between ([0..1])
                early_diff = hslider("Diffusion", 0.707, 0.0, 1.0, 0.01); 
                
                // depth ([0..1]) of delay-line modulation. Use in combination with mod_freq to set amount of chorusing within the structure
                mod_depth = hslider("Mod Depth", 0.1, 0.0, 1.0, 0.01);
                
                // frequency ([0..10] Hz) of delay-line modulation. Use in combination with modDepth to set amount of chorusing within the structure
                mod_freq = hslider("Mod Frequency", 0.1, 0.0, 10.0, 0.01); 
                
                // multiplier ([0..1]) for the reverberation time within the low band
                low = hslider("LF Gain", 1.0, 0.0, 1.0, 0.01);
                
                mid = 1.0; // multiplier ([0..1]) for the reverberation time within the mid band
                
                // multiplier ([0..1]) for the reverberation time within the high band
                high = hslider("HF Gain", 1.0, 0.0, 1.0, 0.01); 
                
                lowcut = 600;// frequency (100..6000 Hz) at which the crossover between the low and mid bands of the reverb occurs
                highcut = 5000; // frequency (1000..10000 Hz) at which the crossover between the mid and high bands of the reverb
                
                process = re.jpverb(t60, damp, size, early_diff, mod_depth, mod_freq, low, mid, high, lowcut, highcut);
                

                There's absolutely no IP from my side involved here, I'm just wrapping an existing reverb from the library (and there are plenty of other reverbs / delays that can be imported without too much knowledge of the faust language).

                Link Preview Image
                Faust Libraries

                Faust Libraries Documentation.

                favicon

                (faustlibraries.grame.fr)

                Just be careful about the license of those effects, not all of them are permissively licensed and some can only be used under the GPL license (this particular one should be fine as it's MIT licensed if I read the license header correctly).

                So where does this leave SNEX?

                SNEX is here to stay and I still think it has a reason of existence as a gateway drug into C++ and more simple tasks (using the ThirdParty code C++ API is pretty much the same as writing SNEX code). Also the integration with HISE is more tight than with Faust (at least at the moment) so Faust is just a (really powerful) addition to the arsenal of tools in HISE.

                DabDabD 1 Reply Last reply Reply Quote 5
                • NatanN
                  Natan
                  last edited by

                  Amazing 👏🙌💯🔥🥃
                  You guys rock 🤛⭐️⭐️⭐️⭐️⭐️ @Christoph-Hart @etXzat 👏

                  1 Reply Last reply Reply Quote 0
                  • Matt_SFM
                    Matt_SF
                    last edited by

                    Great job @Christoph-Hart @sletz @etXzat !!! Thank you very much for all the effort!

                    Develop branch
                    Win10 & VS17 / Ventura & Xcode 14. 3

                    DanHD 1 Reply Last reply Reply Quote 0
                    • DanHD
                      DanH @Matt_SF
                      last edited by

                      @Christoph-Hart just tried building on osx and this popped up and failed:

                      Screenshot 2022-10-12 at 14.04.35.png

                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                      https://dhplugins.com/ | https://dcbreaks.com/
                      London, UK

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

                        @DanH Have you installed faust and setup the include directories like described in the build instructions?

                        DanHD 1 Reply Last reply Reply Quote 0
                        • DanHD
                          DanH @Christoph Hart
                          last edited by DanH

                          @Christoph-Hart oops - do I need to do that even if I don't want to use faust right now?

                          DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                          https://dhplugins.com/ | https://dcbreaks.com/
                          London, UK

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

                            @DanH actually no that was an oversight - the idea is that there is absolutely no overhead unless you want to use Faust, then you're in a world of pain setting up all those include paths :)

                            Try again, it should now build without faust.

                            DanHD 1 Reply Last reply Reply Quote 1
                            • DanHD
                              DanH @Christoph Hart
                              last edited by

                              @Christoph-Hart thanks!

                              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                              https://dhplugins.com/ | https://dcbreaks.com/
                              London, UK

                              1 Reply Last reply Reply Quote 0
                              • hisefiloH
                                hisefilo @Christoph Hart
                                last edited by

                                @Christoph-Hart OMG this is awesome. Thanks Christoph

                                1 Reply Last reply Reply Quote 0
                                • lalalandsynthL
                                  lalalandsynth @Christoph Hart
                                  last edited by

                                  @Christoph-Hart This is crazy !

                                  https://lalalandaudio.com/

                                  https://lalalandsynth.com/

                                  https://www.facebook.com/lalalandsynth

                                  https://www.facebook.com/lalalandsynth

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    sletz
                                    last edited by

                                    @etXzat and @Christoph-Hart did most of the hard work of "inside HISE" integration and they have to be thanked for that.

                                    On the Faust side, the project adds to the existing ecosystem (https://faust.grame.fr/community/made-with-faust/) and we are quite happy with that :beaming_face_with_smiling_eyes:

                                    @etXzat or @Christoph-Hart do you have a nice screenshot we could add on the https://faust.grame.fr/community/made-with-faust/ page?

                                    1 Reply Last reply Reply Quote 5
                                    • P
                                      ps
                                      last edited by

                                      What an awesome addition! Thanks for all the effort.
                                      So I compiled Hise with Faust enabled and made a Faust node in Scriptnode using the reverb example (in a dry/wet split node) - it compiled inside scriptnode like a charm and sounds just great :)
                                      To make sure everything works as expected in a compiled plugin I at first compiled as an FX Plugin with leaving the network "open" - it compiled without errors. (AU Mac M1) but inside the DAW the test plugin showed but the reverb was not audible, like if the node was bypassed.
                                      So I tried compiling the network as .dll first. Once I hit the compile button HISE instantly crashed and also the HISE preset crashes instantly now when I try to open it again.
                                      Did I miss something?
                                      Thanks for the help!

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

                                        but inside the DAW the test plugin showed but the reverb was not audible, like if the node was bypassed.

                                        This is expected behavior - the faust JIT compiler is not part of an exported plugin, so it will be replaced by a dummy node. However I can add an error message that will complain if you trying to export a plugin with a non-compiled faust node (I have a system for this in place for other nodes like SNEX nodes and expression nodes so it shouldn't be too much effort).

                                        Once I hit the compile button HISE instantly crashed and also the HISE preset crashes instantly now when I try to open it again.

                                        This isn't expected behaviour :)

                                        Can you run a debug build of HISE to see the stack trace where it crashes? Run HISE with the Xcode debugger which should point you to the stack location causing the crash.

                                        GoodflowG StraticahS 2 Replies Last reply Reply Quote 1
                                        • GoodflowG
                                          Goodflow @Christoph Hart
                                          last edited by

                                          @Christoph-Hart not op but having the same problem on an Intel Mac ( OSX 12.5.1/ Xcode 13.1), so hopefully this helps. I printed a full stack trace after replicating the error in Xcode debug and found this:

                                          * thread #32, name = 'Compile DSP networks', stop reason = EXC_BAD_ACCESS (code=2, address=0x70000e940ce0)
                                            
                                            frame #0: 0x0000000121179549 libfaust.2.dylib`SignalPromotion::transformation(CTree*) + 25
                                          

                                          and this

                                          * frame #289: 0x0000000110679c6b HISE Debug`faust::generateAuxFilesFromFile(filename="/Users/me/vstproject/DspNetworks/CodeLibrary/faust/freverb.dsp", argc=17, argv=0x0000600000b2f810, error_msg="") at libfaust.cpp:15:10
                                          

                                          First time debugging, so apologies if this isn't the needed info. Loving the results of Faust in Scriptnode, can't wait to start implementing hardcoded effects!

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

                                            Hmmm, actually I can reproduce that here too (with the re.jpverb example I posted above) and it crashes inside the Faust dll. I wrote this on Windows where it didn't crash, but it seems to reliably bring down macOS.

                                            It's also always in SignalPromotion::transformation(CTree*), and it crashes whenever generateAuxFilesFromFile() is called (so it also crashes when clicking on the SVG graph popup button)

                                            @sletz is this a known issue in Faust?

                                            Also for the sake of readability I would suggest to create seperate topics about these kind of technical issues and leave this thread to rather generic discussions about Faust - remember we have a new subforum for Faust :)

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

                                            23

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.1k

                                            Posts