Crashing trying to compile Scriptnode dll
-
..oh one of those days I fear...
So my project is crashing as soon as I press OK to start the DLL build for my single scriptnode network - anyone have a nice way to reset it - I've deleted the contents of the Binaries folder in the Networks area - still the same.. -
@Lindon Also delete the nodes folder in Additional Source Code
-
@d-healey I've deleted everything...now it wont compile anything - I've completely rebuilt the project - and it runs the compile - but fails to build anything that will load...
In the original - instant crash on compile start.
-
@Lindon nope theres something bad going on -= HISE is broken here, it wont do a proper dll compile....
-
@Lindon Do you have multiple networks or just one?
-
@d-healey just one -
I have just created a whole new project and tried to compile the faust network I built for the compressor - with the associated code..
and it fails to complete the compile process...
so the process is:
- create a new project
- add a script FX
- add a single core.faust node
- create a faust file to edit
- copy in this code:
// Faust Source File: compTest // Created with HISE on 2023-02-15 import("stdfaust.lib"); //strength: strength of the compression (0 = no compression, 1 means hard limiting, >1 means over-compression) strength = hslider("Strength", 0, 0, 1, 0.01); //thresh: dB level threshold above which compression kicks in thresh = hslider("Thresh", 0, -60, 0, 0.1); //att: attack time = time constant (sec) when level & compression going up att = hslider("Attack", 0, 0, 2, 0.01); //rel: release time = time constant (sec) coming out of compression rel = hslider("Release", 0, 0, 3, 0.01); //knee: a gradual increase in gain reduction around the threshold: below thresh-(knee/2) there is no gain reduction, above thresh+(knee/2) there is the same gain reduction as without a knee, and in between there is a gradual increase in gain reduction. knee = hslider("knee", 0, 0, 8, 0.1); //prePost: places the level detector either at the input or after the gain computer; this turns it from a linear return-to-zero detector into a log domain return-to-threshold detector //prePost = hslider("Mode", 0, 0, 1, 1); //link: the amount of linkage between the channels. 0 = each channel is independent, 1 = all channels have the same amount of gain reduction //link = hslider("Link", 0, 0, 1, 0.01); compress(left,right) = left,right : co.RMS_compression_gain_N_chan(strength,thresh,att,rel,knee,1,0,2) : *(left), *(right); process = compress;
and compile it...
- set the node to be compile-able
- save the node
- Run the "compile DSP networks as DDL"
- Review (your single) list of nodes to be compiled
- run the compile
- at this point it either crashes HISE, or falls out of the compile before finishing (you never see the "Generating code..." message)
-
Could be something faust specific, I have no idea though.
-
@d-healey if you have the time could you try these steps and see if it happens for you?
-
@Lindon I followed the same steps to build this compressor. HISE doesn't crash but I'm getting this error :
d:\-- dev --\hise\github repo\hise\hi_dsp_library\snex_basics\snex_types.h(1047): error C2148: la taille totale du tabl eau ne doit pas dépasser 0x7fffffff octets (compilation du fichier source ..\..\Source\Main.cpp) [D:\-- DEV --\HISE\Git Hub Repo\Script-Library\FAUST Comp\DspNetworks\Binaries\Builds\VisualStudio2017\FAUST Comp_DynamicLibrary.vcxproj]
-
@Lindon I got it to compile correctly. I just tried and changed some Attack/Release slider values.... And it seem to have solved the issue :
// Faust Source File: compTest // Created with HISE on 2023-02-15 import("stdfaust.lib"); //strength: strength of the compression (0 = no compression, 1 means hard limiting, >1 means over-compression) strength = hslider("Strength", 0, 0, 1, 0.01); //thresh: dB level threshold above which compression kicks in thresh = hslider("Thresh", 0, -60, 0, 0.1); //att: attack time = time constant (sec) when level & compression going up att = hslider("Attack", 0.03, 0.01, 1, 0.01); //rel: release time = time constant (sec) coming out of compression rel = hslider("Release", 0.05, 0.01, 1, 0.01); //knee: a gradual increase in gain reduction around the threshold: below thresh-(knee/2) there is no gain reduction, above thresh+(knee/2) there is the same gain reduction as without a knee, and in between there is a gradual increase in gain reduction. knee = hslider("knee", 0, 0, 8, 0.1); //prePost: places the level detector either at the input or after the gain computer; this turns it from a linear return-to-zero detector into a log domain return-to-threshold detector //prePost = hslider("Mode", 0, 0, 1, 1); //link: the amount of linkage between the channels. 0 = each channel is independent, 1 = all channels have the same amount of gain reduction //link = hslider("Link", 0, 0, 1, 0.01); compress(left,right) = left,right : co.RMS_compression_gain_N_chan(strength,thresh,att,rel,knee,1,0,2) : *(left), *(right); process = compress;
-
@Matt_SF thanks but I'm getting the same error you were getting even with these new values ...
d:\hise\hi_dsp_library\snex_basics\snex_types.h(1047): error C2148: total size of array must not exceed 0x7fffffff byte s (compiling source file ..\..\Source\Main.cpp) [F:\Audio\Channel Robot\Hise_Work\DuoToneCompressor\DspNetworks\Binarie s\Builds\VisualStudio2017\DuoToneCompressor_DynamicLibrary.vcxproj]
-
@Lindon that's very bizarre.... Did you embed the dsp Network or did you create a network file? I did the latter
-
@Lindon and I reloaded HISE after changing the code
-
@Matt_SF yeah so did I..
I did make it compile it seems it doesnt like changing these lines:
att = hslider("Attack", 0.03, 0.01, 1, 0.01); rel = hslider("Release", 0.05, 0.01, 1, 0.01);
to this:
att = hslider("Attack", 0.03, 0.01, 2, 0.01); rel = hslider("Release", 0.05, 0.01, 5, 0.01);
So all I have done is increase the max value of these controls, from 1 to 2 and 1 to 5...but that crashes the compile and (often) crashes HISE...
@Christoph-Hart ..... this is one for you I think....
-
@Lindon nope that‘s faust related, it complains because your prolongued time ranges exceed the max array size for some internal buffering.
-
@Christoph-Hart Ok thanks - I was hoping for a much longer set of values for attack and release but hey ---
-
@Christoph-Hart what kind of " internal buffering" ?