Commit Graph

34721 Commits

Author SHA1 Message Date
Paul Davis cb815bf8dd triggerbox: drop useless computation 2022-02-14 18:09:03 -07:00
Paul Davis cbbe595162 triggerbox: fix end-handling of MIDI triggers (again)
If we reach the last event in a MIDI file, the test to enter Playout
is whether the last event is *before* not at or later to our computed
final beat.
2022-02-14 18:07:54 -07:00
Paul Davis 91e7361e08 triggerbox: ensure _currently_playing reflects fast_forward logic
If we decide after fast forwarding that this TriggerBox has no triggers
active at the transport position, we must mark _currently_playing as null,
because otherwise the TB can still start the transport (in error) during
run()
2022-02-14 12:59:24 -07:00
Paul Davis 511b09b3d6 triggerbox: avoid double-accounting for buffer offset in MIDI triggers
Because MIDI triggers compute buffer-relative timestamps using
timeline_samples - start_sample, this already takes into account
any offset to the start of the trigger. We still need to use dest_offset
if a non-zero value was passed into ::midi_run(), but we do NOT
want to have it contain the "offset to start of trigger in process
cycle" as well. Instead of trying to special case
::maybe_compute_next_transition(), we just pass a dummy pframes_t
to that method, leaving dest_offset as it was passed into ::midi_run()
2022-02-14 12:56:18 -07:00
Paul Davis 374fa48fad triggerbox: consolidate position-as-fraction code
Both trigger types now use a process_index and final_processed_sample value
to compute their current position-as-fraction
2022-02-14 09:53:00 -07:00
John Emmas 5af43793d3 Modify 'ARDOUR::cue_marker_name()' to be accessible outside of libardour 2022-02-14 10:19:47 +00:00
Paul Davis c5d7883538 temporal: add skeleton for Timeline (timepos_t/timecnt_t) tests 2022-02-12 22:25:17 -07:00
Paul Davis baaf332a94 temporal: add skeleton for TempoMap tests 2022-02-12 22:25:17 -07:00
Ben Loftis 897798ed68 remove cue-behavior toggle from ruler context menu 2022-02-12 21:49:57 -06:00
Ben Loftis 54d794e242 rough-in global Cue functions (rec-enable and play-enable i.e. cue-ffwd) 2022-02-12 21:46:30 -06:00
Ben Loftis bb67041938 public_editor: expose toggle_cue_behavior for access from ArdourUI 2022-02-12 21:46:30 -06:00
Ben Loftis de9f73c040 cue page: remove the unmarked rec-enable button from the cues column 2022-02-12 21:46:30 -06:00
Ben Loftis bfd698bef8 mini-timeline: rough-in Stop Cue markers 2022-02-12 21:46:30 -06:00
Paul Davis 14ac8fd36b skeleton for temporal/BBT testing (empty for now) 2022-02-12 17:51:30 -07:00
Paul Davis f641a0559f temporal: missing test source 2022-02-12 15:18:19 -07:00
Paul Davis 04bd9187e4 temporal: add (back) first set of unit tests
This just uses the old Evoral BeatTest. Some of the tests needed amending
because temporal uses rint() to convert between float and int, not just
a cast.
2022-02-12 15:12:35 -07:00
Ben Loftis 9cea6b7359 trigger_ui: don't allow Stretch options to be edited on an active clip 2022-02-12 11:14:40 -06:00
Ben Loftis e41729d10c triggerbox: remove excess debug printouts 2022-02-12 11:14:12 -06:00
Ben Loftis 8a3b5751fb triggerbox: initialize follow-count more reliably. this way queues a UIState 2022-02-12 11:13:30 -06:00
Ben Loftis ad7db33666 triggerbox: remove redundant code; set_segment_tempo takes care of this later 2022-02-12 11:12:33 -06:00
Ben Loftis 563dc9ae21 triggerbox: setup_stretcher must be called for stretch_mode to have any effect 2022-02-12 11:12:08 -06:00
Ben Loftis d20dfe8f88 clip_picker: fix logic to show MIDI file properties 2022-02-12 09:35:24 -06:00
Ben Loftis 227815ebab fix crash introduced in d8b3 2022-02-12 09:34:42 -06:00
Ben Loftis 6bc881086b Fix a bug where the spinner skipped values because it was always rounding down
Until we have a trimmer, the clip length spinner sets integer beats (beatcnt)
This allows the user some minimal ability to fix a clip of the wrong bpm.
We assumed that 'clips' are already be pre-trimmed to a beat length.
Our internal heuristic always forced tempo to match an integer beatcnt

