Commit graph

17742 commits

Author SHA1 Message Date
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
Paul Davis
c76c61d202 manual fixups after rebase against master 2021-08-13 12:51:31 -06:00
Paul Davis
fe218e7478 nutempo-ify VST support (incomplete, pending change to tempo map API 2021-08-13 12:51:31 -06:00
Paul Davis
fbdf06a794 cleanup after timecnt_t API changed (libs edition) 2021-08-13 12:51:31 -06:00
Paul Davis
afea443419 remove API from Temporal:timecnt_t that used superclock_t
Not possible for a compiler to differentiate superclock_t and sample(pos|cnt)_t, which can lead to
subtle but major errors
2021-08-13 12:51:31 -06:00
Paul Davis
9402548677 Temporal: add lots more DEBUG::TemporalMap output to tempo.cc 2021-08-13 12:51:31 -06:00
Paul Davis
793579cf3f Temporal: expand displayed info for Tempo's operator<< 2021-08-13 12:51:31 -06:00
Paul Davis
a0b9030e3c Temporal: fix logic during ::get_grid that ignored if rounding did nothing 2021-08-13 12:51:31 -06:00
Paul Davis
f1bb135013 Temporal: fix computation of ::quarters_at() 2021-08-13 12:51:31 -06:00