Major Issue with Split Node in Scriptnode
-
We've been debugging this scriptnode issue for a while now and it's driving me absolutely wild
For some reason, splitting a node will result in only the left channel playing in some DAWs. The example below is just two split chains, but the right chain will only output the left signal in a basic plugin, and we're using the most recent HISE develop branch. This only happens in certain DAWs (it varies from computer to computer), but we've confirmed it happens on at least 10 different machines, both PC and Mac. I've also tried compiling from different machines as well.
Has anyone else experienced this? What could possibly be causing this?
-
@Casey-Kolb this happens with both scriptnode and compiled networks, right?
-
also what happens if you put the split node in another container? Try a frame block, a fix32 block and a oversample block.
-
@Christoph-Hart I haven't tried without compiled networks yet. I can test that and the split node in another container today. I'll keep you posted!
-
@Casey-Kolb And can you pinpoint it to a certain host / OS combination apart from Bitwig and Cubase (I don't have those to test).
-
@Christoph-Hart I can set you up with a Virtual Machine that has cubase/bitwig for you to test with.
-
@Christoph-Hart Bitwig has a free trial you can use, same with Cubase I think. We also had reports that it happens in Logic and Ableton Live on certain machines, but Bitwig and Cubase were more consistently reproducible. I'll let you know if there are more – I'm assuming it's broken in FL Studio too because...well...everything is always broken in FL Studio
-
same with Cubase I think.
Yeah, no.
I can set you up with a Virtual Machine that has cubase/bitwig for you to test with.
Thanks, but I think setting up the remote debugger is more pain than installing the bitwig demo :)
-
@Christoph-Hart I have good news: Wrapping the split in a frame container seems to have fixed the issue. What does the frame container do?
-
@Casey-Kolb It processes the child nodes one sample at a time. This is not a "fix" as it will vastly increase the CPU usage, but it shows me that there is something wrong with the block processing code in the split container.
I'm compiling the example as FX plugin to load into Bitwig, so let's see if I can find anything.
-
@Christoph-Hart Noted. For a basic bitcrusher effect I'm assuming this won't be an issue temporarily?
-
@Christoph-Hart said in Major Issue with Split Node in Scriptnode:
same with Cubase I think.
Yeah, no.
-
Start your free 30-day trial version
We're way past that :)
Anyways, I've fired up bitwig and it seems to play back fine, the only thing I'm noticing is that if I switch the audio driver to generic, it will use 441 samples as buffer size (here we go again), and this leads to some crackle noises on the right channel. I'll investigate more, but which buffer size are you using on Bitwig?
-
Alright, forget all DAWs:
HISE -> Tools -> Simulate varying buffer size
Add the compiled bitcrusher code => complete mayhem.
Nice job HISE, you magnificient debugging beast!
-
Alright, it's fixed. It was indeed an issue where the split container expected a full buffer length so when a buffer with something less than this is processed, it started pointing to uninitialised memory which resulted either in silence or (worse) junk signal.
-
-
@Christoph-Hart Woohoo! Thank you
-
@Christoph-Hart Will confirm on our end after merging.
-
@Casey-Kolb The fix with the commit was incomplete (forgot to check HISE compilation), so make sure you pull the latest state.
-
@Christoph-Hart Back in business Works without frame container now.