Commit graph

33270 commits

Author SHA1 Message Date
Paul Davis
7938d8de4f fix (some) editing based on tempo & meter marks
After beginning an edit operation with TempoMap::write_copy(), the tempoPoint and meterPoint objects
referenced by markers are incorrect, since they refer to the original map, not the copy we are working
on. Fix this with Editor::reassociate_metric_markers()

Some instances requiring this fix may still remain
2021-08-13 12:51:35 -06:00
Paul Davis
5838bcbe7c clean up unsafe use of printf() by commenting it out 2021-08-13 12:51:35 -06:00
Paul Davis
5327cf7be7 allow the click points for the click to contain points before the start (gracefully) 2021-08-13 12:51:35 -06:00
Paul Davis
73ad70648d bump session file version 2021-08-13 12:51:35 -06:00
Paul Davis
585346ce56 libtemporal: fix many different issues with tempo ramps
API changes, ensuring omega is computed, saved, and restored, generic methods to get tempo/meter at a position, and lots more
2021-08-13 12:51:35 -06:00
Paul Davis
18e2c36648 libevoral: fix arguments to Sequencer::iterator::invalidate()
clang picked up the mismatch (gcc did not), which reflects a realization while working
on the nutempo2 branch that nothing ever used the old set<Notes> that was being passed
as an argument
2021-08-13 12:51:35 -06:00
Paul Davis
3076d22987 macOS 10.12 finally started defining CLOCK_{REALTIME,MONOTONIC} and I think this is the correct way to test for that 2021-08-13 12:51:35 -06:00
Paul Davis
3256350ef8 libtemporal: needs "OSX" pseudo-lib to pick up required macOS flags 2021-08-13 12:51:35 -06:00
Paul Davis
5895909188 libtemporal: remove unnecessary inclusion of pbd/compose.h from beats.h
this causes breakage in clangs ADL lookup of various operator<<() overloads
2021-08-13 12:51:35 -06:00
Paul Davis
52d41fa4e1 fix timeline type usage on macOS 2021-08-13 12:51:35 -06:00
Paul Davis
a7535ae8aa clang knows that we cannot use printf() to print Evoral::Event::time() ...
(why doesn't gcc?)
2021-08-13 12:51:35 -06:00
Paul Davis
8c23d6955d new timeline types for AudioUnits and CoreAudioSource 2021-08-13 12:51:35 -06:00
Paul Davis
3170f880c2 stop clang from complaining about a missing return after a guaranteed assert() failure 2021-08-13 12:51:35 -06:00
Paul Davis
153164c803 remove debug output 2021-08-13 12:51:35 -06:00
Paul Davis
f721655916 libtemporal: to quote the matrix, there is no lock 2021-08-13 12:51:35 -06:00
Paul Davis
8d67be784a remove #ifdef'ed out initialization from session.cc (possible rebase leftover, but redundant no matter the origin 2021-08-13 12:51:35 -06:00
Paul Davis
bcca1ad289 minor fixups post-rebase 2021-08-13 12:51:35 -06:00
Paul Davis
bccdc95f32 libtemporal: fix logic for ::get_tempo_and_meter() if starting point is the timeline start 2021-08-13 12:51:35 -06:00
Paul Davis
5f3ad2cde9 follow new const requirements associated with Meter/Tempo 2021-08-13 12:51:35 -06:00
Paul Davis
1f8290f154 generalize repeated code into a template method, add lots of const-ness to facilitate this 2021-08-13 12:51:35 -06:00
Paul Davis
c5ecd14622 temporal: fix logic errors in setting up TempoMetric objects
will likely revisit this to avoid code-duplication and "optimize" traversal of _points list
2021-08-13 12:51:35 -06:00
Paul Davis
011b5ec61c remove debug output 2021-08-13 12:51:35 -06:00
Paul Davis
36609c4067 remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion (GUI edition) 2021-08-13 12:51:35 -06:00
Paul Davis
8bada4b5e1 remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion
libtemporal still needs ::bbt_at (superclock_t) fairly often so retain it as a private method, but public
interfaces take either Beats or timepos_t
2021-08-13 12:51:35 -06:00
Paul Davis
53e411c011 fix logic error in conditional 2021-08-13 12:51:35 -06:00
Paul Davis
6f2fdc2695 functioning loading of older tempo map XML data 2021-08-13 12:51:35 -06:00
Paul Davis
552484978c fix call to ::bbt_at() inside LV2 plugin 2021-08-13 12:51:35 -06:00
Paul Davis
092a454648 fix timepos_t::string_to (wrong argument to samples_to_superclock() 2021-08-13 12:51:35 -06:00
Paul Davis
445ad2e383 rearrange if/else logic to avoid NOTREACHED condition 2021-08-13 12:51:35 -06:00
Paul Davis
b84402f4f8 intial steps for adding legacy (v0-5) tempo map deserialization support 2021-08-13 12:51:35 -06:00
Paul Davis
344dd26788 improved DEBUG_TRACE statements for tempo map 2021-08-13 12:51:35 -06:00
Paul Davis
cd34695944 fix TempoMap::quarters_at_superclock (superclock_t) 2021-08-13 12:51:35 -06:00
Paul Davis
74ff3b22b8 fix TempoPoint::superclock_at(Beats) 2021-08-13 12:51:35 -06:00
Paul Davis
216945a89c move TempoMap::write_copy() into .cc file instead of .h 2021-08-13 12:51:35 -06:00
Paul Davis
2ec93062d9 use simpler logic to avoid negative values when filling grid 2021-08-13 12:51:35 -06:00
Paul Davis
88bed837c0 fix deadlock during tempo marker dragging, and don't start a tempo map update if a tempo point is inactive 2021-08-13 12:51:35 -06:00
Paul Davis
ce3fb0507c change return type of Tempo::set_{ramped,clamped} and fix call sites 2021-08-13 12:51:35 -06:00
Paul Davis
99c8c0b658 initial, tentative, untested implementation of TempoMap::remove_time() 2021-08-13 12:51:35 -06:00
Paul Davis
68959643e8 fix minor errors from rebase fixups 2021-08-13 12:51:35 -06:00
Paul Davis
af4ba1cc01 fix start, length/position for recorded MIDI regions
Note that we should really set the position value as part of the
length, but then Playlist::add_region() would need to drop its
second argument (position). Maybe in a future commit
2021-08-13 12:51:35 -06:00
Paul Davis
fed449d54d various fixes to get time stretching basically working again
Time domains are not well respected at present, so more work is needed here
2021-08-13 12:51:35 -06:00
Paul Davis
76e5aaea44 remove another NUTEMPO #warning by using TempoMap::count_bars() 2021-08-13 12:51:35 -06:00
Paul Davis
991a7bf8a7 add TempoMap::count_bars() to allow bar counting even with position (BBT) markers in the tempo map
This just reuses the algorithm in TempoMap::get_grid() by asking for just the bar grid, and counting the
size of the result
2021-08-13 12:51:35 -06:00
Paul Davis
f05b2ed93b remove another NUTEMPO #warning by allow grab starts in rubber band selection to use the default time domain 2021-08-13 12:51:35 -06:00
Paul Davis
162d36ffc8 remove some debug output 2021-08-13 12:51:35 -06:00
Paul Davis
6bc8a7347f improve drag behavior on AudioClock 2021-08-13 12:51:35 -06:00
Paul Davis
3a94b45b23 rework handling of scroll and drag on AudioClock by using timepos_t rather than samples 2021-08-13 12:51:35 -06:00
Paul Davis
0ab2308523 reimplement TempoMap::midi_clock_beat_at_or_after() 2021-08-13 12:51:35 -06:00
Paul Davis
6effcc7723 reimplement quantization without (much) floating point (GUI edition) 2021-08-13 12:51:35 -06:00
Paul Davis
b276254551 reimplement quantization without (much) floating point 2021-08-13 12:51:35 -06:00