111054812a
mini-timeline: yet another tweak to draw Stop Cues nicely
2022-02-14 21:22:36 -06:00
8741c4cc5d
triggerbox: NOOP - rename template parameter for *_run<bool> to be more clear about its purpose
2022-02-14 18:13:06 -07:00
cb815bf8dd
triggerbox: drop useless computation
2022-02-14 18:09:03 -07:00
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
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
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
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
c5d7883538
temporal: add skeleton for Timeline (timepos_t/timecnt_t) tests
2022-02-12 22:25:17 -07:00
baaf332a94
temporal: add skeleton for TempoMap tests
2022-02-12 22:25:17 -07:00
897798ed68
remove cue-behavior toggle from ruler context menu
2022-02-12 21:49:57 -06:00
54d794e242
rough-in global Cue functions (rec-enable and play-enable i.e. cue-ffwd)
2022-02-12 21:46:30 -06:00
bb67041938
public_editor: expose toggle_cue_behavior for access from ArdourUI
2022-02-12 21:46:30 -06:00
de9f73c040
cue page: remove the unmarked rec-enable button from the cues column
2022-02-12 21:46:30 -06:00
bfd698bef8
mini-timeline: rough-in Stop Cue markers
2022-02-12 21:46:30 -06:00
14ac8fd36b
skeleton for temporal/BBT testing (empty for now)
2022-02-12 17:51:30 -07:00
f641a0559f
temporal: missing test source
2022-02-12 15:18:19 -07:00
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
9cea6b7359
trigger_ui: don't allow Stretch options to be edited on an active clip
2022-02-12 11:14:40 -06:00
e41729d10c
triggerbox: remove excess debug printouts
2022-02-12 11:14:12 -06:00
8a3b5751fb
triggerbox: initialize follow-count more reliably. this way queues a UIState
2022-02-12 11:13:30 -06:00
ad7db33666
triggerbox: remove redundant code; set_segment_tempo takes care of this later
2022-02-12 11:12:33 -06:00
563dc9ae21
triggerbox: setup_stretcher must be called for stretch_mode to have any effect
2022-02-12 11:12:08 -06:00
d20dfe8f88
clip_picker: fix logic to show MIDI file properties
2022-02-12 09:35:24 -06:00
227815ebab
fix crash introduced in d8b3
2022-02-12 09:34:42 -06:00
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
d8b3fbb94e
beatcnt is a derived property from tempo and segment-length
2022-02-12 09:04:48 -06:00
b3ec5df8a8
triggerbox: some additional DEBUG_TRACE messages
2022-02-11 15:22:45 -07:00
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
a8cf442bc9
pixel-pushing: clean up the dialog for Range->Bounce to Trigger Clip
2022-02-11 15:32:00 -06:00
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
02e9222221
trigger_ui: implement new UIState api for drag&drop
2022-02-11 15:32:00 -06:00
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
742e3659ff
triggerbox: add name, color and tempo to UIState; used for gui operations like d+d
2022-02-11 15:25:59 -06:00
37a5edb2cd
triggerbox: initialize values of UIState (c++11 style)
2022-02-11 15:25:59 -06:00
76ae8f29f7
triggerbox GUI: stop-all cue marker uses INT32_MAX now
2022-02-11 13:37:14 -07:00
1777f9af0c
triggerbox: working (?) "stop all cues" cue marker
2022-02-11 13:36:58 -07:00
17e5667216
triggerbox: use translatable marker name function in GUI
2022-02-11 11:33:43 -07:00
98f1b4364d
triggerbox: implement function for translatable marker names
2022-02-11 11:33:27 -07:00
914b2447b8
triggerbox: a cue marker/event with cue-id < 0 means "stop all"
2022-02-11 11:33:06 -07:00
a1384d2789
triggerbox; fast-forward should do nothing if we are not use cue markers
2022-02-11 10:33:11 -07:00
d18426ee95
debug output to show contents of trigger property changes
2022-02-11 10:32:50 -07:00
f7881af554
do not recurse
2022-02-11 10:21:48 -07:00
008f0d4e4c
triggerbox: do not send Trigger property updates while fast forwarding
2022-02-11 10:16:04 -07:00
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
9f39cca21f
remove debug output
2022-02-11 08:47:59 -07:00
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
2bf8b7ce11
triggerbox: mostly working fast-forward for MIDI triggers
2022-02-10 19:59:48 -07:00
395b759f42
midi state tracker: extend, fix, improve API for flushing state
2022-02-10 19:59:48 -07:00
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