HISE Logo Forum
    • Categories
    • Register
    • Login

    Can't compile SNEX workbench

    Scheduled Pinned Locked Moved General Questions
    21 Posts 3 Posters 1.1k 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.
    • A
      audiolyf
      last edited by

      I want to use a SNEX node but I'm having trouble compiling SNEX workbench to bake the DLL file.

      Using the latest release from develop branch, HISE and SNEX playground compiles fine but SNEX workbench gives me this both on Visual Studio 2017 and 2019:

      1>------ Build started: Project: snex_workbench_App, Configuration: Release x64 ------
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: static char const juce::OSCTypes::int32" (?int32@OSCTypes@juce@@2DB)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::OSCBundle const & __cdecl juce::OSCBundle::Element::getBundle(void)const " (?getBundle@Element@OSCBundle@juce@@QEBAAEBV23@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::OSCMessage const & __cdecl juce::OSCBundle::Element::getMessage(void)const " (?getMessage@Element@OSCBundle@juce@@QEBAAEBVOSCMessage@3@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCBundle::Element::isBundle(void)const " (?isBundle@Element@OSCBundle@juce@@QEBA_NXZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCBundle::Element::isMessage(void)const " (?isMessage@Element@OSCBundle@juce@@QEBA_NXZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: void __cdecl juce::OSCReceiver::removeListener(class juce::OSCReceiver::Listener<struct juce::OSCReceiver::RealtimeCallback> *)" (?removeListener@OSCReceiver@juce@@QEAAXPEAV?$Listener@URealtimeCallback@OSCReceiver@juce@@@12@@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: void __cdecl juce::OSCReceiver::addListener(class juce::OSCReceiver::Listener<struct juce::OSCReceiver::RealtimeCallback> *)" (?addListener@OSCReceiver@juce@@QEAAXPEAV?$Listener@URealtimeCallback@OSCReceiver@juce@@@12@@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::String __cdecl juce::OSCAddressPattern::toString(void)const " (?toString@OSCAddressPattern@juce@@QEBA?AVString@2@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCAddressPattern::matches(class juce::OSCAddress const &)const " (?matches@OSCAddressPattern@juce@@QEBA_NAEBVOSCAddress@2@@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCAddressPattern::operator==(class juce::OSCAddressPattern const &)const " (??8OSCAddressPattern@juce@@QEBA_NAEBV01@@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCAddressPattern::OSCAddressPattern(class juce::String const &)" (??0OSCAddressPattern@juce@@QEAA@AEBVString@1@@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCAddressPattern::OSCAddressPattern(char const *)" (??0OSCAddressPattern@juce@@QEAA@PEBD@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: static char const juce::OSCTypes::string" (?string@OSCTypes@juce@@2DB)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::OSCArgument const * __cdecl juce::OSCMessage::end(void)const " (?end@OSCMessage@juce@@QEBAPEBVOSCArgument@2@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::OSCArgument const * __cdecl juce::OSCMessage::begin(void)const " (?begin@OSCMessage@juce@@QEBAPEBVOSCArgument@2@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::OSCArgument const & __cdecl juce::OSCMessage::operator[](int)const " (??AOSCMessage@juce@@QEBAAEBVOSCArgument@1@H@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCMessage::isEmpty(void)const " (?isEmpty@OSCMessage@juce@@QEBA_NXZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: int __cdecl juce::OSCMessage::size(void)const " (?size@OSCMessage@juce@@QEBAHXZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::OSCAddressPattern __cdecl juce::OSCMessage::getAddressPattern(void)const " (?getAddressPattern@OSCMessage@juce@@QEBA?AVOSCAddressPattern@2@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: class juce::String __cdecl juce::OSCArgument::getString(void)const " (?getString@OSCArgument@juce@@QEBA?AVString@2@XZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: float __cdecl juce::OSCArgument::getFloat32(void)const " (?getFloat32@OSCArgument@juce@@QEBAMXZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: int __cdecl juce::OSCArgument::getInt32(void)const " (?getInt32@OSCArgument@juce@@QEBAHXZ)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCAddress::OSCAddress(class juce::String const &)" (??0OSCAddress@juce@@QEAA@AEBVString@1@@Z)
      1>include_hi_scripting_01.obj : error LNK2001: unresolved external symbol "public: static char const juce::OSCTypes::float32" (?float32@OSCTypes@juce@@2DB)
      1>include_hi_scripting_02.obj : error LNK2001: unresolved external symbol "public: static char const juce::OSCTypes::blob" (?blob@OSCTypes@juce@@2DB)
      1>include_hi_scripting_02.obj : error LNK2001: unresolved external symbol "public: void __cdecl juce::OSCReceiver::removeListener(class juce::OSCReceiver::Listener<struct juce::OSCReceiver::MessageLoopCallback> *)" (?removeListener@OSCReceiver@juce@@QEAAXPEAV?$Listener@UMessageLoopCallback@OSCReceiver@juce@@@12@@Z)
      1>include_hi_scripting_02.obj : error LNK2001: unresolved external symbol "public: void __cdecl juce::OSCReceiver::addListener(class juce::OSCReceiver::Listener<struct juce::OSCReceiver::MessageLoopCallback> *)" (?addListener@OSCReceiver@juce@@QEAAXPEAV?$Listener@UMessageLoopCallback@OSCReceiver@juce@@@12@@Z)
      1>include_hi_scripting_02.obj : error LNK2001: unresolved external symbol "public: class juce::MemoryBlock const & __cdecl juce::OSCArgument::getBlob(void)const " (?getBlob@OSCArgument@juce@@QEBAAEBVMemoryBlock@2@XZ)
      1>include_hi_scripting_02.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCAddress::OSCAddress(char const *)" (??0OSCAddress@juce@@QEAA@PEBD@Z)
      1>include_hi_scripting_02.obj : error LNK2001: unresolved external symbol "public: class juce::Time __cdecl juce::OSCTimeTag::toTime(void)const " (?toTime@OSCTimeTag@juce@@QEBA?AVTime@2@XZ)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: void __cdecl juce::OSCReceiver::registerFormatErrorHandler(class std::function<void __cdecl(char const *,int)>)" (?registerFormatErrorHandler@OSCReceiver@juce@@QEAAXV?$function@$$A6AXPEBDH@Z@std@@@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCReceiver::disconnect(void)" (?disconnect@OSCReceiver@juce@@QEAA_NXZ)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCReceiver::connect(int)" (?connect@OSCReceiver@juce@@QEAA_NH@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCReceiver::~OSCReceiver(void)" (??1OSCReceiver@juce@@QEAA@XZ)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCReceiver::OSCReceiver(class juce::String const &)" (??0OSCReceiver@juce@@QEAA@AEBVString@1@@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: void __cdecl juce::OSCMessage::addArgument(class juce::OSCArgument)" (?addArgument@OSCMessage@juce@@QEAAXVOSCArgument@2@@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCMessage::OSCMessage(class juce::OSCAddressPattern const &)" (??0OSCMessage@juce@@QEAA@AEBVOSCAddressPattern@1@@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCArgument::OSCArgument(int)" (??0OSCArgument@juce@@QEAA@H@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCArgument::OSCArgument(float)" (??0OSCArgument@juce@@QEAA@M@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCArgument::OSCArgument(class juce::String const &)" (??0OSCArgument@juce@@QEAA@AEBVString@1@@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCSender::send(class juce::OSCMessage const &)" (?send@OSCSender@juce@@QEAA_NAEBVOSCMessage@2@@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCSender::disconnect(void)" (?disconnect@OSCSender@juce@@QEAA_NXZ)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: bool __cdecl juce::OSCSender::connect(class juce::String const &,int)" (?connect@OSCSender@juce@@QEAA_NAEBVString@2@H@Z)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCSender::~OSCSender(void)" (??1OSCSender@juce@@QEAA@XZ)
      1>include_hi_scripting_03.obj : error LNK2001: unresolved external symbol "public: __cdecl juce::OSCSender::OSCSender(void)" (??0OSCSender@juce@@QEAA@XZ)
      1>E:\HISE\HISE-develop4\HISE\tools\snex_workbench\Builds\VisualStudio2017\x64\Release\App\\snex_workbench.exe : fatal error LNK1120: 45 unresolved externals
      1>Done building project "snex_workbench_App.vcxproj" -- FAILED.
      

      Tried with and without IPP, is there something in the Jucer file I'm missing?

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

        @audiolyf Don't use the workbench, you can do it directly in HISE.

        Set 'Allow Compilation' into your scriptFX :

        c6c8c43e-6012-446d-92eb-5502aafe8f29-image.png

        Then menu : Export > Compile DSP Network as DLL

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

        Christoph HartC A 2 Replies Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @Matt_SF
          last edited by

          Yes the workbench is deprecated, I‘ll remove it soon in order to avoid confusion…

          A 1 Reply Last reply Reply Quote 1
          • A
            audiolyf @Matt_SF
            last edited by

            @Matt_SF Thanks! When I try to compile it from Export/Compile DSP networks as DLL I get "No class specified", hence the workbench rabbit hole I went down. Tried following every step available in other threads but I must have missed something?

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

              @Christoph-Hart Any idea what I might be doing wrong for the node to not have a class specified?

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

                @audiolyf I've never seen this error... Are you using an old HISE build ?

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

                A 1 Reply Last reply Reply Quote 0
                • A
                  audiolyf @Matt_SF
                  last edited by audiolyf

                  @Matt_SF Develop branch from about a month ago. Built the latest one now and same issue.

                  dsp1.jpg

                  Could it be confusing things because there are multiple nodes to compile?

                  This is the "Frankenstein" inside of the main node:
                  dsp3.jpg

                  Already tried changing ID of it to snexurator1 (don't know why it was "snexurator_")

                  These are in the project:
                  dsp4.jpg

                  "snexurator" is the wrapper and snexurator1 the actual SNEX node.

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    audiolyf @audiolyf
                    last edited by

                    So I was able to copy the XML of the node in DSPNetworks/Networks and load it in another project - where DLL compiling worked. How do I load the DLL in my original project now?

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

                      @audiolyf Ah I recall now. This erreor happens because you're trying to compile a scriptFX which contains nodes that are already compiled.
                      Leave them uncompiled and compile the whole thing

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

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        audiolyf @Matt_SF
                        last edited by

                        @Matt_SF Thank you so much!
                        So just to clarify, I leave AllowCompilation enabled on the main node, and make sure it's disabled on any children?

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

                          @audiolyf leave the children alone 😆 like this :

                          a5d707c9-20d6-4c89-83ad-2b17c36eece1-image.png

                          and yes, turn on 'Allow Compilation" and then menu > export DLL

                          Also I would advise not to copy scriptnode/DLL files between projects as that might mess things up.

                          Edit : changed the image tp the correct one.

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

                          Christoph HartC A 2 Replies Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart @Matt_SF
                            last edited by

                            @Matt_SF or in this case, just don't use any child networks and just put the SNEX node in the main graph.

                            1 Reply Last reply Reply Quote 0
                            • A
                              audiolyf @Matt_SF
                              last edited by

                              @Matt_SF Sorry for the rounds, I'm still getting errors.

                              What I did now:

                              1. Explode the child, leave it in the node as the Frankenstein-version
                              2. Turn on AllowCompilation.
                              3. Save the network
                              4. Compile DSP networks as dll

                              I can't seem to allow only one of them to compile though, it still wants to compile both "Dist" (the whole scriptFx node) and snexurator.

                              I WAS able to get past Dist not having a class, but got this error on compiling:

                              \dspnetworks\binaries\source\snexurator.h(57): error C2535: 'void snexurator_impl::snexuration<NumVoices>::setParameter(double)': member function already defined or declared
                              

                              After that, it still told me to reload HISE to use it, but it didn't seem to do anything. Exporting the VST tells me I need to wrap snexurator into a compilable DSP network, so I'm back to square one I guess.

                              What do I need to wrap to wrap it up?

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

                                @audiolyf @Christoph-Hart ah my bad, I went too fast and took the wrong pic. I meant to say, leave the original nodes (with your code of course) not-wrapped:

                                cc4860be-d4f0-4741-9a8d-7feaf8502f20-image.png

                                And then compile the whole thing

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

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  audiolyf @Matt_SF
                                  last edited by

                                  @Matt_SF

                                  Still this :(

                                  dist.jpg

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    audiolyf @audiolyf
                                    last edited by

                                    Rebuilt the whole thing from scratch, removed the old networks, cleaned build directory, and I'm "able" to compile but I'm getting this fail:

                                    ..\dspnetworks\binaries\source\sat.h(86): error C2535: 'void sat_impl::pens<NumVoices>::
                                    setParameter(double)': member function already defined or declared (compiling source file ..\..\Source\Main.cpp) [..\DspNetworks\Binaries\Builds\VisualStudio2017\808_DynamicLibrary.vcxproj]
                                    
                                    Matt_SFM 1 Reply Last reply Reply Quote 0
                                    • Matt_SFM
                                      Matt_SF @audiolyf
                                      last edited by

                                      @audiolyf what is written in this line?

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

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        audiolyf @Matt_SF
                                        last edited by audiolyf

                                        @Matt_SF I'm scratching my head bald trying to figure out what exactly it stems from, tried making a completely new project in case it was something declared in the project that it pulls from and got the same error:

                                        \penis.h(57): error C2535: 'void penis_impl::ass<NumVoice
                                        s>::setParameter(double)': member function already defined or declared (compiling source file ..\..\Source\Main.cpp) [E
                                        :\Projects\Soundkits\Plugins\snes\DspNetworks\Binaries\Builds\VisualStudio2017\snes_DynamicLibrary.vcxproj]
                                        

                                        So with my 0.0005% C++ knowledge what I take from this is that some function has already been declared somewhere else and this can't take its place, or that it maybe has something to do with the number of voices processed :beaming_face_with_smiling_eyes:

                                        Excuse my frustration coming through in the nodes.

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

                                          @audiolyf maybe the compiler doesn't like the name you gave to the scriptFx 🤣

                                          But in this file: penis.h what does the line (57) says?

                                          Edit : same question with this one : dspnetworks\binaries\source\sat.h(86)

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

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            audiolyf @Matt_SF
                                            last edited by

                                            @Matt_SF AAAAH now I see what you mean!

                                            Jesus christ I see it. I've declared the parameter control twice:

                                            template <int P> void setParameter(double v)
                                            {
                                            }
                                            

                                            Fixed and successfully compiled!

                                            Now how do I use it? Add it as a hardcoded FX , remove my ScriptFX network and change my interface references?
                                            Then if I want to make changes to the network I have to do it all over?

                                            Thank you so much you've made my day, finally feel like I've actually accomplished something this week and learned a bunch on the way.

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

                                            51

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.9k

                                            Posts