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