Better Compound Region Handling

Hello,

So I have been working heavily with and exploring compound audio regions lately, and there are several problems with how Ardour currently handles them.

There are a few plain-old (but critical) bugs, and then there are structural changes you might consider implementing sometime down the road…


Section 1: Bugs…

As for mere bugs, I tested every single bit of data I could think of, and only the following data fields are NOT preserved in the recreation of ‘child’ regions when Uncombine is used on a previously-combined ‘parent’ region ( → after saving a project and a relaunch of Ardour(!)):

  • Envelope curve/points. :x:
  • Fade-in/out lengths. :x:
  • Fade-in/out states (-activate or not). :x:
  • Lock state (-although unlocking all ‘child’ regions is probably a good move, so when Uncombine is used on the parent/compound region, ‘child’ regions don’t immediately, awkwardly ‘snap back’ to some former position). :x:
  • Original region layering. :x:

(-Some of this has been noted in bug reports here (by me) and here.)

Now, as for envelope, the original data points that define ‘child’ envelope curves do still exist in the XML. But Ardour fails to find and use them in the attempted recreation of ‘child’ regions…

And this is the same for fade-in/out lengths and states. -All that info is still within the XML, Ardour is just not finding and using it upon ‘child’ recreation, e.g.:

Etc…

Finally, I can also see how at some point a decision was made to apply any initial or end fade data to the combined/parent region and thus deactivate those exact fades for the relevant children (so no ‘double fading’ occurs). This was (and is) a smart decision. -But, during child recreation (i.e. after using Uncombine), those initial and final fades of a child region group should be reactivated.


Section 2: Possible Improvements…

Now, as for potential structural changes, here’s what I humbly recommend:

Compound regions should function more as ‘dynamic containers’ with the ability to “Expand” and “Collapse” parent regions in order to edit their contents.


For your convenience and clarity, I made some pictures using GIMP to convey this idea:


With those pictures, that’s pretty much all I wanted to express.

~Thanks for reading and considering!
:v:
-J

1 Like

https://tracker.ardour.org/view.php?id=5772
https://tracker.ardour.org/view.php?id=7791
https://tracker.ardour.org/view.php?id=4591#c14069
https://tracker.ardour.org/view.php?id=9947