9e4b1d59a7
temporal: do something when pasting the cut buffer guard points
...
Don't think this is quite right yet - we get guard points even when
they are not really necessary
2023-06-06 09:04:34 -06:00
f5f87f86d4
temporal: adjust cut buffer API to better deal with start/end "guard points"
2023-06-05 17:27:12 -06:00
7789df5b1c
temporal: get cut/copy/paste test code slightly more useful
2023-06-05 16:35:17 -06:00
11157d9bd9
Fix some Wunused-variable
2023-05-22 21:26:26 +02:00
c452a4816c
tempo mapping: Re-implement tempo-twist with constant and ramped varieties (lib part)
2023-05-22 13:32:53 -05:00
54969d8aab
fix thinko resulting in duplicate bar-names after a tempo-mapping op
2023-05-14 09:05:08 -05:00
b9e5621e03
during map reset, force meter to bars, and tempo to beats
2023-05-05 20:53:23 -06:00
32a3591018
remove #warning
2023-05-05 18:57:16 -06:00
9e8eed8a03
temporal: various tweaks to get TempoMap::get_grid() to be more correct/robust
2023-05-05 18:56:01 -06:00
7c07a9964a
temporal: add operator<<(ostream&) for BBT_Argument
2023-05-05 18:55:27 -06:00
fafc891ca6
add ripple option API for TempoMap::cut()
2023-05-04 18:49:06 -06:00
7f977bf3e4
add skeleton unit test for tempo map cut buffer
2023-05-04 18:48:50 -06:00
b3a127d318
temporal: TempoMap::paste(), TempoMapCutBuffer::dump() and cut/copy fixes
2023-05-04 17:09:19 -06:00
a8424e8617
temporal: implement (maybe) cut-copy for tempo map
2023-05-04 15:45:09 -06:00
f7ba9af6b2
temporal: stub API for tempo map cut/copy/paste
2023-05-04 15:10:56 -06:00
b3040a31fc
temporal: a basic data structure to hold the result of a TempoMap cut/copy operation
2023-05-04 15:10:56 -06:00
912f9e5ea3
provide functions for both linear and ramped tempo-twists
2023-05-04 09:22:28 -05:00
b936fd12cd
temporal: reset the tempo map in sections bounded by BBT markers (if any)
...
This avoids total SNAFUs caused by the impossibility of globally ordering
by BBT time.
2023-05-03 21:55:23 -06:00
faac648502
temporal: add TempoMap::{next,previous_}meter()
2023-05-03 21:55:23 -06:00
0ddacb8ea2
when abort()-ing due to a failed assert in tempo map code, dump the map
2023-04-28 15:57:42 -06:00
907d3f82a7
temporal: fix grid generation in the presence of MusicTimePoints
2023-04-27 19:54:44 -06:00
e7f4c9dcb5
temporal: fix removal (and thus moving) MusicTimePoints
2023-04-27 19:54:14 -06:00
d66f3e7c9d
temporal: factor out twist iteration, add debug output
2023-04-16 10:33:37 -06:00
f29557348e
remove debug output
2023-04-13 17:47:32 -06:00
b362d2b6ba
temporal: don't abort() for illegal omega value, just leave it as it was
2023-04-13 10:57:12 -06:00
f17a516cef
temporal: fix comment explaining when/how TempoMap::set() can be used
2023-04-10 09:18:44 -06:00
295dbd8e1e
Make RCU reader return a const pointer (omnibus commit)
2023-04-08 00:15:37 +02:00
e9f71824a1
temporal: change API for TempoMap::stretch_tempo()
...
This will likely be modified because it is actually impossible to do
what this code is attempting to do.
2023-04-07 12:56:57 -06:00
151fceea54
Add missing include
...
This fixes "error: ‘isfinite’ was not declared in this scope"
2023-03-30 01:10:23 +02:00
ef7b7f4c89
Fix timecnt_t less-than-equal operator
2023-03-30 00:37:23 +02:00
John Emmas
c771eccd0e
'Temporal::DomainSwapInformation' needs to be exportable
2023-03-25 12:29:17 +00:00
5dbbac0bc2
temporal: operator<< for Range and RangeList
2023-03-24 14:19:16 -06:00
393929a55b
tempo twisting: various fixes and improvements to core logic
2023-03-24 14:19:16 -06:00
7040ad1b74
temporal: API changes and implementation to support new twist operation
...
this includes using two different omega members for tempo objects,
a change that likely will not persist beyond the merge back to master.
2023-03-24 14:19:16 -06:00
b36a0493df
tempomap: use muldiv_round() not int_div_round to avoid errors
2023-03-24 14:19:16 -06:00
45490bf43f
more functional tempo mapping
2023-03-24 14:19:16 -06:00
d513653912
API development for time domain flipping
2023-03-24 14:19:15 -06:00
b35518e212
switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
...
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
73bc7e6cb7
temporal: fix ::get_tempo_and_meter() for BBT arguments
2023-03-19 10:13:06 -06:00
27205c7639
midi clock: provide option to quantize incoming BPM values
2023-02-23 12:15:26 -07:00
c1c913be9d
Fix MClk generator position
2023-02-19 18:08:58 +01:00
5b6bc3f358
Revert "tempo map: use lookup tables to speed up time conversions"
...
This reverts commit 644ebe37a8
.
Adding entries to the lookup table is (a) not thread safe (b) not appropriate
from RT context.
2023-02-16 18:25:23 -07:00
31a3c3c6f3
temporal: fix bad escape sequence in test source code
2023-02-15 18:36:23 -07:00
a59059c15e
temporal: map used for ::reftime() must be the one pointed at by TempoMetric
2023-02-15 18:36:23 -07:00
ee64390c48
fix libtemporal tests after API changes to the library
2023-02-15 17:51:28 -07:00
644ebe37a8
tempo map: use lookup tables to speed up time conversions
2023-02-15 16:02:56 -07:00
6f095b91ce
tempo map: add data structure and methods for (fast?) lookup tables
...
As of this commit, none of the data structures are used.
2023-02-15 16:02:56 -07:00
92bd8461ca
tempomap: provide improved reftime() method for TempoMetric
...
This now looks backwards in time for a BBT_Marker or the start of the
tempo map, whichever comes first.
2023-02-15 16:02:56 -07:00
6cde958480
BBT_Time: provide conversion to/from integer format
...
This is not guaranteed to be lossless, but with 44 bits for bars,
256 beats per bar and up to 4095 ticks per beat, it should be fine.
2023-02-15 16:02:56 -07:00
259499fc5f
require use of BBT_Argument as both parameter and return type from most methods (libs edition)
2023-02-15 16:02:56 -07:00