Can't compile SNEX workbench
-
@Christoph-Hart Any idea what I might be doing wrong for the node to not have a class specified?
-
@audiolyf I've never seen this error... Are you using an old HISE build ?
-
@Matt_SF Develop branch from about a month ago. Built the latest one now and same issue.
Could it be confusing things because there are multiple nodes to compile?
This is the "Frankenstein" inside of the main node:
Already tried changing ID of it to snexurator1 (don't know why it was "snexurator_")
These are in the project:
"snexurator" is the wrapper and snexurator1 the actual SNEX node.
-
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?
-
@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 -
@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? -
@audiolyf leave the children alone like this :
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.
-
@Matt_SF or in this case, just don't use any child networks and just put the SNEX node in the main graph.
-
@Matt_SF Sorry for the rounds, I'm still getting errors.
What I did now:
- Explode the child, leave it in the node as the Frankenstein-version
- Turn on AllowCompilation.
- Save the network
- 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?
-
@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:
And then compile the whole thing
-
Still this :(
-
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]
-
@audiolyf what is written in this line?
-
@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.
-
@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)
-
@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.
-
Now how do I use it? Add it as a hardcoded FX , remove my ScriptFX network and >change my interface references?
yes load it in a HCFX, and remove the scriptFX, but keep the name of the module so you won't have to change anything in your code.
Then if I want to make changes to the network I have to do it all over?
Yes
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.
You're welcome :)