Commit graph

17750 commits

Author SHA1 Message Date
Paul Davis
968da60e90 fix MIDI timestretch (libardour part) 2021-08-13 12:51:32 -06:00
Paul Davis
3197d24f38 fix expression ordering when multiplying region length by ratio_t 2021-08-13 12:51:32 -06:00
Paul Davis
683512f5a9 fix initializer for TimeFXRequest::time_fraction (denominator not allowed to be zero) 2021-08-13 12:51:32 -06:00
Paul Davis
78233b343f libtemporal: add operator<<() for ratio_t 2021-08-13 12:51:32 -06:00
Paul Davis
209908f700 libtemporal: improve/fix implementation of timepos_t::operator+=(timepos_t) 2021-08-13 12:51:32 -06:00
Paul Davis
9438295607 libtemporal: fix implementation of timecnt_t::operator+ (timecnt_t) 2021-08-13 12:51:32 -06:00
Paul Davis
13f4ee2c1e temporal: remove unnecessary TempoMap::dump_locked() method 2021-08-13 12:51:32 -06:00
Paul Davis
47aa232f60 temporal: fix up creating/resetting tempo map state via XML 2021-08-13 12:51:32 -06:00
Paul Davis
d1c695a1a6 fix logic for setting state of tempo map from XML
We are using RCU for the tempo map so ... we need to use it
2021-08-13 12:51:32 -06:00
Paul Davis
fa67e07d87 temporal: remove debug output 2021-08-13 12:51:32 -06:00
Paul Davis
1e9e02e42f temporal: fix setting tempos and meters from XML state 2021-08-13 12:51:32 -06:00
Paul Davis
37332af742 fix incorrect use of TempoMetric API 2021-08-13 12:51:32 -06:00
Paul Davis
7dc3db49eb use DoubleableBeats in VST3 to provide plugin API required doubles for beat time 2021-08-13 12:51:32 -06:00
Paul Davis
3eac6ac7dc Temporal: remove last (?) double-based method 2021-08-13 12:51:32 -06:00
Paul Davis
f66a6c779e adapt to DoubleableBeats and so forth (libs edition) 2021-08-13 12:51:32 -06:00
Paul Davis
3e8f4d80fb remove (almost) all floating point operations from Beats, add DoubleableBeats
The latter is a "wrapper" around Beats that provides ::to_double() for those times when we
absolutely need a floating point representation
2021-08-13 12:51:32 -06:00
Paul Davis
3010bed4ef remove old tempo(map) implementation 2021-08-13 12:51:32 -06:00
Paul Davis
e38e828152 use explicit timepos_t() for region start property in property lists (libardour edition) 2021-08-13 12:51:31 -06:00
Paul Davis
94afcba111 libardour: fix comment in Region::source_beats_to_absolute_time() 2021-08-13 12:51:31 -06:00
Paul Davis
80986b9445 libtemporal: add (commented) debug output for timepos_t::distance() methods 2021-08-13 12:51:31 -06:00
Paul Davis
6fe4394c54 fix parameter name in comment 2021-08-13 12:51:31 -06:00
Paul Davis
8c22ade428 libtemporal: fix Beats::round_to_subdivision() 2021-08-13 12:51:31 -06:00
Paul Davis
0fa56402be move DEBUG::SnapBBT into libtemporal 2021-08-13 12:51:31 -06:00
Paul Davis
7c61fe405c Evoral: cleanup for explicit Beats::operator bool() 2021-08-13 12:51:31 -06:00
Paul Davis
34d798327b libardour: cleanup for explicit Beats::operator bool() 2021-08-13 12:51:31 -06:00
Paul Davis
e188fbe0ee fix incorrect use timepos_t::position (incorrect ordering) 2021-08-13 12:51:31 -06:00
Paul Davis
df0ac42f54 Temporal: cleanup for explicit Beats::operator bool() 2021-08-13 12:51:31 -06:00
Paul Davis
05740e7069 Temporal: mark Beats::operator bool() as explicit, to avoid unintended/accidental use when implicitly casting to int/float types 2021-08-13 12:51:31 -06:00
Paul Davis
5e0cf747bb Temporal: removed unused std::numeric_limits<> definitions for timeline types
There can be no single ::max() or ::min() value for these types because the time domain matters. With a given
tempo map, a certain beat value represent a time before or after the maximum possible audio domain value
2021-08-13 12:51:31 -06:00
Paul Davis
de3eb54958 Temporal: in an update to the previous commit, actually remove timepos_t::compute_ticks() rather than claim to implement it 2021-08-13 12:51:31 -06:00
Paul Davis
400018e121 Temporal: implement timepos_t::compute_ticks() 2021-08-13 12:51:31 -06:00
Paul Davis
0ce40fc648 Temporal: fix timepos_t (Beats) constructor
flag bit was set incorrectly
2021-08-13 12:51:31 -06:00
Paul Davis
a01bb90c04 libardour: remove _length_beats member from MidiSource and use Source::_length
timecnt_t can represent either time domain
2021-08-13 12:51:31 -06:00
Paul Davis
9e58c43ecd libardour: change flow control to return early rather than use condition scope in Region::set_length() 2021-08-13 12:51:31 -06:00
Paul Davis
9ca376c232 libardour: fix another NUTEMPO warning by replacing a BeatSamplesConverter with timecnt_t 2021-08-13 12:51:31 -06:00
Paul Davis
170541deb7 libpbd: fix implementation of int62_t::operator== and ::operator!=
Reversed logic error
2021-08-13 12:51:31 -06:00
Paul Davis
747281a244 Temporal: fix implementation of timecnt_t::operator= (timecnt_t const &)
It is OK now to have inconsistent time domains inside a timecnt_t
2021-08-13 12:51:31 -06:00
Paul Davis
3900537fcf split Beats::round_to_subdivision() into source module
Rounding to bar requires access to the tempo map, and we don't want this in
the beats.h header
2021-08-13 12:51:31 -06:00
Paul Davis
0d15797499 small cleanup to Source length API 2021-08-13 12:51:31 -06:00
Paul Davis
6c6d7fa874 fix 2 NUTEMPO #warnings in smf_source.cc 2021-08-13 12:51:31 -06:00
Paul Davis
d995a07011 remove AutomationList::paste since it is no longer required (just use ControlList::paste()) 2021-08-13 12:51:31 -06:00
Paul Davis
779a04b0ce Evoral: alter ControlList::paste() to internally change time domain of pasted events 2021-08-13 12:51:31 -06:00
Paul Davis
c64db47b37 use new libtemporal sample rate mechanism (libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis
5bef968069 Temporal: replace thread_local sample rate with callback to get sample rate 2021-08-13 12:51:31 -06:00
Paul Davis
6e9f57d2ad Temporal: remove scope braces left over from when we used a lock to protect the tempo map 2021-08-13 12:51:31 -06:00
Paul Davis
b6f2e39ed4 Temporal: remove BarTime 2021-08-13 12:51:31 -06:00
Paul Davis
5987376afc Temporal: avoid recursive descent in TempoMap::quarters_at (timepos_t) 2021-08-13 12:51:31 -06:00
Paul Davis
3ca2be321d use cleaned up Temporal ::quarters*_at* API (libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis
43d84620e0 Temporal: clean up API to remove ambiguity about ::quarter*_at_*
superclock_t and samplepos_t have the same underlying C++ type, so methods that accept one or the
other as an argument need to be named to make it clear which type they accept. We do not need
the superclock_t variant publically, but it turns out to be useful within TempoMap.
2021-08-13 12:51:31 -06:00
Paul Davis
bed76798f3 manual fixups after rebase against master (general libs edition) 2021-08-13 12:51:31 -06:00