Managing volumes with state behaviour

I always hope that I can get away with having state behaviour for rack/plugin gains disabled, so that if I find when I’m playing with the band, a particular sound isn’t cutting through, I can increase its level, and it’ll be increased on all song states. I find that is often the right thing for many songs.

But sometimes I can’t avoid having state behaviour enabled for a rack/plugin’s gain, because I need it to be at different levels for different parts of the song.

The problem I often then face is that I need to boost the gain of a rack for a whole subset of song states, because the sound needs to be the same level across those states. So I have to go through each state, trying to tweak the faders to match.

I often think it would be great if there were some feature that allowed rack/plugin gains to have identical state behaviour across a group of song states, so if you change it in one of those states, it’ll change it on all states within the group; but remains unchanged for those outside of the group.

I have no idea how this would be presented in the UI though. Perhaps you could right-click on a fader and choose “Matches previous state” or something, with some subtle fader indication that it’s now linked to the previous state’s level.

I’d be interested to know if other people hit this same situation, or whether this is a real niche thing that only I happened to do a lot.


1 Like

Thinking off the top of my head here, but what if these objects had two gain settings - one state controlled for balancing, and one not state controlled for on the fly adjustments?

I typically use two layers of volume management:

  • static mixing using the “outside” volume slider on my racks
  • dynamic mixing using the rack output volume inside the rack

I balance the levels between my racks with the outside sliders in table view - this makes it very easy to access and easy to see at a glance where things are.

If there’s just a volume boost for one or two states in a song (boosting the piano for a piano solo section), I’ll mostly just activate state behavior for rack output gain and push it up for this state.

For “manual” (actually typically “pedal”) changes to volume, I use a binding within my racks that translates CC7 to (internal) output volume. So all manual changes I am making are relative to the stativc level I have set with the outside volume slider.

But if I have automated volume changes for an instrument throughout a song (e.g. my hammond organ in With A Little Help), I’ll use a mechanism that changes the inside rack volume instead of automating the outside gain level. These days, I use a “Smoothie” rack that I put alongside the specific instrument rack, with its Internal (smoothed) output gain bound to the internal output gain of the target rack with a binding. So it’s one Smoothie rack for every instrument rack I want to fine-automate.

Now I define the state specific level boost or reduction with the output gain slider on the Smoothie rack, and it will propagate to the output gain of my instrument rack - but SMOOTHED… So no more volume jumps…

And if I find that my Hammond doesn’t cut through, I can still increase the overall level of the Hammond rack across all states by adjusting the output gain on the actual Hammond rack.

That’s my implementation of @brad’s idea:

So essentially, I am using outside rack output gain for static mixing, and inside rack output gain for dynamic mixing - great that every rack has two levels of output gain!

Since I have Smoothie (thanx, @Hamlen!) , I find myself using this a lot for my volume (and Expression) automation. The big advantage to this is that this is very visible: I see both volume levels (static and dynamic) at a glance on the two racks; no need to jump between routing and bindings view all the time, as I had to do with my previous methods of automating levels (state specific sending of CC7 to the racks).

(And if I didn’t need levels to smoothly fade between song states and accept jumps, I could also insert a simple embedded rack that does nothing and bind its outer gain to the target’s inner gain. This would still give me two faders, one for static and one for dynamic mixing).



1 Like

Thanks @brad and @Torsten for your thoughts!

However, I think you may be misunderstanding what I was trying to describe. I too use a multi-layered approach to volume control, with internal volume control for dynamics and “on the fly” changes, for example from an expression pedal or Smoothie-style changes, and external volume control for state-driven volume changes (or whole song level, if state behaviour is off). I also sometimes use a 3rd level, which is the level on the output route of my instrument racks to my overall Output Rack, which I never have state behaviour for, so always applies globally to the whole song.

But what I was trying to describe is the problem where you might have state behaviour enabled on a gain (whether internal in a rack or external), and you find that you need to boost or cut the gain by the same amount for a whole sequence of states.

For example, suppose my song-state-dependent gains for a given instrument rack are:

State 1: -2db
State 2: -2db
State 3: -2db
State 4: -0.7db
State 5: -0.7db
State 6: -0.7db
State 7: -0.7db
State 8: -0.7db
State 9: -2.0db
State 10: -2.0db

And I find that that -0.7dB isn’t quite enough for that section of the song (states 4-8), and actually -0.4db is what I need. I have to go through states 4-8, manally tweaking each one to be exactly -0.4db, which can be a little fiddly. It’s worse if there are more states that should be at the same level, or if you need to boost it for every chorus in the song or something. It’s worse if you’re rehearsing with a band, and need to keep making the same adjustment across a whole range of states, in order to get the right balance with the band.

