See also 72af571f0c, ATAV for Processors cannot be identified by
Parameter alone. STAV uses a std::map<Evoral::Parameter, ..>
that is only valid for unique parameters.
The map cannot store Evoral::Parameter(PluginAutomation)
because it its not unique.
This fixes an issue with using
StripableTimeAxisView::_automation_tracks
for PluginAutomation. The latter is indexed per-plugin in
RouteTimeAxisView::processor_automation
Evoral::Parameter(PluginAutomation) is only unique per plugin,
and hence cannot be used in STAV.
Actually I'm not an author of this theme. I've decided to try... if there is no objection. Added comments to < Color > section.
I use this picture as a reference:
In the original file there was an excess line (176) - deleted in new version:
176 <ColorAlias name="lua action button: fill" alias="theme:bg"/>
177 <ColorAlias name="lua action button: fill" alias="widget:bg"/>
a screenshot:
* take port latency into account
* fix DLL initialization, and initial speed calculation
* igonre out of bounds BPM
the DLL bandwidth still needs to be tweaked, likewise the
hardcoded 1st order LPF to track BPM (vs speed).
* share port_latency latency query for MTC and MIDIClock slaves
* propagate set_session()
* share session_connections for MasterViaMIDI
This is in preparation to allow MClk slave to access midi-port-latency
This removes the restriction to not place a CD marker at
session start.
This helps in getting rid of some inconsistencies. Also,
the previous policy didn't help in enforcing the Red Book standard.
Two seconds of pregap are implicitly created by DDP mastering tools
and CD burning software.
upper_bound() returns the first element that is **greater** than
the given value. So during reverse playback we need the value
before that.
Likewise for forward playback, lower_bound() returns an iterator
pointing to the element before the one that need to be played.