bb97ade440
temporal: special case editing of the initial tempo ( #9339 )
2023-06-12 16:46:13 -06:00
50232a23a7
temporal: hide superclock_t variant of TempoMap::metric_at()
...
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).
Bad API design on my part, apologies.
This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
733d59c65b
temporal: unit testing more like unit testing
...
But still not really.
2023-06-08 14:01:17 -06:00
01b8187cd3
temporal: add rudimentary paste test
2023-06-08 14:01:17 -06:00
1cf4f9293c
temporal: paste needs to add to _points
2023-06-08 14:01:17 -06:00
24f6c51de6
temporal: more nuances for ::cut_copy()
2023-06-08 14:01:17 -06:00
a09a37049b
temporal: get guard point values before altering the tempo map
2023-06-08 14:01:17 -06:00
6039cea3dc
temporal: improve cut buffer slightly by using different meters
2023-06-08 14:01:17 -06:00
d761ccb59b
temporal: the second variant of shift() (untested)
2023-06-07 11:25:44 -06:00
e6b6340f3e
temporal: more nuances for shift()
2023-06-07 11:25:44 -06:00
ad45778edc
temporal: shift() with BBT must allow negative motion
2023-06-07 11:25:44 -06:00
a456a10cdf
temporal: first guess at a TempoMap::shift() implementation
2023-06-07 11:25:44 -06:00
9d3ae4fc8d
temporal: fix position of end guard points during map paste
2023-06-06 09:52:29 -06:00
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