ExternalData SliderPack seems to be limited to 128
-
@ustk Have you made a github issue?
-
@d-healey I'm trying to fix the issue atm, but it's not looking easy...
-
@d-healey adding
sliderPack.setUsePreallocatedLength(200)
to your code seems to work.
I still have to test with my particular caseI have seen in the source code a preallocation limit of 128 when in backend. This limit might not be sticking around in the binary, I have to test it.
-
@ustk oh interesting, I wasn't aware of that function
-
@d-healey But it doesn't fix my problem... Opening an issue
-
@d-healey Ok it's definitely buggy... I just made it to work by using the preallocation thing, removing it, and setting the nb of sliders manually, and after a restart it's gone again...
-
@ustk Yeah it's giving me super weird behaviour too, and it seems like the data objects have a "memory" so even when you change the number of sliders it shows a previous number that was being used.
-
@Christoph-Hart Any news on this ExternalData SliderPack size limitation?
Side question, is this the best way to send a shaper curve to third party C++? Or is there another data object I can use to directly send an array of values?
I am also thinking about directly sending the curve control points to C++ and compute the curve there instead of interface script. But then how do I send the points? external table?
-
If you want to create the curve from the points I would suggest using a global_cable with its new feature to send any kind of data through it - assuming you don't use this in the audio thread.
Otherwise I would suggest using an audio file slot for the waveshaper if you need more than 128 points - it's also just a bunch of float numbers with any kind of size. I'm not entirely sure where that limitation comes from, but a Slider pack is designed to be a user controllable interface element and pushing it beyond this amount of sliders is a hack that is prone to regressions even if I fix that thing now.
-
@Christoph-Hart I wondered about using an audiofile as well, seems a nice solution especially if I am creating the curve in the script interface.
But a global cable seems promising too, I need to wrap my head around the data type it can send. Just sending the control points and creating the curve in C++ node is surely a more efficient solution...