OK, interesting! This mechanism doesn’t seem to work for Racks, however - no state information whatsoever is created for new rack hosts, at least according to the song files I looked at. So if you update this mechanism to work for rack hosts as well, the problem of “undefined” state behavior should be solved?
Regarding the pre-setting of state behavior to be as “invisible” as possible in other states, I don’t 100% agree with the approach. I can understand your idea of new objects not affecting existing states if possible; I just haven’t found it very useful so far, TBH. When I insert a new object in an existing song, I am very aware that I am making a change, and I typically am not in the mindset “I am inserting a plugin / rack / route into a STATE”, but rather “I am inserting something into a SONG” - so I take care that I massage its behavior into something useful across the whole job - I find that is my job and not Cantabile’s.
So when, say, I have a song with multiple states, and I find that the piano could do with a string layer, I don’t want Cantabile to decide: “I’m going to de-activate that string layer in all states except the one you were in when you dropped the string layer in”, but rather make that decision myself explicitly. I don’t want to find myself scratching my head “why are the strings so silent in the 2nd chorus?” only to find that the route was de-activated by this mechanism…
So when inserting a new rack into a song, I would expect its default configuration (running mode “running”) to be the same for all states in the song - simple and non-surprising… Can’t think of an alternative default configuration that would be more useful for a rack.
There is only one scenario I have found where the existing mechanism was useful: when adding a new plugin to a multi-instrument rack with individual instruments being switched on/off depending on rack state. In that case, it saved me some state editing to have this new instrument only active for a specific state. But in that case, I was prepared to go and (1) make run/bypass mode state-dependent and (2) de-activate the plugin and use “Update All States” manually, in order to create that configuration; easy and predictable.
So I’d rather have new objects be inserted in a default state (and state behavior as defined per object type) in all song states, and having the responsibility myself to adapt them to song or rack states afterwards. Less potential for nasty surprises…
Just my 0.02 EUR, though - others may find the current behavior very intuitive.
Cheers,
Torsten