Commit graph

20520 commits

Author SHA1 Message Date
Robin Gareus
e3297a6a84
Fix MIDI deinterlace #9422
De-interlace works by first creating 16 SMF Sources, and then
only using sources that are actually required.

However SourceFactory::createWritable by default emits SourceCreated,
which added all the 16 Sources to the Session. Later adding only the
required Sources resulted in duplicate IDs.
2023-08-22 19:00:58 +02:00
Robin Gareus
dd4e5dfc96
Build-system: remove duplicate dis/en/able options
e.g. we had both --vst3 (default) and --no-vst3.
A user could specify both, which is confusing.
2023-08-21 19:25:26 +02:00
Paul Davis
e9be3beb2a add get/set state methods to TimeDomainProvider
These are not used yet, because only the Session really acts as a Provider
and it uses the Config::default_time_domain to serialize that state
2023-08-16 16:33:17 -06:00
Paul Davis
0227eab138 remove unused source file 2023-08-16 12:33:09 -06:00
Paul Davis
c5a0c0f6e0 remove some debug output 2023-08-16 09:33:16 -06:00
Paul Davis
0e40f030ad reversible domain swaps for Locations 2023-08-16 09:32:41 -06:00
Paul Davis
06e9bf6ca4 domain swaps for MIDI CC and other controls 2023-08-16 09:06:10 -06:00
Paul Davis
b240423e50 session: add API to get access to the current reversible command (if any) 2023-08-16 09:04:22 -06:00
Paul Davis
f7fd015cb3 no, really, no Pitches handling (extends previous commit) 2023-08-15 11:29:52 -06:00
Paul Davis
4246009864 no need for domain bouncing for "pitches" in a MIDI model
The Pitches representation is just an optimization in Evoral::Sequence, and just
represents note data differently
2023-08-15 11:25:54 -06:00
Paul Davis
a50f38d164 domain bounce handling for sysex and patch changes 2023-08-15 10:27:21 -06:00
Paul Davis
f92dcfa068 domain bouncing for Automatable/ControlLists 2023-08-15 08:34:42 -06:00
Paul Davis
457b94ba65 fix computation of note length after tempo mapping 2023-08-15 00:04:19 -06:00
Paul Davis
71d27e7d81 add a couple of #warnings 2023-08-14 23:42:08 -06:00
Paul Davis
076cb86912 next iteration of changes to handle time domain bounces as undoable 2023-08-14 23:42:08 -06:00
Ben Loftis
fd5dfe27c5
region groups: some operations should implicitly group new regions
* imported regions
* newly-recorded regions
* regions that result from a Split or Separate
* pasted regions
2023-08-10 16:55:25 +02:00
Ben Loftis
d1ee95e886
region groups: use group-id instead of equivalent-region, when provided 2023-08-10 16:55:25 +02:00
Ben Loftis
8cd69a633b
region groups: save and restore the group-id counter for this session 2023-08-10 16:55:25 +02:00
Ben Loftis
1d5ec57794
region groups: define an API in region.h for grouped regions 2023-08-10 16:55:20 +02:00
Paul Davis
92fbee6312 do not abort when handling a region whose length has the wrong time domain 2023-08-07 16:36:11 -06:00
Paul Davis
e7c35cf601 API change for the start of making tempo mapping undoable 2023-08-07 16:33:16 -06:00
Paul Davis
0223be5312 pbd: fairly unconscionable that Undo stuff in libpbd is not namespaced, so now it is 2023-08-07 16:33:16 -06:00
Paul Davis
6b34578dfd minor fix for previous commit (this change is still pending) 2023-08-07 16:33:16 -06:00
Paul Davis
afe5331a0b pbd: fairly unconscionable that Command in libpbd is not namespaced, so now it is 2023-08-07 16:33:16 -06:00
Paul Davis
47a7a16c43 temporal: move another domain-swapping object to the right header 2023-08-07 16:33:16 -06:00
Paul Davis
d87b10037b temporal: new object to try to make domain swaps undo-able 2023-08-07 16:33:16 -06:00
Robin Gareus
52c8a23aff
Add Lua bindings to print plugin control outputs 2023-08-06 21:58:33 +02:00
Paul Davis
d035cb0834 some minor cleanups after rebase against master 2023-08-02 17:21:56 -06:00
Paul Davis
ada7fc16aa temporal: another place to ensure that a BBT marker defines a beat position 2023-08-02 15:23:43 -06:00
Paul Davis
ca348ce0d9 temporal: add TempoMap::replace_bartime() 2023-08-02 15:23:43 -06:00
Paul Davis
206f7d3c40 fix compilation errors (last commit happened too early) 2023-08-02 15:23:43 -06:00
Paul Davis
aa0e882c5f regions: force position time domain when a region is added to a playlist
Q: why not length time domain also?
2023-08-02 15:23:43 -06:00
Paul Davis
1fd5f0d9e9 regions: attempt to prevent accidental time domain changes to length or position 2023-08-02 15:23:43 -06:00
Paul Davis
f1b8a98a62 remove debug output 2023-08-02 15:23:43 -06:00
Paul Davis
638978c527 fix thinko with tracks-follow-session-time when creating stripable 2023-08-02 15:23:42 -06:00
Paul Davis
3367c03353 use tracks-follow-session-time option 2023-08-02 15:23:42 -06:00
Paul Davis
08683674ce remove glue-new-regions-to-beats option, add new tracks follow session time option 2023-08-02 15:23:42 -06:00
Paul Davis
3d64972ca2 libardour support for propagating track time domain changes into playlists and thence regions 2023-08-02 15:23:42 -06:00
Paul Davis
7fe3becf2d temporal: fix TimeDomainProvider::set_time_domain_parent() to unset have_domain 2023-08-02 15:23:42 -06:00
Paul Davis
71953a9929 locations: ensure they follow session time when start/end is set 2023-08-02 15:23:42 -06:00
Paul Davis
1b9f4999df locations now follow session time domain, always (probably) 2023-08-02 15:23:42 -06:00
Paul Davis
0c9bdd817d temporal: fix TimeDomainProvider::set_time_domain() 2023-08-02 15:23:42 -06:00
Paul Davis
4cdac29029 attempt to follow time domain changes in playlists when tracks change 2023-08-02 15:23:42 -06:00
Paul Davis
1fce815e2d temporal: expand TimeDomainProvider API 2023-08-02 15:22:52 -06:00
Paul Davis
1a83860016 forward propagate session default time domain changes 2023-08-02 15:22:52 -06:00
Paul Davis
df188996ec session has a default time domain 2023-08-02 15:22:52 -06:00
Paul Davis
c293876518 playlist IS-A TimeDomainProvider
It has Session as its initial time domain parent
2023-08-02 15:22:52 -06:00
Paul Davis
3b565693c8 objects don't have a time domain, they have a time domain provider (libs) 2023-08-02 15:22:52 -06:00
Paul Davis
2bbf06c8cc class name change to clearly disambiguate Evoral::ControlList (a list of time/value pairs) from lists of Controls in libardour 2023-08-02 15:22:45 -06:00
Paul Davis
af2e0e279c temporal: initial version of a time domain provider object 2023-08-02 15:20:58 -06:00