However: when bouncing a Range to a Trigger Clip, you can know the tempo, and also have a non-integer beat length.
In those cases, the clip-length spinner could behave oddly.

While it's arguably wrong to show integer beats when the internal value is something else,
  we still want to show the spinner in integer beats, so it remains usable for its main purpose
2022-02-12 09:10:23 -06:00
Ben Loftis d8b3fbb94e beatcnt is a derived property from tempo and segment-length 2022-02-12 09:04:48 -06:00
Paul Davis b3ec5df8a8 triggerbox: some additional DEBUG_TRACE messages 2022-02-11 15:22:45 -07:00
Ben Loftis 40b483e71e trigger_ui: move the patch-dialog to the properties area.
* patch-dialog is now launched from a button and stays open
* patch-dialog now tracks the current selection
2022-02-11 15:32:00 -06:00
Ben Loftis a8cf442bc9 pixel-pushing: clean up the dialog for Range->Bounce to Trigger Clip 2022-02-11 15:32:00 -06:00
Ben Loftis a02689f41e Range->Bounce to Trigger Clip: use UISTate api to set tempo of clip
* also use the desired name without the extra stuff that bouncing adds to the filenam
2022-02-11 15:32:00 -06:00
Ben Loftis 02e9222221 trigger_ui: implement new UIState api for drag&drop 2022-02-11 15:32:00 -06:00
Ben Loftis 40a1997c0e triggerbox: reimplement enqueue_trigger_source using a map of UISTate entries
* "Range->Bounce to Trigger Clip" needs to set tempo
* Range->bounce can operate on multiple tracks (regions) in one operation
2022-02-11 15:31:54 -06:00
Ben Loftis 742e3659ff triggerbox: add name, color and tempo to UIState; used for gui operations like d+d 2022-02-11 15:25:59 -06:00
Ben Loftis 37a5edb2cd triggerbox: initialize values of UIState (c++11 style) 2022-02-11 15:25:59 -06:00
Paul Davis 76ae8f29f7 triggerbox GUI: stop-all cue marker uses INT32_MAX now 2022-02-11 13:37:14 -07:00
Paul Davis 1777f9af0c triggerbox: working (?) "stop all cues" cue marker 2022-02-11 13:36:58 -07:00
Paul Davis 17e5667216 triggerbox: use translatable marker name function in GUI 2022-02-11 11:33:43 -07:00
Paul Davis 98f1b4364d triggerbox: implement function for translatable marker names 2022-02-11 11:33:27 -07:00
Paul Davis 914b2447b8 triggerbox: a cue marker/event with cue-id < 0 means "stop all" 2022-02-11 11:33:06 -07:00
Paul Davis a1384d2789 triggerbox; fast-forward should do nothing if we are not use cue markers 2022-02-11 10:33:11 -07:00
Paul Davis d18426ee95 debug output to show contents of trigger property changes 2022-02-11 10:32:50 -07:00
Paul Davis f7881af554 do not recurse 2022-02-11 10:21:48 -07:00
Paul Davis 008f0d4e4c triggerbox: do not send Trigger property updates while fast forwarding 2022-02-11 10:16:04 -07:00
Paul Davis e14b8a142d triggerbox: a cue marker that refers to an empty slot ends a previously playing slot (in fast forward) 2022-02-11 09:11:43 -07:00
Paul Davis 9f39cca21f remove debug output 2022-02-11 08:47:59 -07:00
Paul Davis 3553d56f05 tempo map: fix loading 6000-version or earlier tempo maps
Probably a copy-n-paste error meant the reversed logic was used
to decide if we had found an inital tempo and meter
2022-02-11 08:46:49 -07:00
Paul Davis 2bf8b7ce11 triggerbox: mostly working fast-forward for MIDI triggers 2022-02-10 19:59:48 -07:00
Paul Davis 395b759f42 midi state tracker: extend, fix, improve API for flushing state 2022-02-10 19:59:48 -07:00
Robin Gareus 9b3d0ddd11
Fix incorrect check for existing directory
Glib::file_test returns true if **any** of the tests in the
bitfield test are true (not *all*).
2022-02-10 22:04:40 +01:00
Robin Gareus ff56cd61b3
Do not switch to Clip Library when moving a file into the dropzone 2022-02-10 21:59:53 +01:00
Robin Gareus a63a18a338
Do not allow to add the same folder to the clip library path twice 2022-02-10 18:25:11 +01:00