RNBO Delay bugs (and one user request?)
-
Hi @Christoph-Hart,
Firstly, thank you for your amazing work in HISE. Having an easy environment to be able to put my RNBO modules into (and also having the amazing scripting environment) has been insanely fun to use. The fact that I can integrate my RNBO projects has made forgo using JUCE for my exports most of the time, as I can combine the best of both worlds. So basically, you are awesome, you rock, thank you x10.
The big issue that I'm running into however is relating to timing. I had to struggle a bit with solving the sync issue as normally I just use a locked METRO object which will then receive DAW tempo info. After trying a bunch of different things (such as using the PPQN object and finding that the PARAM didn't pass to my TAP TEMPO object the same way that I could set up a click sync in a GEN patch on Daisy), and the HISE Tempo Sync object didn't update the PARAM amount above a certain value (and would soft lock the param object....I think?)
I finally settled on using the converter to send a BPM to MS signal to a param, scale it and then convert again to MS. Yes, it's weird and obtuse, but it works? However, I found that the delay seems to fill a memory buffer and start once the buffer is filled, so the delay scaling may be correct but the start is delayed by the amount of the buffer set. Even if I get rid of the buffer amount entirely it doesn't fix it, it only changes the amount of offset. This is with both my own custom delays as well as a few example files I loaded up.
This is how it is set up.
Now, if there is a better way and I'm being dense, I don't mind you telling me that I'm being totally dumb and do it this way. I would welcome it! If you could check about reproducibility on your side however it would be mega appreciated!
As far as the user request, is it in the cards to be able to import multiple separate RNBO modules and export as DLL files? I tried to swap the SRC folder contents and delete the old headers, but it appears that only one DLL from RNBO can be generated per project. The issue comes up when I want to use my own user modules with HISE modules in the middle, as the only way I've found currently is to load the same "mega" module and turn off what is not being used. Since RNBO works in an "all modules active at all times" fashion however, this can mean that each time the DLL is loaded in to a script node it effectively doubles resource usage.
Anyway, sorry for the long text, and thank you again for your hard work!!
-
@Profbx Thanks for the kind words. I don't have too much experience in RNBO except for making some dummy patches to ensure that the basic functionality works, but the tempo syncing should work in RNBO without having to do it manually (at least when I tested it with a very simple patch back then).
Have you enabled the Tempo Sync mode when creating the RNBO C++ wrapper? If you do that, then it should register correctly to receive tempo events.
If not, it could be helpful if you made a simple dumbed-down RNBO patch that has the isolated tempo sync functionality that doesn't work (IIRC there are many different RNBO nodes for this) and upload it so that I can check it myself.
Re your second request, you should be able to create multiple RNBO nodes within a single DLL, to be used in HISE (and having to make one big RNBO patch with all functions seems like a bad architectural layout). What happens if you create the second RNBO node?
-
@Profbx can I have a question?
Is it a scriptfx you are using? How to load an RNBO patch into it?
I couldn't find a way yet. -
@darkInteger Here's some how to videos
https://forum.hise.audio/topic/8204/max-rnbo-hise-tutorial-vids-available?_=1716365613636
-
@ulrik thx!
I know these videos.
I can import the dlls into a hardcodedfx but I couldn't figure out how to put it into scriptnode...
I can't see the dll under load dsp network.PS: I just figured it out, you can load it into scriptnode as a template!!!
-