So I was wondering if there was a way of saying, the gain for states 4-8 is always the same. If I modify the gain on state 4, it’ll change it for states 5-8 also. So kind of like a half-way house between state behaviour off (all states the same) and state behaviour on (all states independent), where a subset of the song states always remain the same.

So some random ideas for how this could be implemented:

  • For a parameter such as a gain fader, with state behaviour enabled, add a flag you can access via context menu to say “Matches previous state”, which ties its level to the level in the prevous state. But it might be difficult to visualise how these things are linked.
  • Right-click on a parameter such as a gain fader, and choose “State Automation”, and it brings up a nice graph showing the value (y-axis) and song states (x-axis), allowing you to move points up/down, and multi-select points to move them all in unison. Rather like a synth envelope graph, but across song states. Yes, I know this would be a huge job! But it would be a useful feature for visualising how things are automated using state behaviour, which is currently somewhat hidden.
  • Some way of defining “Sections” of songs, which are groups of song states, and an option to choose “Section state behaviour” as a new flag alongside the existing state behaviour on/off. This would mean that within a “Section” of the song, that parameter/gain is the same for all of the section’s states. But outside of a “Section”, it reverts to whatever is set for normal state behaviour. So with state behaviour off, using that “Section” state behaviour would allow you to define a set of states that are the exception and different to the whole-song value. And with state behaviour on, using that “Section” state behaviour would allow you to unify the value for a given range of states, while being fully state-dependent outside of that section. It’d add another layer of complexity to Cantabile though…

Maybe I’m the only Cantabile user who would find this useful, I don’t know. I think that graph visualisation approach would be useful to a broad set of users though, to make state behaviour more visible/controllable.


1 Like

Ooooooh, I like the idea of graph-based state behavior editing! Reeeally tasty idea…

Linking a state behavior to a previous state might open up another can of worms of unintended consequences. E.g. What if you insert a state between two previously connected states, etc. Visualization could work for the gain fader (grayed out for those states where it is controlled by previous state), but for all sorts of other state-controlled items possibly difficult to visualize. And a lot of potential confusion - I wouldn’t be in favor of that approach.

Sections: interesting, but I’d guess a lot of added complexity (and potential things to go wrong) for a relatively niche case.

But graph editing of those state behaviors that can be expressed numerically (won’t work for selected rack state or a route’s target setting) would be a definite plus!

The graph idea is interesting.

Coincidentally the last couple of days I’ve been thinking about ways to give more visibility into the overall state of States, but was thinking more along the lines of a table view.

Grouping/linking properties across states is an interesting idea and I can definitely see that value in it, but I’m also starting to feel like states are starting to outgrow their original design/implementation.

Lots to think about here - thanks for the feedback.

1 Like

Just putting this in perspective: IMHO Cantabile’s abilities to automate parameters are far superior to anything else on the market in this segment; I guess @Neil_Durant and I (and some other gurus here) are pretty much stretching things to their limits, but we aren’t representative for the average Cantabile user, to whom this discussion could be confusing and possibly frightening :wink:

Maybe for the next level of sophistication, it’s time for a separation of state properties / state behaviors (as a way of defining “configurations”) and “parameter automation” - with a more holistic perspective of managing the behavior of certain dynamic parameters across a song. This could then be customized to control and edit stuff like volume or effects parameter automation (including smooth state transitions) and make editing the “curve” of these parameters across states easier.

Something to think about for the next major release step…


I agree, I’m very conscious about suggesting stuff that will add even more complexity to this already incredible (but potentially daunting) software.

The graph thing could actually help make Cantabile more understandable though.



As Torsten said, this is a super juicy idea. Thanks Neil. :yum:


I lost my geek tendencies a few years ago, but after seeing the new, amazing advances, and ideas, I am salivating a pool of slobber. These discussions are seemingly turning into a nerd group orgasm, which I am totally enjoying!


Ahh, I’m drooling too. :crazy_face:

And I can see the future. Extra work for Brad. :slightly_smiling_face:

1 Like

I’ve been using BlueCat Mixer for a long time. Currently, there are bi-di Bindings tying it to my Behringer X-Touch, Mini, and Motot61. The faders dance around driving my cat crazy (short trip). To update a volume, I just grab a fader and move it. That updates the State and sometimes it remembers it for next time. It sounds better than it actually works. And it is left over from Forte days. I’ve made some rough changes to add Smoothie, but it’s not exactly simple. I’ve just been too lazy to try to re-think the whole thing. Also, the Motor61’s keybed leaves something to be desired. So, I’m open to alternatives like geekiness being discussed.


1 Like

Still love my Blue Cat stuff, but forgot to use it for a few things I am working on. Thanks for reminding me Richard! I have wasted so much time. :roll_eyes: