View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0007743 | ardour | features | public | 2019-03-21 11:20 | 2019-03-21 11:20 |
Reporter | colinf | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | new | Resolution | open | ||
Product Version | 5.X git (version in description) | ||||
Summary | 0007743: 'Enclosed' region equivalence mode (maybe others too) could use region sync points | ||||
Description | It's pretty much impossible to devise a region equivalence mode that'll do exactly the right thing all the time for any given workflow. 'Enclosed' is the closest to what I normally want (unsurprisingly, since the idea was mine), but even so, it's still not always exactly what I want. Adding more tweaks & heuristics, or more region equivalence modes, is one approach, but I think that adding a manual override to region grouping could be less confusing and more versatile. I propose to make regions with identical sync points equivalent (in Enclosed mode, at least). That way, adding equivalent regions is as simple as selecting all the regions you want to be equivalent and hitting 'v'. I don't think this is likely to conflict with existing use-cases of region sync points, and it seems simpler than adding a new property to each region to signify its equivalence status (though I suppose that's also a possibility). | ||||
Additional Information | Trivial patch to make it so for Enclosed mode attached | ||||
Tags | No tags attached. | ||||
|
region-eqivalence-sync-points.patch (846 bytes)
From 05d7568499bce39b2726a3fa843b9aa98deaeac6 Mon Sep 17 00:00:00 2001 From: Colin Fletcher <colin.m.fletcher@googlemail.com> Date: Mon, 17 Sep 2018 19:06:21 +0100 Subject: Regions with coincident sync points are equivalent in Enclosed mode diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index 13dcdff32..a1e2de630 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -1481,7 +1481,8 @@ bool Region::enclosed_equivalent (boost::shared_ptr<const Region> other) const { return (first_sample() >= other->first_sample() && last_sample() <= other->last_sample()) || - (first_sample() <= other->first_sample() && last_sample() >= other->last_sample()) ; + (first_sample() <= other->first_sample() && last_sample() >= other->last_sample()) || + (sync_position() == other->sync_position()); } bool |