13
0
Commit Graph

14690 Commits

Author SHA1 Message Date
ce3fb0507c change return type of Tempo::set_{ramped,clamped} and fix call sites 2021-08-13 12:51:35 -06:00
68959643e8 fix minor errors from rebase fixups 2021-08-13 12:51:35 -06:00
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
76e5aaea44 remove another NUTEMPO #warning by using TempoMap::count_bars() 2021-08-13 12:51:35 -06:00
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
162d36ffc8 remove some debug output 2021-08-13 12:51:35 -06:00
6bc8a7347f improve drag behavior on AudioClock 2021-08-13 12:51:35 -06:00
3a94b45b23 rework handling of scroll and drag on AudioClock by using timepos_t rather than samples 2021-08-13 12:51:35 -06:00
6effcc7723 reimplement quantization without (much) floating point (GUI edition) 2021-08-13 12:51:35 -06:00
fb66695081 fix (and improve) drawing of "ghost note" drawn while mouse pointer moves in MidiRegionView in draw mode 2021-08-13 12:51:35 -06:00
1868c4cac5 fix drawing percussive notes in MidiRegionView following nutempo SNAFU with relative time calc. 2021-08-13 12:51:35 -06:00
7244b03385 convert NoteCreateDrag::grid_aligned_beats() into a proxy for Editor::snap_to_bbt() 2021-08-13 12:51:35 -06:00
831c085b2e remove MidiRegionView::snap_sample_to_grid_underneath() and replace with calls directly into Editor snap method 2021-08-13 12:51:35 -06:00
37eea1da29 fix brace style 2021-08-13 12:51:35 -06:00
b2655d13f1 make Editor::snap_to_bbt() public 2021-08-13 12:51:35 -06:00
0ddfd7c873 force drag-created regions to use beat time for position 2021-08-13 12:51:34 -06:00
49424ab0e3 Region::_start should be a timepos_t not a timecnt_t (GUI edition) 2021-08-13 12:51:34 -06:00
485b74e0b9 rename EditorSummary::Position as Editor::SummaryPosition 2021-08-13 12:51:34 -06:00
e5d505365f rename ProcessorBox::Position as ProcessorBox::ProcessorPosition 2021-08-13 12:51:34 -06:00
daad7b74ae libtemporal: rename TempoMap::full_duration_at() to ::convert_duration() and reorder parameters 2021-08-13 12:51:34 -06:00
dad56af802 remove another 3 NUTEMPO #warnings
These all involve converting between ControlList-relative time and absolute time
2021-08-13 12:51:34 -06:00
a71ba473f7 fix up post-rebase issues after rebase on master 2021-08-13 12:51:34 -06:00
45a8da77f6 clean up rulers/grid mess after rebase on master 2021-08-13 12:51:34 -06:00
0162d3f9d6 GUI changes to *try* to adapt to a world without explicit beats<->samples converter objects (i.e. use AutomationLine::get_origin() instead 2021-08-13 12:51:34 -06:00
48ac681b03 fix note-resizing-at-front, change variable names 2021-08-13 12:51:34 -06:00
9a9bc3408f fixups for xrun-marker work, now that Region::sample() and Region::length() so not return sample types 2021-08-13 12:51:34 -06:00
6536655a0a add explanatory comment 2021-08-13 12:51:34 -06:00
21e6f1cf50 (mostly) fix note drag creation drawing 2021-08-13 12:51:34 -06:00
b66b98ce58 remove 2 more NUTEMPO warnings by use Editor::default_time_domain() appropriately (but perhaps without enough user control) 2021-08-13 12:51:34 -06:00
39f52cd3ce remove unused and unnecessary Drag::snap_delta_music() code 2021-08-13 12:51:34 -06:00
cb66ae496c don't even pretend to use non-modal dialog API for the BBT marker dialog 2021-08-13 12:51:34 -06:00
d4f52498fa somewhat working dialog for BBT/Position marker creation 2021-08-13 12:51:34 -06:00
4911779157 manual fixups after a rebase against master 2021-08-13 12:51:34 -06:00
5153124664 change (GUI) Marker objects to accept any Canvas::Item as parent, and use this to draw BBT position markers in the BBT ruler 2021-08-13 12:51:34 -06:00
4f1ad4ed0d start adding new BBT marker support 2021-08-13 12:51:34 -06:00
432fbe984a make "add BBT marker" test case use 3|1|0 for better testing 2021-08-13 12:51:34 -06:00
2445081dcc remove another NUTEMPO #warning - this one was just unnecessary concern 2021-08-13 12:51:34 -06:00
0f67dbf8cc remove another NUTEMPO #warning - use time domain of region's track for content trim dragging 2021-08-13 12:51:34 -06:00
18fba5dece whitespace adjustments 2021-08-13 12:51:33 -06:00
fe352311f6 make shift-leftclick on bbt ruler set that time to be 3|2|0 (experiment - GUI dialog to follow) 2021-08-13 12:51:33 -06:00
c22c8ed69f get TempoMarkerDrag and BBTRulerDrag to compile 2021-08-13 12:51:33 -06:00
c5c14e2416 remove two nutempo #warnings - initialize timecnt_t() using timedomain of route with first selected region (ripple dragging) 2021-08-13 12:51:33 -06:00
9d4d3908e6 remove some nutempo #warnings and fix up Location time domain API 2021-08-13 12:51:33 -06:00
a8f9f268b4 use integer division when computing tempo map positions from SMF data 2021-08-13 12:51:33 -06:00
97a3469972 use new Tempo API in two places where Tempo is explicitly constructed 2021-08-13 12:51:33 -06:00
888239a834 remove dual (x,y) version of AutomationLine::view_to_model_coord()
The x-axis coordinate was never transformed or modified anyway (6.x just changed it
from double to integer and back again!)
2021-08-13 12:51:33 -06:00
d131a9aa12 remove debug output 2021-08-13 12:51:33 -06:00
80f543dc17 fix missing conversions between samples & superclock for ruler display 2021-08-13 12:51:33 -06:00
068cc4135f remove another NUTEMPO #warning (see comment) 2021-08-13 12:51:33 -06:00
f321dd4dac remove NUTEMPO #warning (comment explains more) 2021-08-13 12:51:33 -06:00
87dfef28f6 allow new locations creation from playhead to use default time domain 2021-08-13 12:51:33 -06:00
874a009d76 remove NUTEMPO #warning (comment explains more) 2021-08-13 12:51:33 -06:00
9c1e88e675 remove NUTEMPO #warning (dealt with in caller) 2021-08-13 12:51:33 -06:00
e4e953df14 no need to copy-construct here 2021-08-13 12:51:33 -06:00
7e6f0ea2bb remove NUTEMPO warning 2021-08-13 12:51:33 -06:00
b39a771655 start using Editor::canvas_event_time(), initially just in the button release handler 2021-08-13 12:51:33 -06:00
6a44dcbdad add Editor::canvas_event_time()
See comments in header for more
2021-08-13 12:51:33 -06:00
0114059c9d nutempo warning removal 2021-08-13 12:51:33 -06:00
5074553f15 add Editor::default_time_domain()
Not 100% certain about the logic here, but at least the method exists now
2021-08-13 12:51:33 -06:00
6f861c63b5 nutempo #warning removal 2021-08-13 12:51:33 -06:00
c03b588011 nutempo #warning removal 2021-08-13 12:51:33 -06:00
125c20e148 manual fixups for recent rebase conflicts left in the wrong state (GUI edition) 2021-08-13 12:51:33 -06:00
d671dc0fa1 plugins use their route's automation time domain (GUI edition) 2021-08-13 12:51:33 -06:00
a81e2f9ff9 Automatable now requires (and owns) a time domain to be used by automation data (GUI edition) 2021-08-13 12:51:32 -06:00
7762dde95e remove another NUTEMPO warning by connecting AudioClock to static MapChanged signal 2021-08-13 12:51:32 -06:00
42c74932a5 fixes/improvements for meter marker drags 2021-08-13 12:51:32 -06:00
b0b346c4ac fix deadlock caused by not unlocking TempoMap when not finishing a meter-marker-drag 2021-08-13 12:51:32 -06:00
e393c5efcf manual fixups for rebase against master (timeline type changes) 2021-08-13 12:51:32 -06:00
b0725a8ab9 use new TempoMap::abort_update() API when drag does not end in map update 2021-08-13 12:51:32 -06:00
e653e61923 fix up redrawing Tempo/Meter rulers when tempo changes 2021-08-13 12:51:32 -06:00
3c857b697f fix incorrect call to Tempo constructor that reordered note type and end tempo
Probably should find a better API for the constructor that makes this impossible
2021-08-13 12:51:32 -06:00
b5e0bce101 tempo dialog should use integer notes types, not double
The days of "it's in Pi" are over.
2021-08-13 12:51:32 -06:00
b516230dd3 listen for tempo map changes in GUI 2021-08-13 12:51:32 -06:00
eaedcd79d4 fix a bunch of undo-able tempo map operations to use RCU 2021-08-13 12:51:32 -06:00
eab0bdfde0 fix next set of tempo map changing code blocks to use RCU 2021-08-13 12:51:32 -06:00
2674057ad6 prototype for new general code structure when editing TempoMap 2021-08-13 12:51:32 -06:00
9c7f2cd642 fixup another NUTEMPO #warning 2021-08-13 12:51:32 -06:00
75d6ea19c4 fix time/position used when applying MIDI ops 2021-08-13 12:51:32 -06:00
8bd52c80dc fix paste API issue for automation list/tracks 2021-08-13 12:51:32 -06:00
b03cfa2420 rely on exceptions when parsing Beats from AudioClock, not strspn(3) 2021-08-13 12:51:32 -06:00
06f93e65b2 fix timefx to use ratio_t from the beginning of the operation 2021-08-13 12:51:32 -06:00
993186e9fc start time for whole file regions based on MIDI should be in BeatTime, in AudioTime for audio files 2021-08-13 12:51:32 -06:00
f328fdc56a adapt to DoubleableBeats and so forth (gui edition) 2021-08-13 12:51:32 -06:00
dee71c0a97 mostly fix region- and note-create drags 2021-08-13 12:51:32 -06:00
b757756e92 BBT ruler: fix error in setting beat count 2021-08-13 12:51:32 -06:00
c0169f37ee an initial pass (untested) at converting the MIDI list editor to use Temporal::Beats and not floating point 2021-08-13 12:51:32 -06:00
b451a50b95 use explicit timepos_t() for region start property in property lists (gui edition) 2021-08-13 12:51:31 -06:00
fa759d3507 fix direction for trim drags 2021-08-13 12:51:31 -06:00
164b098a21 fix AutomationRegionView::paste() 2021-08-13 12:51:31 -06:00
fbdd93a411 Fix Editor::mouse_add_new_meter_event() 2021-08-13 12:51:31 -06:00
0632ced2d5 fix Region::(region|source)_relative_distance() 2021-08-13 12:51:31 -06:00
313d957eaf MidiRegionView: restore functioning (?) of snap_sample_to_grid_underneath() 2021-08-13 12:51:31 -06:00
f0ff72c669 remove old call to set libtemporal thread local sample rate 2021-08-13 12:51:31 -06:00
2a6b2dfa7c cease using BarTime for anything 2021-08-13 12:51:31 -06:00
9412130c01 use cleaned up Temporal ::quarters*_at* API (GUI edition) 2021-08-13 12:51:31 -06:00
84d33f3ec3 manual fixups after rebase against master (GUI edition) 2021-08-13 12:51:31 -06:00
0093ae07b0 cleanup after timecnt_t API changed (GUI edition) 2021-08-13 12:51:31 -06:00
eee0fdf2d5 remove debug output 2021-08-13 12:51:31 -06:00
cce695d33a changes required by fixing ambiguities in timepos_t/timecnt_t API (GUI edition) 2021-08-13 12:51:31 -06:00
a41a1ffa04 use a better initializer for region creation during import 2021-08-13 12:51:30 -06:00
16382982c5 fixups for AudioClock arising from explicit BBT_Offset (double) 2021-08-13 12:51:30 -06:00
fcdf7018c5 fix incorrect logic check for null session 2021-08-13 12:51:30 -06:00
c2d197a103 use correct initial value of AudioClock::_limit_pos 2021-08-13 12:51:30 -06:00
eec4addcd5 GUI side cleanup forced by explicit BBT_Offset (double) 2021-08-13 12:51:30 -06:00
3a2e6e174b change default value of UIConfig's clock display limit, and prevent old config files from overriding the limit
720 hours was too long to be expressed via superclock in 62 bits. Use 99:59:59 instead.
2021-08-13 12:51:30 -06:00
18d64f0402 change all Region::nt_*() methods to names without the nt_ prefix (GUI version) 2021-08-13 12:51:30 -06:00
ae01dafcce use Temporal::set_thread_sample_rate() rather than explicit assignment 2021-08-13 12:51:30 -06:00
e1620a22cf temporal thread init for import thread 2021-08-13 12:51:30 -06:00
53c164f9fd GUI changes to get libtemporal setup at application startup 2021-08-13 12:51:30 -06:00
d2a94468d4 missing part of RCU update for tempo marker drag 2021-08-13 12:51:30 -06:00
42c38d313d try to use RCU updating when dragging tempo markers 2021-08-13 12:51:30 -06:00
49781e3b80 nominally fix up TempoMarkerDrag implementation for new TempoMap 2021-08-13 12:51:30 -06:00
90553b315f fix up memento command use for tempo map undo/redo 2021-08-13 12:51:30 -06:00
3c00fab75e remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr) (GUI edition) 2021-08-13 12:51:30 -06:00
60d1c5f722 remove tempo map from Session 2021-08-13 12:51:30 -06:00
9f866a6bbe consolidate some TempoMap modifier methods 2021-08-13 12:51:30 -06:00
dade9994d8 collect together modifying TempoMap methods, and make ::apply_with_metrics() more clearly const 2021-08-13 12:51:30 -06:00
c434289973 remove lock, _dirty and _generation nonsense from TempoMap (pre-RCU management) 2021-08-13 12:51:30 -06:00
f8df966914 clean up MeterMarkerDrag 2021-08-13 12:51:30 -06:00
1098b27b35 new tempo map API for almost all of the GUI now 2021-08-13 12:51:30 -06:00
f0d055ad4d more updates for new tempo map API 2021-08-13 12:51:30 -06:00
7ef11dc698 continued work on using new tempo map API (before switch to RCU) 2021-08-13 12:51:30 -06:00
772d70ae4c use glib event callback to invoke per-thread code every time the GUI event loop does stuff 2021-08-13 12:51:29 -06:00
534c08074d changes to get program to actually run (missing symbols)
Still crashes at startup due to static initialization of initial tempo map.
2021-08-13 12:51:29 -06:00
0d41f87f4b incorrect printf argument type 2021-08-13 12:51:29 -06:00
cdab3a5e8f fix a bunch of missing symbols related to temporal 2021-08-13 12:51:29 -06:00
749a49c278 incorporating new tempo map API 2021-08-13 12:51:29 -06:00
f67029bd02 random commit to facilitate trivial move of work from laptop back to main system 2021-08-13 12:51:29 -06:00
5836a4f2b6 timeline types conversion for editor_ops.cc 2021-08-13 12:51:29 -06:00
2a08e4bdaa continued work on timeline types conversion. in theory, just editor_ops.cc remains 2021-08-13 12:51:29 -06:00
aa56f4a16e GUI: moving along with timeline type conversion 2021-08-13 12:51:29 -06:00
5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
9d69fa3820 another day or two's work on timeline type conversion 2021-08-13 12:51:29 -06:00
04e8dbb342 another day of slow timeline type conversion 2021-08-13 12:51:29 -06:00
1b06fcb335 another snapshot of ongoing work on timeline types. still not compilable 2021-08-13 12:51:29 -06:00
1ee38e7a7f another in-progress snapshot of gtk2_ardour after getting audio_clock.cc to compile 2021-08-13 12:51:29 -06:00
7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
f4490f54c5 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
0a469527f1 updated Temporal::Beats ... GUI edition 2021-08-13 12:51:28 -06:00
32b77f549f fix marker positions after an aborted ripple drag 2021-08-13 12:51:28 -06:00
23aa663f9d when doing a ripple-all drag, move relevant markers during the drag too
Note that this is purely GUI-level: the ARDOUR::Locations are changed at the end of the drag
in Editor::ripple_marks()
2021-08-13 12:51:28 -06:00
140c5e818f somewhat simplify ripple-all by just grabbing all regions-at-or-after as the drag starts.
This means that we actually explicitly reposition all regions as part of the drag, and do not need to call
Editor::do_ripple(). We do still need to call Editor::ripple_marks() though
2021-08-13 12:51:28 -06:00
7afc45ac5c helpful comment 2021-08-13 12:51:28 -06:00
12b536d8f2 add API to fetch all regionviews after a given position 2021-08-13 12:51:28 -06:00
a1ef870866 prevent ripple drag from passing earlier region starts 2021-08-13 12:51:28 -06:00
311db08cc3 manual fixups for rebase-on-master issues 2021-08-13 12:51:28 -06:00
a95b1d2cd1 for RegionMotionDrag, set _earliest_time_limit if rippling (not yet used) 2021-08-13 12:51:28 -06:00
b04ea33f18 move Drag::_earliest_time_limit to be protected, not private 2021-08-13 12:51:27 -06:00
fbd6c7eaee add earliest_time_limit for Drag class 2021-08-13 12:51:27 -06:00
ac1d5bac0a improve rippling of marks to include any in the gap between the primary-dragged region and the one before it 2021-08-13 12:51:27 -06:00