I have mentioned something about this before on the forum, but now I can be a bit more specific and post an example.
Short story :
It takes quite a lot of thinking and work to keep track of all aliases in a song, i e hooking up a notifier to each and every patterntracks alias_pattern_index_observable whenever tracks are added. You can see in the attached example how I’ve solved this with some custom classes. It’s not very pretty but it seems to work fairly well. However…
Small problem:
A tracks alias_pattern_index_observable will get banged if you insert a pattern in the sequence. Renoise wrongly believes that the alias has changed, when all that changed was the pattern/sequence index.
Perhaps this could almost be considered a bug, unintended, or at the very least an unwanted behavior in many cases?
Please note that it bangs even if the value of alias_pattern_index isn’t changed (i e, a sequence is inserted inbetween the parent and the alias).
Proposal:
Have the alias_pattern_index_observable be connected to the actual patterntrack. I guess that it now is connected to the sequence position or pattern index. The observable should not bang just due to the patterntrack changing its pattern/sequence_index, in my very humble opinion.
Bonus proposal:
An additional observable that just bangs when any alias is added or removed would be very nice. Keeping track of all aliases could then possibly become a little less tedious.
How to reproduce in the example:
Install the tool. Make some patterntrack aliases. Some debugging info will show in the console. Add a pattern in the sequence, before any of the existing aliases. The notifier will bang.
EDIT : Additional unexpected behavior found:
A notifier is banged when a patterntrack with the observable is being removed. The notifier should really just self destruct when the track is removed, right?
PS. The current behavior will probably not break the tool I am working on. I will have to filter out these “false” bangs with gates, but it’s not pretty.
PS2. If a line notifier could be made to bang on each alias too, I wouldn’t have to care about this problem at all in this specific project.