HISE Logo Forum
    • Categories
    • Register
    • Login

    Faust is here...

    Scheduled Pinned Locked Moved Faust Development
    96 Posts 21 Posters 13.5k 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
      Sawer @toxonic
      last edited by

      @toxonic

      import("stdfaust.lib");
      
      process = dm.dattorro_rev_demo;	
      
      

      This code works.

      import("stdfaust.lib");
      
      bw = hslider("BAndWidth",0.5 ,0 , 1,0.1);
      inputDiff1 = hslider("Diffusor1",0.5 ,0 ,1 ,0.1);
      inputDiff2 = hslider("Diffusor2",0.5 ,0 ,1 ,0.1);
      decay = hslider("Decay", 0.5,0 ,1 , 0.1);
      decDiff1 = hslider("dDiffusor1",0.5 ,0 ,1 ,0.1);
      decDiff2 = hslider("dDiffusor2",0.5 ,0 ,1 ,0.1);
      damping = hslider("damping",0.5 ,0 ,1 ,0.1);
      
      
      
      process = re.dattorro_rev(bw, inputDiff1, inputDiff2, decay, decDiff1, decDiff2, damping);
      

      This code(with my parameter) doesn't.

      toxonicT 1 Reply Last reply Reply Quote 0
      • toxonicT
        toxonic @Sawer
        last edited by toxonic

        @Sawer i'm actually at work, i'll have a look at it later. Did you already check the SVG diagram (the Button with the eye on the faust node)?

        S 1 Reply Last reply Reply Quote 0
        • S
          Sawer @toxonic
          last edited by

          @toxonic
          3x2 Also on the svg.

          Screenshot 2022-11-16 at 19.24.57.png

          toxonicT 1 Reply Last reply Reply Quote 0
          • toxonicT
            toxonic @Sawer
            last edited by toxonic

            @Sawer ahh, okay, i'm still at work, but try to use this as process line instead:

            process = _,_:re.dattorro_rev(bw, inputDiff1, inputDiff2, decay, decDiff1, decDiff2, damping);
            
            S 2 Replies Last reply Reply Quote 1
            • S
              Sawer @toxonic
              last edited by

              @toxonic Trying now, thanks.

              1 Reply Last reply Reply Quote 0
              • S
                Sawer @toxonic
                last edited by

                @toxonic
                Screenshot 2022-11-16 at 21.16.44.png

                Ahahha, this is way too strange...

                toxonicT 1 Reply Last reply Reply Quote 0
                • toxonicT
                  toxonic @Sawer
                  last edited by

                  @Sawer Okay, this was not that simple to figure out: There was an error in the description of the reverb in the library. There's missing the parameter for the predelay.
                  The code should probably rather look like this:

                  import("stdfaust.lib");
                  
                  predelay = hslider("Predelay",0.5 ,0 , 1,0.1);
                  bw = hslider("BandWidth",0.5 ,0 , 1,0.1);
                  inputDiff1 = hslider("Diffusor1",0.5 ,0 ,1 ,0.1);
                  inputDiff2 = hslider("Diffusor2",0.5 ,0 ,1 ,0.1);
                  decay = hslider("Decay", 0.5,0 ,1 , 0.1);
                  decDiff1 = hslider("dDiffusor1",0.5 ,0 ,1 ,0.1);
                  decDiff2 = hslider("dDiffusor2",0.5 ,0 ,1 ,0.1);
                  damping = hslider("damping",0.5 ,0 ,1 ,0.1);
                  
                  
                  
                  process = re.dattorro_rev(predelay,bw, inputDiff1, inputDiff2, decay, decDiff1, decDiff2, damping);
                  

                  Note, that this is not really working like it should, because this is just the wet reverb, you would have to add a mixing unit for the dry sound.

                  Christoph HartC S 2 Replies Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @toxonic
                    last edited by

                    @toxonic or a dry_wet template that does that for you in scriptnode...

                    1 Reply Last reply Reply Quote 1
                    • StraticahS
                      Straticah @Christoph Hart
                      last edited by

                      @Christoph-Hart Is it possible to "auto compile" Faust nodes on export to still be able to debug or reroute effects in the HISE project after the export is done?

                      building user interfaces in HISE :)
                      web: www.vst-design.com

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

                        @Straticah no because then you would need the end user to have faust installed and setup correctly.

                        StraticahS 1 Reply Last reply Reply Quote 1
                        • StraticahS
                          Straticah @Christoph Hart
                          last edited by

                          @Christoph-Hart ah i see, i thought compiling would make it usable without jit. Where do i get information on how i need to prepare Faust nodes to work properly for the end user? :)

                          building user interfaces in HISE :)
                          web: www.vst-design.com

                          Christoph HartC 1 Reply Last reply Reply Quote 0
                          • S
                            Sawer @toxonic
                            last edited by

                            @toxonic Perfect, thanks!

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

                              @Straticah ah that‘s a misunderstanding I thought you wanted to use the JIT node in a exported project. But yes when you export a network with a faust file it will generate C++ code from it that runs on its own.

                              Now what was your initial question? :)

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

                                @Christoph-Hart I see, sorry for the misunderstanding. I had the problem that my FX plugin uses scriptnodes and faust nodes, but on VST export they are all bypassed.

                                My solution was now to create hardcoded dlls and reroute the effects to my knobs and delete the scriptnodes.
                                Im quite new to nodes and faust but was bit frustrated after my VST had some script and faust fx missing on VST export. :)

                                This is where my question came from if there is a way to automate the compilation from nodes to c++ on VST export/build.
                                Hope this makes sense and you get what i want to bring across. ^^

                                building user interfaces in HISE :)
                                web: www.vst-design.com

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

                                  No you need to export a DLL to create the C++ classes from scriptnode / SNEX / Faust nodes before you export your plugin.

                                  My solution was now to create hardcoded dlls and reroute the effects to my knobs and delete the scriptnodes.

                                  Yes this is the recommended approach:

                                  1. Design the effects in scriptnode
                                  2. Compile them to C++ effects
                                  3. Replace the scriptnode module with a HardcodedFX

                                  This removes the overhead of the scriptnode interpreter. The replacement step itself is rather easy because you just need to replace the module, give the hardcoded module the same ID as the scriptnode module, then reload the HISE project which should update all connections as the parameters & complex data type interface should be the same.

                                  StraticahS S 2 Replies Last reply Reply Quote 1
                                  • StraticahS
                                    Straticah @Christoph Hart
                                    last edited by Straticah

                                    @Christoph-Hart got it, thank you for your time and energy you put into this project. :) I will look into that, didnt work the first time - i am getting an error on compiling a DSP network to a dll. I guess this could be the reason why it did not work in the first place.

                                    Finished saving: Xcode (macOS)
                                    Finished saving: Linux Makefile
                                    Compiling 64bit  HISE ...
                                    MSBuild version 17.4.0+18d5aef85 for .NET Framework
                                      Main.cpp
                                      include_hi_dsp_library_01.cpp
                                      include_hi_dsp_library_02.cpp
                                      include_hi_tools.cpp
                                      include_juce_audio_basics.cpp
                                      include_juce_audio_formats.cpp
                                      include_juce_core.cpp
                                      include_juce_data_structures.cpp
                                      include_juce_dsp.cpp
                                      include_juce_events.cpp
                                      include_juce_graphics.cpp
                                    Z:\Audio Programming\VST Projects\HISE\DspNetworks\Binaries\Source\Main.cpp(70,1): warning C4190: "getError" hat C-Bind
                                    ung angegeben, aber gibt UDT "scriptnode::Error" zurück, was mit C inkompatibel ist [Z:\Audio Programming\VST Projects\
                                    HISE\DspNetworks\Binaries\Builds\VisualStudio2022\HISE_DynamicLibrary.vcxproj]
                                    Z:\Audio Programming\HISE-develop\hi_dsp_library\node_api\helpers\Error.h(63,8): message : Siehe Deklaration von "scrip
                                    tnode::Error" [Z:\Audio Programming\VST Projects\HISE\DspNetworks\Binaries\Builds\VisualStudio2022\HISE_DynamicLibrary.
                                    vcxproj]
                                      include_juce_gui_basics.cpp
                                         Bibliothek ".\..\..\dll\Dynamic Library\HISE.lib" und Objekt ".\..\..\dll\Dynamic Library\HISE.exp" werden erstell
                                      t.
                                      Code wird generiert.
                                      Codegenerierung ist abgeschlossen.
                                      HISE_DynamicLibrary.vcxproj -> Z:\Audio Programming\VST Projects\HISE\DspNetworks\Binaries\dll\Dynamic Library\HISE.d
                                      ll
                                    Drücken Sie eine beliebige Taste . . .
                                    

                                    building user interfaces in HISE :)
                                    web: www.vst-design.com

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

                                      Yellow is not an error, even if the warning is about a function that has error in its name :)

                                      Codegenerierung ist abgeschlossen.

                                      That's german for "Everything OK".

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

                                        @Christoph-Hart okay, good to know :)

                                        building user interfaces in HISE :)
                                        web: www.vst-design.com

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

                                          @Christoph-Hart
                                          Ok, do I need to compile the whole scriptnode into a custom-project c++ class or only the faust node?

                                          Thanks

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

                                            @Sawer The whole scriptnode patch, but you can create a subpatch that only contains the faust node if you want to use a interpreted scriptnode patch in your exported plugin.

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

                                            25

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.7k

                                            Posts