The HLAC codec is used throughout the entire signal path and reduces memory usage by 50% for the preload buffers and increases the streaming perfomance because the files are smaller (up to 40%). Actually there‘s no reason not to use it...
Posts made by Christoph Hart
RE: Collaborative project!
framex_blocknodes are not supposed to be used in an actual project (at the end), they are just useful during development, that's why the C++ code generator is part of scriptnode. This snippet should run about 10x times faster if it's compiled as custom node.
However Greg is right, I am currently rewriting SNEX to be able to compile the C++ generated code from a scriptnode patch, so the workflow for using frame blocks in almost-native performance might be vastly improved.
If you don't want to wait (it's a really big TODO list here), you might get the CPU down to sensitive levels by using a
fix16_blockinstead of a framex_block.
RE: Add Widgets & Panels at runtime
Dave is right, every UI control has to be declared at the beginning. The reason for this is that the UI controls also act as data model and for the sake of preset consistency you need to have every slot defined (see https://docs.hise.audio/working-with-hise/project-management/user-presets/index.html)
With C++ you can easily decouple this connection and build up a separate data model which the UI controls act upon (which is what I am doing in PercX).
RE: Timing, Timing, Timing......
If you want precise musical timing you need to use the
onTimercallback, the other ones will run in the UI thread.
If you want 100% sample accurate timing, take the timestamp of the timer callback into account (
Message.getTimestamp()works there also)...
RE: TimerObject execution time-out error
Every time I have a project getting big, Hise behave strangely. I say strangely because it's not 100% the same issue all the time.
One thing that might cause issues is the compile time-out which fires if you have a lot of stuff to do in the first onInit call. For example loading a lot of audio files might cause the time-out to fire, but if you compile it multiple times, it wents through.
The default is 5 seconds, but you can raise that value if you run against that limit with bigger stuff in the HISE settings (search "Compile Timeout").