Compile error when compiling DSP networks
-
I'm trying to compile a DSP network, and I get just one error - which I find miraculous to be honest, but still... this is blocking me, and I don't really know what it means, but I'm sure it has something to do with my SNEX node.
/Users/drew/HISE/hi_dsp_library/node_api/nodes/processors.h:1059:3: static assertion failed due to requirement 'std::is_base_of<scriptnode::data::base, player_impl::playernode<1>>() || std::is_base_of<scriptnode::data::base, player_impl::playernode<1>>()': T must be base class of data::base static_assert(std::is_base_of<scriptnode::data::base, typename T::WrappedObjectType>() || ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Any ideas?
-
Right. Got it solved.
I needed to change this line:template <int NV> struct playernode
To this:
template <int NV> struct playernode: public data::base
My network now compiles.
-
@Orvillain how did you figure that out? This is correct but super opaque as I don‘t think I‘ve mentioned that anywhere in the docs.
But nice detective work!
-
@Christoph-Hart I confess, I didn't figure it out myself. I read it in the Necronomicon - AKA, this thread here: https://forum.hise.audio/topic/7473/snex-external-data/11?_=1717231142488
Since my network is a super heavily modified version of your SNEX One Shot Player, and I knew it used polymorphism, that thread gave me the answer!
-
@Orvillain still, impressive sherlocking over here :)
-
@Christoph-Hart said in Compile error when compiling DSP networks:
@Orvillain still, impressive sherlocking over here :)
Thank you!
So once my DSPNetwork has been converted to a dll - what is the appropriate way to use it? I've compiled, but when I try to export my project as a VST plugin I get the same error I was getting before hand:
But there is no option to add a hardcoded synth module - there is an option to add a hardcoded fx module, and if I do that...
I am able to add my compiled network there. But... this doesn't feel like the right thing to do ??? Because at the very least I have to reconnect all of my UI widgets to different processors now???
-
Just to double check then.... coz I'm a bit unsure of the workflow here.
I've compiled the node. Build succeeded. I restart HISE. I go into each of my networks and turn on the button at the top right of the main container:
This throws up a "Using project DLL" message and ghosts out the main body of the network. So I assume at this point I'm using the dll, and all my parameters are still connected up.
I then go into my interface and start trying to make sounds. But nothing makes any sounds.
If I turn off that "Use project DLL" button - then all my sound functionality comes back.
So I'm a bit confused. I don't know how to export a standalone or a VST of my plugin, with or without compiling my DSPnetworks. I'd settle for not compiling them right now, just for testing purposes. But HISE won't let me do that.
Also, regardless of the state of that button, HISE tells me to try using a hardcoded module instead of sampler_0 (the first module in my module list) to avoid the scriptnode module overhead. But I don't really know what this means.
-
@Orvillain yeah currently there is no hardcoded synth yet and you definitely need to replace the scriptnode synthesiser.
What you need to do is to add a silent synth, then add the hardcoded polyphonic fx where you add the network.
It‘s a bit weird to wrap your head around first, but it gives you much more flexibility and it‘s used in a real product so the pipeline is stable.
-
@Christoph-Hart said in Compile error when compiling DSP networks:
@Orvillain yeah currently there is no hardcoded synth yet and you definitely need to replace the scriptnode synthesiser.
What you need to do is to add a silent synth, then add the hardcoded polyphonic fx where you add the network.
It‘s a bit weird to wrap your head around first, but it gives you much more flexibility and it‘s used in a real product so the pipeline is stable.
Ahhhhhhhhh.. totally get you. Right, that should arm me with enough to stop bothering you!