Linkwitz Multiband Comp Question...
-
@SteveRiggs The boost isn't weird at all, in fact, it should be 3dB. You have two nodes in parallel which logically double the signal... I said 3dB in an ideal case scenario, but some eq boost the signal a little bit by default
-
@ustk Makes sense! Cheers. I've gotta make this one as transparent as possible so it's all good to know.
-
@SteveRiggs Are you trying to make multiband compressor? Acording to the picture it doesn't seems like a compressor with crossover filter. It is a dynamic eq/filter.
-
@orange Kinda, but only for 250hz. The other bands wont be used
-
@SteveRiggs Ok so you don't need HP-LP crossover filters
-
You need to wrap the compressor into a chain and a
math.clear
node after it so that you can't hear the compressor but just the dynamic EQ. -
@Christoph-Hart Genius! Thanks. Like this?
-
@SteveRiggs Yeah that's how it should be done, you can now remove the gain compensation
-
And the next thing to do is to wrap the split container into another container that splits up the buffers so that the update rate of the compressor is faster. Try a fix32 or fix64 container (the 100% correct solution would be a frame container but the performance overhead does not justify the sound improvement for this use case)
https://docs.hise.audio/scriptnode/list/container/fix8_block.html
-
@Christoph-Hart Is there anything to do for this compressor behaviour? The gain reduction curve is unnatural?
https://forum.hise.audio/topic/3626/dynamics-compressor-scriptnode-question
-
Thanks. Just tried this but when I add the split container into a fix_64 or fix_32 container it breaks the connection between the compressor and the filters gain. It doesn't seem to show up anymore in the connections list to re-connect it.
Is there another way of connecting them back up once in the fix container?
This is the ancient build I'm using btw, incase that makes a difference...
-
It's cool, I worked it out. I moved the compressor outside of the chain first so that is shows back up in the connections list to re-connect
-
I'm wondering now if there is a way to have these on the front interface in floating tiles?
-
- create a parameter in the main chain node
- link the compressor to the parameter
- read the parameter from your interface with a timer
- do whatever you want with the value
-
Ahhh! Cheers. I've only really ever used timers for normal compressors. Never with anything inside scriptnode.
Just trying to work out how the code would work for that and how to point it to the right things, but as usual... butchered it
Any idea what I need to remove/add to get it to work?
My dsp module is called Script FX2, the slider on the interface I'm testing it with is called CompTest, and the parameter in the top of scriptnode is called SN250Comp. I'll screenshot below after the code....
(I already have 2 timers in the project btw, hence the t3)
// Create Script FX2 Reduction Meter const var Script FX2 = Synth.getEffect("Script FX2"); const var CompTest = Content.getComponent("CompTest"); const var t3 = Engine.createTimerObject(); t3.setTimerCallback(function() { var v = Script FX2.getAttribute(Script FX2.SN250Comp); v = Engine.getDecibelsForGainFactor(v); CompTest.setValue(v); }); t3.startTimer(30);
-
@SteveRiggs Yes, this is the way to handle it, except that it is not recommended to use a timerObject as it is synchronous. For GUI stuff you should take a panelTimer.
Also, the issue is probably because you have a space in your declaration.Script FX2
isn't good ;) -
@ustk The space! That was it. Sorted. Thanks man.
I've never used a panelTimer before. I'll take a look into those now.
Thanks again! Finally getting somewhere now. I'm still a bit rusty after a few weeks off developing anything, but it's coming back slowly
-
@ustk Still tinkering... is it possible to get the filter display screen on the interface in a similar way so you can actually see the filter ducking? I've tried linking up a floating tile to ScriptFX2 and HISE just closes down as soon as you press F5, so I'm thinking not?
-
@SteveRiggs Maybe in the new version of scriptnode we will be able to connect a filterDisplay, but in the waiting, I'd probably go with drawing my own panel...
-
Hmm, not sure about this one, the problem is that you are supposed to compile such a graph to a C++ node but then the filter is not accessible anymore because it's part of a opaque algorithm.
What you could do in that case is to setup a dummy filter or EQ as HISE module, bypass it so that it doesn't eat up CPU, and then set the parameters from your script node patch to match the curve. Then connect the filtergtaph to this module.