Bug: Dynamic Bands & Global Sidechain Connection Issue

by Admin 55 views
Bug: Dynamic Bands & Global Sidechain Connection Issue

Hey everyone, and thanks for diving into this bug report, guys! We've got a tricky one involving the dynamic bands and their connection to the global sidechain in the ZL Equalizer. It seems like even when you're trying to be super specific about which bands should be listening to the sidechain input, they all end up getting hooked up to the global sidechain, regardless of your individual settings. This is a real head-scratcher, especially when you're used to how things worked in ZL Equalizer 1, where this behavior wasn't present. Let's break down what's happening and what we're aiming for.

The Problem: Dynamic Bands Hijacked by Global Sidechain

So, the core issue here is that dynamic bands are always connected to the global sidechain, even when they're not supposed to be. Imagine you're setting up a killer mix in your DAW, and you've got ZL Equalizer 2 fired up. You decide to use a couple of dynamic peak bands – maybe one to catch specific frequencies on your master bus, and another to react to a separate sidechain input, like a kick drum. This is a pretty standard and powerful mixing technique, right? You want precise control, and ZL Equalizer is usually awesome for that.

However, here's where things get funky. In the current version (1.1.3 VST3), as soon as you enable the global sidechain in the top right corner of the plugin, both of your dynamic bands suddenly start reacting to that global sidechain signal. This happens even if you've explicitly configured one of those bands to only respond to its individual sidechain input. It's like the global setting overrides your specific band settings, causing unintended behavior. You thought you were telling one band to listen to, say, your bass guitar, and the other to listen to your drum bus, but suddenly both are listening to your master output. This can completely throw off your mix dynamics and make it super hard to achieve the specific sonic shaping you're going for.

This is a significant departure from how ZL Equalizer 1 behaved. In the previous version, you could reliably set up individual dynamic bands to respond to specific sidechain sources without them being influenced by the global sidechain setting unless you intended them to be. This meant you had granular control. Now, it feels like the global sidechain acts like a big, blunt instrument that forces all dynamic bands to pay attention, regardless of their individual routing.

The Expected Behavior: Granular Control Over Sidechain Inputs

What we're expecting to happen, guys, is pretty straightforward and aligns with the power and flexibility that ZL Equalizer is known for. Only the dynamic bands that are specifically set to use a sidechain input should respond to that sidechain input. It's all about having that detailed, surgical control over your audio. You should be able to choose, band by band, whether it reacts to the track's own audio or to a designated sidechain signal. And importantly, the global sidechain setting should ideally either only affect bands that are not individually configured for sidechaining, or it should be a master override that you intentionally engage when you want all bands to react to the same sidechain source.

Let's paint a picture of the ideal scenario. You've got your ZL Equalizer instance on your master bus. You want to duck some problematic frequencies when your kick drum hits hard. So, you set up a dynamic band, route your drum bus to the sidechain input of the EQ, and configure that specific band to react only to that sidechain input. Meanwhile, you might have another dynamic band set up to control the overall punch of your bassline, reacting only to the bass track's audio. In this ideal world, enabling the global sidechain wouldn't mess with your individual band settings. The band you set up for the kick drum would only react to the kick sidechain, and the band controlling the bass would continue to react to the bass track's audio. The global sidechain would perhaps be a separate setting that, when activated, might make all bands (or perhaps just those not already configured for sidechaining) react to a different, master sidechain source.

This level of control is crucial for advanced mixing techniques like de-essing individual vocal tracks while sidechaining a master bus compressor to the main vocal, or creating dynamic EQs that react differently to various instruments in a complex mix. The current behavior, where the global sidechain seems to indiscriminately affect all dynamic bands, really limits these creative possibilities and can lead to a lot of frustration when trying to achieve precise mix results. We're looking for that granular control that makes plugins like ZL Equalizer so valuable in a professional studio environment.

Technical Details and Environment

To help the developers nail this down, let's get specific about the setup. This bug was observed with Plugin version & format: 1.1.3 VST3. The operating system is Windows 11, running on a Ryzen 7 4800h with Radeon Graphics processor. The Digital Audio Workstation (DAW) where this behavior was encountered is Reaper. These details are super important for reproducing the bug accurately. Sometimes, these kinds of issues can be specific to certain plugin formats (VST3, AU, AAX) or even particular DAW implementations. Knowing that it's happening in Reaper with the VST3 version gives the team a solid starting point for investigation.

We've checked the plugin manual and searched existing issues, and it seems like this specific interaction between dynamic bands and the global sidechain hasn't been widely reported or addressed, which is why this detailed report is so crucial. The absence of relevant log output might indicate that this isn't crashing the plugin but rather a logic or routing error within the code that doesn't necessarily throw an error message that gets logged in the usual way. This often means the developers will need to step through the code during runtime or carefully review the signal flow logic related to sidechain processing.

It's worth noting that the transition from ZL Equalizer 1 to ZL Equalizer 2 often involves significant architectural changes. While these changes bring new features and improvements, they can sometimes introduce regressions or alter existing functionalities in unexpected ways. The fact that this worked fine in version 1 but is problematic in version 2 strongly suggests that the implementation of the global sidechain routing or its interaction with individual dynamic band settings has changed.

Understanding how the global sidechain is implemented is key. Is it a separate audio path that all dynamic bands are always tapped into, with individual bands having a switch to ignore it in favor of their specific sidechain? Or is it more like a master volume control for all sidechain signals? The current behavior suggests the former, where perhaps the