HISE Logo Forum
    • Categories
    • Register
    • Login

    Faust is here...

    Scheduled Pinned Locked Moved Faust Development
    96 Posts 21 Posters 13.4k 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.
    • S
      sletz @Christoph Hart
      last edited by sletz

      @Christoph-Hart This is not a known problem. What is the DSP code? Do you have the full log? (possibly with a debug version of libfaust to get the precise crash line number?)

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

        @sletz The exact code I posted above (the example that takes the jpreverb and wraps a few parameters around it.

        Link Preview Image
        Faust is here...

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

        favicon

        Forum (forum.hise.audio)

        If I load that in HISE, the reverb loads and the JIT compiler works perfectly, but anytime I call generateAuxFilesFromFile (so either when creating the SVG images or when exporting to C++ during the DLL compilation) it always crashes at said location.

        I haven't build the libfaust Debug build yet so the stack trace only gives me the last function (might be a good idea going forward though), but it's super easily reproducible on macOS (on Windows it works fine).

        • Load up HISE
        • create a scriptnode patch
        • create a faust node
        • paste in the example code, compile

        Click on the eye icon which opens the SVG popup. It will create the SVG files for a few seconds, then crash in the method above.

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

          @Christoph-Hart just a quick confirmation from my side - same error in Xcode - I just compiled the compressor demo without problems so it’s def related to```

          generateAuxFilesFromFile

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

            @ps I cannot reproduce the error here with latest Faust GitHub master-dev branch, on Intel and macOS 10.13 :

            • compiled libfaust in shared mode (so make all && sudo make install)
            • had to add -lfaust and /use/local/lib in Xcode generated project to properly link the library
            • then create a new project ScripNodeFX, faust, copied the jpverb DSP code
            • compile so I see the GUI with buttons
            • opened the SVG file
            • no crash...
            P 1 Reply Last reply Reply Quote 0
            • S
              sletz
              last edited by

              BTW libfaust can be compiled in debug mode editing this Makefile here: https://github.com/grame-cncm/faust/blob/master-dev/build/Makefile#L52

              Having a proper crash log will possibly help.

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

                Alright I‘ll try to build the debug version later and check if I can get a stacktrace.

                1 Reply Last reply Reply Quote 0
                • P
                  ps @sletz
                  last edited by ps

                  @sletz hi sletz - compiling the node inside scriptnode works here as well - exporting the node crashes hise. Just to double check - that works on your side as well?

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

                    @ps Not tried export for now. Which kind of crash? (any crashlog..etc...)

                    P 1 Reply Last reply Reply Quote 0
                    • P
                      ps @sletz
                      last edited by

                      @sletz hise is crashing the moment the compilation starts and is unable to reopen the preset containing the script fx later on (Instant crash)

                      when trying to compile the network as .dll

                      return ::generateAuxFilesFromFile(filename, argc, argv, error_msg);
                      
                      Compile DSP networks (25): EXC_BAD_ACCESS (code=2, address=0x315d53ce0)
                      

                      when I try to reopen the preset:

                       { return (llvm_dsp_factory*)::createDSPFactoryFromString(name_app, dsp_content, argc, argv, target, error_msg, opt_level); }
                      
                      Sample Loading Thread (7): EXC_BAD_ACCESS (code=2, address=0x31a4add60)
                      
                      1 Reply Last reply Reply Quote 0
                      • S
                        sletz
                        last edited by

                        Could not reproduce the crash at export time. The C++ file is properly generated, even if I get a 'ipp.h' file not found" related issue later on in the export step.

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

                          Just FYI: I've added polyphony & MIDI support for Faust, so if you've been holding off because you want to play around with the physical modeling library in Faust there's no reason anymore :)

                          With this feature, we can consider the Faust integration to be feature-complete for now (the complex data interface has to wait a few months, but I don't think that's a critical feature) so I can now go back to fixing the bugs, yay...

                          P 1 Reply Last reply Reply Quote 7
                          • P
                            ps @Christoph Hart
                            last edited by

                            @Christoph-Hart awesome! is there any way we can get information out of Faust nodes.. eg using analyser modules?
                            Ah and btw could get any information regarding the generateAuxFilesFromFile crash?

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

                              @ps If you declare a hbargraph primitive in your faust code it will use it as modulation source so you can connect it to any target in script node and propagate it to the UI using a peak node or whatever.

                              It currently works only with a single modulation source, but maybe I'll add multiple modulation outputs.

                              The crash is super annoying to debug, we're working on it and I can reproduce it with a Debug build, but @sletz cannot get this patch to crash, so we're stuck now trying to find the root of the issue (a vanilla test project with libfaust doesn't crash with the example code but the crash happens inside libfaust so we don't know where the error occurred).

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

                                @Christoph-Hart awesome stuff with the hbargraph and very unfortunate with the crash - fingers crossed that you will find the root of evil here :)
                                Just tried to compile the latest develop to give the midi a try - build fails on my m1

                                 using vSIMDType = typename NativeOps::vSIMDType;
                                
                                Implicit instantiation of undefined template 'juce::dsp::SIMDNativeOps<unsigned long>'
                                
                                Christoph HartC 1 Reply Last reply Reply Quote 0
                                • Christoph HartC
                                  Christoph Hart @ps
                                  last edited by

                                  @ps Yes I'm crawling through the macOS compile errors at the moment - it always messes up macOS when I start doing template stuff :)

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

                                    @Christoph-Hart ah no worries - let me know when it's building on your end :)

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

                                      @ps Now it should build and export on macOS.

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

                                        @Christoph-Hart works like a charm - playing around with the midi stuff works great too!
                                        Now the reverb example crashes already on compiling the Faust node in the script fx - the only reverb I could get to works far is the freeverb

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

                                          @ps Yes, that's actually the first clue that leads somewhere - I've changed the compilation to happen on a background thread a few days ago and it appears that any call to the Faust library must happen on the UI thread on macOS or it will crash.

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

                                            We solved it! It was definitely one of the more annoying bugs but the default stack size on macOS is 512kb with the only exception of the main UI thread which is 8MB which is why the faust compiler crashed whenever it was called on another thread with a bigger faust code (as a matter of fact this example crashes with less than 2MB of stack space)

                                            @sletz is currently updating the libfaust code to fix the problem at the source but I‘ll add a temporary fix on the HISE side because it might take a while until the next faust release.

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

                                            42

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.2k

                                            Posts