Commit graph

18766 commits

Author SHA1 Message Date
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
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
227815ebab fix crash introduced in d8b3 2022-02-12 09:34:42 -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
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
1777f9af0c triggerbox: working (?) "stop all cues" cue marker 2022-02-11 13:36:58 -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
bf273a90ca
Auditioner: collect MIDI Bank/Program changes
This will allow to directly set MIDITrigger PC override
from the auditioner.
2022-02-10 02:22:35 +01:00
Paul Davis
771db9e238 NOOP: remove blank lines 2022-02-09 17:26:25 -07:00
Paul Davis
f941041805 triggerbox: use C++11 syntax for iteration 2022-02-09 17:26:25 -07:00
Paul Davis
439e112d32 triggerbox: pay attention to the fact that a trigger may have Stopped while fast-forwarding 2022-02-09 17:26:25 -07:00
Paul Davis
baacd3bb50 triggerbox: no need to call reset_stretcher() explicitly in ::_startuo()
Trigger::_startup() calls ::retrigger() and that will call reset_stretcher()
2022-02-09 17:26:25 -07:00
Paul Davis
0b5d449686 triggerbox: slightly improved DEBUG_TRACE output for property setters 2022-02-09 17:26:25 -07:00
Paul Davis
0ad90f826e triggerbox: handle realtime part of transport stop explicitly in TriggerBox 2022-02-09 17:26:25 -07:00
Paul Davis
19b844e054 triggerbox: sync ui property state with internal for inactive triggers 2022-02-09 16:34:03 -07:00
Paul Davis
baf2323798 add PBD::PropertyChange::dump (std::ostream&) to make it easier to see what changed 2022-02-09 10:08:01 -07:00
Paul Davis
f58b8e3cb4 fix accidental insertion of "x1" 2022-02-09 10:08:01 -07:00
Paul Davis
e77e3b35b8 mackie: fix crash when using thread-local tempo map
TempoMap::use() assumes the thread_local pointer has been set up. This
is not the case for the control protocol event loop, so call ::fetch()
instead which does not require this assumption (and sets the thread_local
pointer too, though nothing else in the Mackie code uses it)
2022-02-09 10:08:01 -07:00
Paul Davis
beffc7eb7f fix another ordering change introduced during a manual rebase fixup 2022-02-08 21:08:15 -07:00
Paul Davis
93e1b77fe2 fix mistake introduced during rebase fixup 2022-02-08 21:07:07 -07:00
Paul Davis
11042914e1 triggerbox: remove a bunch of cerr output and fix up audio stretcher reinitialization 2022-02-08 20:58:27 -07:00
Paul Davis
629efe29f4 triggerbox: initial implementation of start_and_roll_to () for AudioTriggers.
This also required a mechanism to prevent the fact of a non-null "currently_playing" value in
the TriggerBox from starting the transport, which is handled with Triggerbox::_locate_armed. This
is set when _currently_playing is set from TriggerBox::fast_forward()
2022-02-08 20:58:27 -07:00
Paul Davis
e8b6728d2e triggerbox: fix looping of MIDI triggers
Problems were caused by a variety of interlocking errors.
DEBUG_TRACE() output has also been enhanced and added.
2022-02-08 20:57:32 -07:00
Paul Davis
f77e9aa6c8 triggerbox: architectural changes to facilitate fast-forward 2022-02-08 20:57:32 -07:00
Paul Davis
da0d16c712 midi state tracker: invert use of 0x80 to indicate "unset"
If a state variable has the 8th bit set, that indicates that it is unset.
2022-02-08 20:33:46 -07:00
Robin Gareus
19a4f6a437
Fix restoring Trigger state 2022-02-09 02:30:40 +01:00
Robin Gareus
5f84209c30
Add API to ignore PC per TriggerBox 2022-02-09 02:30:40 +01:00
Robin Gareus
f9dbe34900
Add missing include 2022-02-08 21:24:54 +01:00
Ben Loftis
54b3a3bf6b less marimbas! 2022-02-07 19:43:34 -06:00
Robin Gareus
5f9d0743c9
Allow to loop auditioning 2022-02-07 04:39:05 +01:00
Robin Gareus
2328df23e5
Collect and postpone send delayline updates
In order to detect if route delaylines need to be updated,
aux-send delaylines need to be updated first. This was previously
done directly in the latency-callback, which may be concurrent
with processing.

Now only the information (pending_delay) is set, and the actual
change happens later at the end of process().
2022-02-07 04:31:42 +01:00
Robin Gareus
31b7e18d7d
Fix edge-case race initialize_latencies() vs process()
Due to _init_countdown when the engine starts, it is
extremely unlikely that Session::initialize_latencies(),
which is invoked by AudioEngine::Running runs concurrently
with Session::process, but at least in theory it would be possible.
2022-02-06 00:45:49 +01:00