• SONAR
  • Undoing a synth rack deletion routes track to wrong synth.
2014/01/08 01:12:25
sharke
I still find the synth rack to be a little buggy and unstable - I've had some bad crashes from turning synths on and off, and tonight I had the weirdest thing happen which had me scratching my head for ages. 
 
I was doing some house cleaning in the rack and deleting unused synths and their related tracks. In the course of this, I accidentally deleted an instance of Kontakt along with its related tracks. Immediately realizing what I'd done, I undid the action. And what happened was this: Sonar restored the tracks and the synth, but it routed both the MIDI track and the audio track to a different synth - an instance of Reaktor. 
 
Correct me if I'm wrong, but when you delete a synth and it's associated tracks and then undo that action, you should get back to where you were, no? The tracks should be routed to the same synth. 
 
I could half understand what was happening if the tracks were routed to the first synth in the rack when I undid the deletion, as a kind of "default" routing. But the synth they were routed to is #8 in the list. It just seems so random and arbitrary. As an experiment I tried deleting another synth with its tracks and undoing it - lo and behold the tracks were routed to the same instance of Reaktor as well. Has anyone else experienced this? Is it a bug? I'm going to try and reproduce it in a fresh project. 
2014/01/08 01:24:00
sharke
So I've been able to recreate this in a fresh project. I haven't narrowed it down to a formula yet, but I'm getting there...
2014/01/08 01:42:44
sharke
OK so here's the recipe if anyone wants to check it out to see what I mean:
 
1) Insert two synths with associated audio/MIDI tracks. For the purposes of this recipe, I used SI-Bass and SI-Electric Piano. 
2) In the synth rack, delete the first synth (in this case SI-Bass) and its associate tracks.
3) Undo this action
 
The deleted synth and its tracks reappear, but the tracks are routed to the other synth (in this case SI-Electric Piano). Anyone else?
2014/01/08 04:43:17
Jekyll Vance
I confirm. The bug is probably connected with instrument tracks. When I use separate midi+audio tracks for synth everything works normally.
2014/01/08 07:57:35
icontakt
Confirmed. This is because undo doesn't restore the order of the list in the output field correctly, isn't it?
2014/01/08 11:14:27
bitflipper
Seems like an unreasonable expectation, sharke.
 
Here's my rationale, although it's admittedly conjecture:
 
When you delete a synth, you unload it completely. When you subsequently undo the deletion, you're actually re-inserting the synth and repeating all the behind-the-scenes stuff that implies. The synth is now a brand-new instance with no knowledge of its previous incarnation. The track, meanwhile, has no way of knowing that this new synth is a suitable substitute for the one it used to connect to. Although the new synth instance looks the same to you, it's doesn't look the same internally, where it's identified by an instance ID that's different from the original installation.
 
BTW, I've done exactly the same thing myself many times, accidentally deleting the wrong synth. That's why before starting any housekeeping (including deleting tracks or unused effects) the first step is to save the project. If, during the course of cleaning up, I make a boo-boo, I don't rely on Undo to save me. Instead, I close the project without saving and re-open it. Never fails, and has the added benefit of wiping out the undo history so I don't accidentally undo too far back - I've done that, too.
 
2014/01/08 11:31:12
sharke
Jekyll Vance
I confirm. The bug is probably connected with instrument tracks. When I use separate midi+audio tracks for synth everything works normally.


It's not limited to instrument tracks at my end. However, it does seem to be related to the position of the synth in the rack in a way that I haven't yet explored. For instance, in my recipe above if you delete and undo the second synth, it works properly.
2014/01/08 11:36:01
sharke
bitflipper
Seems like an unreasonable expectation, sharke.
 
Here's my rationale, although it's admittedly conjecture:
 
When you delete a synth, you unload it completely. When you subsequently undo the deletion, you're actually re-inserting the synth and repeating all the behind-the-scenes stuff that implies. The synth is now a brand-new instance with no knowledge of its previous incarnation. The track, meanwhile, has no way of knowing that this new synth is a suitable substitute for the one it used to connect to. Although the new synth instance looks the same to you, it's doesn't look the same internally, where it's identified by an instance ID that's different from the original installation.
 
BTW, I've done exactly the same thing myself many times, accidentally deleting the wrong synth. That's why before starting any housekeeping (including deleting tracks or unused effects) the first step is to save the project. If, during the course of cleaning up, I make a boo-boo, I don't rely on Undo to save me. Instead, I close the project without saving and re-open it. Never fails, and has the added benefit of wiping out the undo history so I don't accidentally undo too far back - I've done that, too.
 


I totally get where you're coming from regarding a new instance of the synth with a new ID etc, but when you delete a synth in the rack and have "remove associated tracks" checked in the dialog, the synth deletion and the track deletions count as one undo action. To me, it seems reasonable to assume that making that undo should both restore the synth and the tracks along with the same output routing as before.
2014/01/08 11:50:44
SilkTone
There is no reason why the synth state should not be part of the undo/redo logic (it is just a blob of binary data to the host). Therefore deleting a synth and all of its associated tracks and then undoing should work as expected. The host should restore the synth state from the binary blob saved in the undo/redo stack, and also be able to restore all off the original routing.
 
When you load an existing project, the exact same thing happens: The host loads new instances of all plugins in the project and then sets their state from the binary blobs that were also saved in the project file.
 
I see no reason why delete/undo cannot work as expected. This is definitely a bug.
2014/01/08 13:46:32
sharke
Hmm...I'd like to hear Cake's take on this. I have a feeling they'd class it as a "limitation" rather than a bug. To me though, it's a bug because something's not working as reasonably expected. Undo should do just that - undo. I can't find anywhere in the manual that says anything about a synth/track deletion undo not preserving the original routing. 
12
© 2026 APG vNext Commercial Version 5.1

Use My Existing Forum Account

Use My Social Media Account