Paul Davis
28db0c1d2b
triggerbox: fix logic error in handling of locate-while-playing-triggers
2022-02-21 12:45:13 -07:00
Paul Davis
92d82866e0
temporal: add some basic BBT time tests
...
Some of the subtraction tests may need revising because it is not immediately clear that the
current answers are correct.
2022-02-21 11:55:44 -07:00
Paul Davis
47bf18101b
triggerbox: don't set transition times when we are not transitioning
...
At some point during code refactoring, we ended up setting up the 3 transition times, intedned
to define when the *previous* transition occured, as we checked to see if a transition
would occur during this ::run() call. This led to (in particular) MIDI clips ending early,
because the transition_beats value was set to the *next* (upcoming) transition, and we used
this to define the timeline position of MIDI events
2022-02-20 11:00:01 -07:00
Paul Davis
685a3ebc7e
do not use a write copy of the tempo map when not planning to modify the map
2022-02-20 09:31:23 -07:00
Paul Davis
b9de15d285
triggerbox: split apart semantics of WaitingToStop
...
This allows for a different quantization to be used when WaitingToSwitch,
used when we explicitly start a different Trigger. When "just stopping"
we continue to use 1 bar quantization; when switching to a different
Trigger we use the quantization of the next Trigger
2022-02-20 09:20:47 -07:00
Paul Davis
61b728bdcc
more avoidance of double initialization
2022-02-19 16:42:03 -07:00
Ben Loftis
08768e8185
draw the Stop All Cues marker as a square
2022-02-19 13:39:59 -06:00
Ben Loftis
c7dbfb9961
trigger_ui: add a hint re: randomness of selections in the Multi-Jump dialog
2022-02-19 12:34:45 -06:00
Ben Loftis
ee9e7589ee
trigger_ui: add more tooltips
2022-02-19 12:12:43 -06:00
Ben Loftis
ab44c9a750
trigger_ui: add some tooltips
2022-02-19 11:49:01 -06:00
Ben Loftis
5f0c7fe3d6
move cue-behavior to session config (gtk part)
2022-02-19 11:49:01 -06:00
Ben Loftis
b506a243a2
move cue-behavior from rc_configuration to per-session config
2022-02-19 11:48:56 -06:00
Paul Davis
dcdfd3ff0f
no need to repeat initialization
2022-02-19 09:03:48 -07:00
Paul Davis
4ae5c04fd7
remove duplicate sync_mark member in AudioRegionView (decl'd in RegionView)
2022-02-19 09:03:36 -07:00
Paul Davis
3bfcfe178d
triggerbox: some work towards keeping GUI state in sync with "Play Cues"
...
This still needs some mechanism to request a fast-forward when "Play Cues" is enabled
in a (G)UI thread
2022-02-19 08:53:30 -07:00
Paul Davis
a01325c693
triggerbox: NOOP: whitespace cleanup
2022-02-18 18:02:56 -07:00
Paul Davis
1e7ca734d6
triggerbox: reapply change in 9abc4642 with more explanatory comments
2022-02-18 18:01:52 -07:00
Paul Davis
00185aadcf
triggerbox: leave a possibly helpful comment
2022-02-18 12:57:14 -07:00
Paul Davis
f5ef5f44a3
triggerbox: include change intended to be in cb815bf8d
...
This properly splits the condition into "before final beat" and
"after final beat"
2022-02-18 12:57:14 -07:00
Paul Davis
66b9bc5c40
triggerbox: alter several DEBUG_TRACE statements
2022-02-18 12:57:14 -07:00
Paul Davis
fe76432061
triggerbox: help MIDITriggers find their ends consistently
2022-02-18 12:57:14 -07:00
Paul Davis
19f6a6a739
triggerbox: during fast-forward, if there's nothing to do, set_currently_playing to null
...
if left non-null, the next TriggerBox::run() method will start the transport
rolling.
2022-02-18 12:57:14 -07:00
Paul Davis
8a36f9fce8
triggerbox: reset _loop_cnt to zero on shutdown
...
This helps with preventing _loop_cnt incrementing to unintended values.
2022-02-18 12:57:14 -07:00
Paul Davis
0762ef4f35
triggerbox: remove Playout enum from enums registation
2022-02-18 12:57:14 -07:00
Paul Davis
401e5a572c
triggerbox: clean up comments for Trigger state decls
2022-02-18 12:57:14 -07:00
Paul Davis
4b7c0448e4
triggerbox: remove Playout as a possible state and use a separate bool
...
A trigger can be in a playout state when we decide to change its
state to WaitingToStop (e.g. due to a cue marker). This design
leaves the playout condition "in effect" despite the state changing.
2022-02-18 12:57:14 -07:00
Ben Loftis
fbbe74a530
triggerbox: revert gain() as a queued UISTate value
...
It's impractical/impossible to set the gain if you have to wait for a retrigger
2022-02-18 11:15:43 -06:00
Paul Davis
c09ffd4fcd
triggerbox: consolidate ::start_and_roll_to() across Audio & MIDI triggers
...
This uses a mild trick to pass both the object and ptr-to-member-function from the child class
to the parent class.
Note: before this commit, both instances of ::start_and_roll_to() were identical.
2022-02-15 16:24:01 -07:00
Paul Davis
e75a8ab77c
triggerbox: clarify handling of end-of-clip conditions
...
This doesn't enter Playout state, when the final event matches the predicted
final beat, but also returns the correct number of frames covered
2022-02-15 15:28:01 -07:00
Ben Loftis
9abc4642ed
triggerbox: fix midi timing in the case where a note-off arrives exactly at the end of the clip (amends cbbe5)
2022-02-14 21:30:23 -06:00
Ben Loftis
5a19a4fb4a
tempo ruler: remove unused _name_flag for tempo markers
2022-02-14 21:22:36 -06:00
Ben Loftis
1ce0641172
trigger_ui: Stop All Cues can be queued just like the Cues can. So color it like a timeline marker(?)
2022-02-14 21:22:36 -06:00
Ben Loftis
8c41fc7dd0
meter ruler: match look of meter markers to tempo markers
2022-02-14 21:22:36 -06:00
Ben Loftis
49e792868f
cue ruler: potential crash fix
2022-02-14 21:22:36 -06:00
Ben Loftis
f5142fb19a
tempo ruler: increase the size of tempo markers. 6pix is too small a target
2022-02-14 21:22:36 -06:00
Ben Loftis
daf56ccf0a
tempo ruler: do not resize marker (a grabbable object) due to tempo changes
2022-02-14 21:22:36 -06:00
Ben Loftis
111054812a
mini-timeline: yet another tweak to draw Stop Cues nicely
2022-02-14 21:22:36 -06:00
Paul Davis
8741c4cc5d
triggerbox: NOOP - rename template parameter for *_run<bool> to be more clear about its purpose
2022-02-14 18:13:06 -07:00
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