5ade0927dd
remove Other/Any follow action types
2022-01-20 18:56:07 -07:00
b94c5dcec7
remove Next/Prev (Live-style) follow action types
2022-01-20 18:56:07 -07:00
bbdfc5e777
remove FollowAction type "QueuedTrigger"
2022-01-20 18:56:07 -07:00
90e6107972
triggerbox: left follow action == None means "no follow action at all"
2022-01-20 14:15:45 -07:00
8ddf057553
triggerbox: fix enum (compiler should have noticed this)
2022-01-20 14:15:25 -07:00
b884f7c534
triggerbox: do not use follow length when (left) follow action is None
2022-01-20 14:03:40 -07:00
68c87c3f29
triggerbox: fix various errors caused by not setting transition_bbt
...
In cases where no quantization is done, transition_bbt was not set,
and this led to expected_end_sample being incorrect.
2022-01-20 13:57:47 -07:00
02f4daffe4
fix inconsequential debug-trace garbage value report from clang
2022-01-20 13:40:49 -07:00
ee5d3da929
fix inconsequential (unlikely) memory leak from clang
2022-01-20 13:40:49 -07:00
4c9460b697
fix incorrect code that passed a null boost::shared_ptr<AudioRegion> into a ::get_state() call
2022-01-20 12:07:59 -07:00
413f2e9d1b
triggerbox: implement (?) JumpTrigger follow action
2022-01-20 11:01:00 -07:00
993c7c4bec
canvas: manually remove changes from 6f91dc0799
and implement same goal in a different way
...
The AudioClipEditor features a scroll bar that is a part of the canvas. Because scroll
groups are at the top level of a canvas, the scroll bar is necessary within a scroll
group, which causes it to get confused about the difference between its own
position within the canvas and that of the scroll group. This commit introduces
a per-Item flag, _scroll_translation, which is true by default. If false, the
item will not have coordinates translated to reflect scroll group position.
2022-01-20 09:45:47 -07:00
95edfbac4a
triggerbox: change FollowActions into an object with a target list
...
Should be no functional changes in this commit, but older sessions will likely not
load.
2022-01-19 15:50:55 -07:00
62a098811c
Allow DnDTreeView drag w/o object reference
2022-01-19 17:13:51 +01:00
dbefba9904
temporal: have tempo map expose it's separate (intrusive) lists of tempo, meter and bbt points
2022-01-18 19:47:20 -07:00
4ec70bbaec
Source::natural_position API uses samplepos_t
2022-01-19 03:01:09 +01:00
267229c03c
ArdourCanvas::Arc (i.e. Circle) should allow for child items to be drawn
2022-01-18 16:42:00 -06:00
9be853d555
triggerbox: initialize the follow_count value as well as barcnt
2022-01-18 16:33:45 -06:00
6cdeed8945
triggerbox: first draft: allow gui access to audio-segment meter and barcnt
2022-01-17 18:04:43 -06:00
e0f6ef4369
Always use a sidechain input to control triggers
...
This allows MIDI trigger tacks to distinguish between music-data
and control-data.
2022-01-17 05:03:18 +01:00
bf9ef3abd3
add comment
2022-01-16 20:34:24 -07:00
7e37ae4b17
Do not add TriggerBox Processor to Auditioner
2022-01-17 04:31:25 +01:00
3e0bb03363
triggerbox: defensive coding changes
2022-01-16 10:57:07 -06:00
869a862c86
triggerbox: use_follow_length should be an explicit property
...
this allows you to enable/disable the follow-length without starting from 0 every time
2022-01-16 10:57:01 -06:00
9ee4c14bce
generic MIDI: extend menu options to drop ALL MIDI bindings, not just a binding map
2022-01-15 13:15:38 -07:00
cb640c7e9c
NO-OP: clang-format (and some manual re-indent)
2022-01-15 04:46:58 +01:00
21c22cc850
Add API to render a Icon with a text caption
2022-01-15 04:46:55 +01:00
f339c0b5f9
triggerbox: remove "use follow action" as an explicit property of a trigger
2022-01-14 17:39:27 -07:00
670e1f9025
NO-OP: clarify variable name (1/2)
2022-01-15 00:06:26 +01:00
76facc0b13
Unconditionally create Triggerbox for each Track
...
This addresses and issue when loading old sessions or creating
tracks from [old] templates.
2022-01-14 22:46:50 +01:00
0c4769cb3f
Fix compilation when including polarity_processor.h directly
2022-01-14 22:46:50 +01:00
de9322e0d3
triggerbox: cleanup some DEBUG_TRACE statements and convert some debug output to trace statements
2022-01-14 14:39:16 -07:00
6a6a42c272
triggerbox: another important tweak for trigger behavior
...
This fixes another code point where we realize that there is nothing to do
within a triggerbox, but we failed to reset _stop_all to false, causing
misbehavior until the next trigger plays to completion with no subsequent
trigger.
2022-01-14 14:37:53 -07:00
8e9c4f6a67
triggerbox: fixes to get follow length to do what is intended to do
...
Hard to explain more concisely than the code changes, so please read.
2022-01-14 14:36:38 -07:00
787a66815d
triggerbox: fix initialization warning
2022-01-14 14:35:51 -07:00
9ccaab5deb
working segment descriptor save/restore/set/fetch and use by triggerbox
2022-01-14 12:22:34 -07:00
6d2a124f5e
triggerbox: fix newline in debug trace output
2022-01-14 12:21:56 -07:00
de324b54b9
triggerbox: disambiguate esteimated_tempo from the actual segment_tempo
2022-01-13 23:19:01 -06:00
c159614902
restore source segment descriptors
2022-01-13 17:41:15 -07:00
b9a798ebb8
add XMLNode constructor for SegmentDescriptor
2022-01-13 17:38:40 -07:00
680a27c29d
store source segment descriptors
2022-01-13 17:29:33 -07:00
e00779c57d
SegmentDescriptor::get_state() can be const
2022-01-13 17:29:16 -07:00
154f406256
segment descriptor: restore state
2022-01-13 17:25:42 -07:00
bb75b03724
segment descriptor: save state
2022-01-13 16:51:55 -07:00
cf10808640
change Source segment descriptor API (and triggerbox use of it)
2022-01-13 16:00:03 -07:00
d85607bfc7
teiggerbox: fix signedness warning with cast
2022-01-13 15:59:23 -07:00
2570b43ab6
triggerbox: try to get tempo from segment descriptor, and add Meter member var
2022-01-13 15:48:44 -07:00
1994935550
source HAS-SOME SegmentDescriptors
2022-01-13 15:07:21 -07:00
25bd59958c
triggerbox: fix/add save/restore of trigger _follow_length property
2022-01-13 13:30:04 -07:00
d8c90decf3
triggerbox: use follow length when quantizing re-start of Again-selected trigger
...
This also changes the virtual method from ::startup() to ::_startup() so that we can
safely have a default argument in ::startup().
2022-01-13 12:09:23 -07:00
98cd0f1ba3
triggerbox: fix for handling follow lengths, previously for MIDITrigger now for Audio
2022-01-13 12:07:26 -07:00
c3732e12ea
fix handling of zero _follow_length in MIDI triggers
2022-01-12 21:43:40 -07:00
beb0a96f42
API to directly retrieve XML child content
2022-01-13 00:09:55 +01:00
a9d2a1c3f8
triggerbox: reset default _follow_Length to zero
2022-01-12 14:17:33 -07:00
2ed4af0c7a
triggerbox: continued work on getting MIDITriggers to use _follow_length correctly
2022-01-12 14:12:20 -07:00
ac97b30e55
triggerbox: implement stretch options, save+recall
2022-01-11 16:27:03 -06:00
4d04849be9
triggerbox: continuing work on follow action length, particuarly for MIDI triggers
2022-01-11 11:48:22 -07:00
7fdc83bfbf
triggerbox: disambiguate velocity_gain from the trigger's gain property
2022-01-10 19:33:05 -06:00
04bc44c7ad
triggerbox: fix typo
2022-01-10 15:51:12 -07:00
e0004791f0
triggerbox: fix audio clips when _follow_length is zero
2022-01-10 15:49:07 -07:00
0c89ab82e1
triggerbox: tweaks, twirls and scrapes to get _follow_length working, apparently
2022-01-10 14:03:06 -07:00
cb83d11681
triggerbox: add new trigger state enum to enums.cc
2022-01-10 14:02:38 -07:00
dbb816b1f9
triggerbox: add "final sample" concept to start dealing with post-data playout
2022-01-10 14:02:38 -07:00
1afc0ce69c
triggerbox: add follow length property to triggers (not used yet)
2022-01-10 14:02:33 -07:00
1078dc7eda
DnD-TV: Allow to specify TargetFlags
2022-01-10 20:40:46 +01:00
16511974e2
Fix class/struct mismatch C++ ABI [-Wmismatched-tags]
2022-01-10 00:06:24 +01:00
30539716ca
Fix various Wcast-qual
...
g_atomic_int_get() requires a non-const pointer, however
many APIs are declared virtual const, so const_cast<> is
preferred over an API change.
2022-01-10 00:06:20 +01:00
4146177da3
triggerbox: when asked to stop by the user, clips should extend to the next bar boundary (and no further)
2022-01-07 16:05:07 -06:00
c157490311
triggerbox: fix N-bar quantization: bars are 1-based
2022-01-07 16:05:07 -06:00
4e5f171fe2
triggerbox: the default quantization for a clip should be 'bars'
2022-01-07 16:05:01 -06:00
John Emmas
031dce4ba4
Minor fix to commit #45df39bd0ea from yesterday
...
class 'AutomatableSequence' was trying to access a member that's private to its base class
2022-01-07 10:29:31 +00:00
78b39284d8
triggerbox: workaround for midi import crash. TODO: investigate root cause
2022-01-06 21:17:54 -06:00
2f9b84fd48
triggerbox: resolve MIDI notes whenever a MIDI cue is stopped
2022-01-06 16:50:55 -07:00
caba23ff4f
remove misleading/out-of-date instructions in comment
2022-01-06 14:22:07 -07:00
b909c07a2d
triggerbox: fix failure of triggers to end at the right time when something happens to stop them early
...
nframes needed to be reduced to reflect the expected transition time. This change also consolidates any adjustment to
nframes and dest_offset for "starts within the interval" cases.
2022-01-06 13:48:23 -07:00
436b81be9a
NOOP: change code pattern to return early from conditional rather than leaving body inside true condition scope
2022-01-06 12:07:22 -07:00
8bf494e5a8
change nature of CueBehavior enum to be bitwise
...
This allows us to OR-in the ImplicitlyIgnoreCues bits, and still toggle
FollowCues on and off to indicate user-requested behavior
2022-01-06 11:59:58 -07:00
44d52133ae
triggerbox: ignore cue-marker cues if told to do so
2022-01-06 11:23:02 -07:00
85b8816287
NOOP: remove spurious character in comment
2022-01-06 11:12:49 -07:00
4e482076ea
add config param to control response to cue markers
2022-01-06 11:10:28 -07:00
45df39bd0e
fix mysterious incorrect copy constructor call for AutomatableSequence
...
msvc calls this out, but gcc/clang do not. It is not clear why, and it might be worth understanding why
2022-01-06 10:36:50 -07:00
a187b5e1fb
triggerbox: reimplement timeline cues without session events
2022-01-06 00:23:27 -07:00
fd2f2f46cc
triggerbox: implement cue-triggering session event handling (sync with location markers)
...
Still requires handling tempo changes
2022-01-05 13:27:47 -07:00
f1a81b303a
add several newer enums to libs/ardour/enums.cc
2022-01-05 13:27:47 -07:00
acdc1cd707
extend/adjust Location API to handle cue markers
2022-01-05 13:27:47 -07:00
93b30976e5
cue events: some basic handling framework for syncing cue markers with session events that implement them
...
This doesn't actually do anything yet
2022-01-05 13:27:47 -07:00
5783664b9e
locations: provide Location::cue_change signal to notify about cue marker changes
2022-01-05 13:27:47 -07:00
54aa57a297
fix naming of unnamed cue locations
2022-01-05 13:27:47 -07:00
8a49d274fb
fix luabindings for Editor.mouse_add_new_marker(), since API changed
2022-01-04 15:23:51 -07:00
c2d18dabd5
add new location flag, IsCueMarker
2022-01-04 15:23:51 -07:00
58d4c1e317
triggerbox: add ReTrigger launch style; do not stop running slots when cue launching
2022-01-03 17:45:21 -07:00
b72268f6e1
triggerbox: rename sidechain port when track's name chanes
...
Just like PluginInsert::update_sidechain_name, the name is
implicitly set, using the owning route's name, suffixed with the
[i18n localized] Processor name.
This fixes an issue if a track is renamed and a new track with
the old name is created. This commonly happens during File Import:
For each ImportAsTrack a generic named track (e.g. "Audio") is created
before it is renamed.
Previously this lead to
Failed to register port "Audio 1-trig/midi_in 1", reason is unknown from here
2022-01-04 01:22:34 +01:00
3c2878974c
Always create a triggerbox with new tracks
...
This fixes an issue when creating tracks from the import dialog,
or via Drag/Drop, or using a template.
All tracks should always have trigger-boxes.
2022-01-03 23:41:58 +01:00
47d34bfbfb
Tweak FPU test for FMA
...
FMA may return *more precise* results since there is no intermediate
rounding when computing (a + b * c).
(b * c) is evaluate with infinite precision and only the final result
after adding a is rounded to float32. This allows for a FLT_EPSILON
difference compared to rounding (b * c) first.
2022-01-03 02:34:53 +01:00
Ayan Shafqat
b90bfa2597
Fix pointer math for prefetch
2022-01-03 02:01:12 +01:00
Ayan Shafqat
25fac546d5
Removing _mm256_zeroupper()
...
This is probably not needed in 2021 as compilers will insert them
automatically. See stackoverflow reference:
https://stackoverflow.com/a/68738289
2022-01-03 02:01:12 +01:00
Ayan Shafqat
5fc3ae79ae
Tune performance for AVX optimized find_peaks
...
Propagating the changes from compute_peaks to find_peaks
2022-01-03 02:01:12 +01:00
Ayan Shafqat
a07ae169a3
Fine tune AVX optimized routine
...
In some instances, AVX optimized routines were slower than compiler
generated output. This commit addresses a few of those issues by
tuning code for better branch prediction and appropriate loop unrolls.
2022-01-03 02:01:12 +01:00
ca5043288c
remove debug output
2022-01-02 17:23:01 -07:00
41310d9b8a
brace style (braces missing)
2022-01-02 17:20:39 -07:00
0f6aa118f0
triggerbox: add Forward/ReverseTrigger follow actions
...
Live's Next/Prev do not skip empty slots or wrap. So do both-and
2022-01-02 17:20:38 -07:00
8e7810f40c
Disable session unit-tests for now
...
Converting, loading old sessions/templates fails:
#0 0x00005555568a2590 in ()
#1 0x00007ffff7b8dfd9 in ARDOUR::SessionEventManager::merge_event(ARDOUR::SessionEvent*) (this=0x55555d89c3f0, ev=0x555555cfb510) at ../libs/ardour/session_events.cc:204
#2 0x00007ffff7bb1c79 in ARDOUR::Session::queue_event(ARDOUR::SessionEvent*) (this=0x55555d89c260, ev=0x555555cfb510) at ../libs/ardour/session_process.cc:836
#3 0x00007ffff7b8d780 in ARDOUR::SessionEventManager::clear_events(ARDOUR::SessionEvent::Type, boost::function<void ()>) (this=0x55555d89c3f0, type=ARDOUR::SessionEvent::Skip, after=...)
at ../libs/ardour/session_events.cc:156
#4 0x00007ffff7b17991 in ARDOUR::Session::sync_locations_to_skips() (this=0x55555d89c260) at ../libs/ardour/session.cc:1752
#5 0x00007ffff7b175bd in ARDOUR::Session::update_skips(ARDOUR::Location*, bool) (this=0x55555d89c260, loc=0x0, consolidate=false) at ../libs/ardour/session.cc:1701
#6 0x00007ffff7b18bed in ARDOUR::Session::_locations_changed(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)
(this=0x55555d89c260, locations=empty std::__cxx11::list) at ../libs/ardour/session.cc:1877
#7 0x00007ffff7b3ff7d in ARDOUR::Locations::apply<ARDOUR::Session>(ARDOUR::Session&, void (ARDOUR::Session::*)(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)) const (this=0x55555e19ed10, obj=..., method=
(void (ARDOUR::Session::*)(ARDOUR::Session * const, const ARDOUR::Locations::LocationList &)) 0x7ffff7b18b38 <ARDOUR::Session::_locations_changed(std::__cxx11::list<ARDOUR::Location*, std::allocator<ARDOUR::Location*> > const&)>) at ../libs/ardour/ardour/location.h:263
#8 0x00007ffff7b18b35 in ARDOUR::Session::locations_changed() (this=0x55555d89c260) at ../libs/ardour/session.cc:1858
#9 0x00007ffff7bc4914 in ARDOUR::Session::set_state(XMLNode const&, int) (this=0x55555d89c260, node=..., version=7000) at ../libs/ardour/session_state.cc:1666
2022-01-03 01:11:54 +01:00
987df219e0
Fix building libardour unit-tests, disable BBT tests for now
2022-01-03 01:11:54 +01:00
e295e1c8d7
Disable evoral unit-tests -- nutempo update is needed
2022-01-03 01:11:54 +01:00
e784aa5d34
Extend midi regions to their natural bar length on import
2022-01-02 16:06:06 -06:00
6c3c38e924
Replace Tabs with Space in python script
2022-01-02 14:34:53 +01:00
4be38042a2
triggerbox: consolidate some code that is used in both MIDITrigger and AudioTrigger::run()
...
This comments out the reset of transition_beats that had been necessary to get
MIDI triggers to work correctly. Testing doesn't show a problem with it (so far).
2022-01-01 16:19:13 -07:00
fb82750bfb
triggerbox: fix retrigger of MIDItrigger to start at next repeat of clip
2021-12-31 12:55:09 -07:00
ad5b0bac32
triggerbox: improved method of handling launch-style while cue launched
2021-12-31 12:55:09 -07:00
a7c9b2094a
triggerbox: expanded debug trace output
2021-12-31 12:55:09 -07:00
6059687fb2
export MidiTrack::{set_,}input_active() to Lua
2021-12-31 12:55:02 -07:00
8d97439281
triggerbox: save properties and use Toggle launch style if started from a cue
2021-12-31 12:54:06 -07:00
027e7302b8
triggerbox: don't get a new trigger if there isn't a current one and allstop is set
2021-12-31 12:54:06 -07:00
27dfbecd54
triggerbox: add skeleton for push/pop of cue-affected trigger properties
2021-12-31 12:54:06 -07:00
88e9db30e3
triggerbox: NO-OP move code around
2021-12-31 12:54:06 -07:00
1e7e4b3037
VST3: fix legacy MIDI output - thanks to paulfd
2021-12-31 15:58:51 +01:00
854e359f56
build-fix: remove unused file reference
2021-12-30 21:44:21 -06:00
9180a985a4
trigger_ui: TriggerEntry is-a TriggerUI
2021-12-30 21:25:39 -06:00
133b51922a
trigger_ui: move old triggerui implementation into slot_properties where it is used
2021-12-30 21:25:39 -06:00
7a53c4140d
trigger_ui: add a color-picker button
2021-12-30 21:25:39 -06:00
d87b1053df
ArdourButton: ColorBox flag is for color-picker buttons
2021-12-30 21:25:39 -06:00
c29f5471b2
Handle all enum cases, prevent accessing unintialized ptr object
2021-12-31 02:47:50 +01:00
1f5649ef28
Fix vfork edge-case
...
Calling c_str() after vfork is prohibited after a successful vfork.
Also the string needs to remain in scope until exec() completed.
2021-12-31 01:39:39 +01:00
96c80e88ac
Lua binding for MidiTrack::set_input_active
2021-12-30 19:00:14 +01:00
Florian Walpen
10d367fdae
Fix plugin manager build with VST3 disabled.
...
ARDOUR::SystemExec is also used for scanning VST2 and AU plugins, yet
the corresponding header ardour/system_exec.h is not included when VST3
support is disabled in the build configuration.
2021-12-29 23:33:39 +01:00
24269acb97
triggerbox: update relevant comment
2021-12-29 09:37:43 -07:00
645262c26a
triggerbox: fix incorrect behavior in MIDITrigger::run() caused by taking dest_offset into account twice
2021-12-29 08:58:55 -07:00
87974562d3
triggerbox: add TriggerBox::active_scene()
2021-12-28 18:02:13 -07:00
2c00379220
triggerbox: continuing fixups for MIDITrigger
2021-12-28 18:01:41 -07:00
c97a28015e
triggerbox: default probability should be 0 (100% left)
2021-12-28 08:37:08 -06:00
a43e3d88e5
triggerbox: notify the UI when we Clear a trigger
2021-12-27 18:03:13 -06:00
3a506ac7a1
triggerbox: mark session dirty when a Trigger's properties are changed
...
also make an effort to damp callbacks that are prone to gui feedback loops
i.e. CheckMenu Items and Adjustments
2021-12-27 18:03:13 -06:00
cc5fb209ab
triggerbox: Triggers may be assigned a color
...
colors can be transmitted to some surfaces (Launchpad et al), so must be store in Trigger::
2021-12-27 18:03:13 -06:00
12dbcd90bf
triggerbox: fix quantized stop via ::unbang()
2021-12-27 16:24:35 -07:00
163fc541d2
triggerbox: alter MIDITrigger::run() to work like its AudioTrigger counterpart
2021-12-27 15:08:20 -07:00
af37a51b65
triggerbox: triggers estimated to be 1 bar long are not one-shots
2021-12-27 15:07:44 -07:00
f9903a7a8b
triggerbox: use custom (threaded) deleter for MIDITriggers just like AudioTriggers
2021-12-27 12:04:39 -07:00
3755c04786
triggerbox: fix some const qualifier usage
2021-12-27 12:04:21 -07:00
8e2b36d43d
triggerbox: NOOP: add explanatory comment
2021-12-27 11:24:21 -07:00
610125b87c
remove call to #ifdef'ed code
2021-12-27 11:24:03 -07:00
75d5d54cb6
triggerbox: position triggerbox after disk reader, before polarity, by default
2021-12-27 11:20:40 -07:00
d82d8dd7d4
NO-OP: fix spelling mistake
2021-12-27 11:20:40 -07:00
18fe2e2c4e
Fix C++11/14 array initialization (clang < 3.7)
...
C++11 array initialization won't call copy constructor, leading to
an error: array initializer must be an initializer list.
Specifically this affects the copy c'tor: line 93: peaks (other.peaks)
A workaround is to use a vector instead of a fixed size array.
This fixes macOS builds.
2021-12-27 16:42:26 +01:00
b2bd748672
ruler: make ::set_metric() API consistent with constructor by using ptr
2021-12-24 15:34:18 -07:00
8c2bd1a555
triggerbox: get thread-based deletion system to actually work
...
Needed to pass custom deleter to the shared_ptr<Trigger>::reset() call where the
trigger is replaced
2021-12-24 15:00:58 -07:00
401411d5c3
triggerbox: initial implementation of thread-based deleter for Triggers
...
Uses a custom deleter for the shared_ptr<Trigger>'s that we create. Will
likely evolve to use an allocator so that we can use make_shared's
cousin allocate_shared().
2021-12-24 14:17:23 -07:00
7afc8f7a31
triggerbox: remove unused local variable
2021-12-24 14:17:23 -07:00
4d15bf9f18
triggerbox: move TriggerReference object into ARDOUR::Triggerbox
...
Also, change box handle to a pointer so that we can have a
default (empty) constructor.
2021-12-24 14:17:23 -07:00
ce71ee010e
triggerbox: fix API/virtual issue with ::start_offset() method
2021-12-24 14:17:23 -07:00
753d1c9754
rulers: change API to accept a pointer instead of a reference to a Metric
...
We need to be able to construct Metrics after the ruler is constructed
in order to deal with Triggers which are potentially short-lived. We
stored the reference as a pointer anyway, so it's not as much of a change
as it appears.
2021-12-24 14:17:23 -07:00
7f3681c7ac
Scale export-analysis dataset
2021-12-24 21:59:03 +01:00
4fa8af3e20
prefer ARDOUR::ui_scale_factor over ARDOUR::ui_scale_factor
2021-12-24 21:58:59 +01:00
50c60c031d
Allow to use UI scaling to libardour
...
This will replace LV2Plugin::_ui_scale_factor,
and be useful for export-analysis.
2021-12-24 21:58:53 +01:00
31159c2f77
NO-OP: clang-format
2021-12-24 19:54:00 +01:00
122d219354
Prepare scaleable analysis (variable width, bins)
2021-12-24 19:54:00 +01:00
31228c8635
triggerbox: clear_all_triggers (libardour part)
2021-12-23 22:35:52 -06:00
7a8775382f
Remove ASCII limit when naming files/regions
2021-12-24 00:31:01 +01:00
00b2b21878
remove debug output
2021-12-23 15:46:31 -07:00
c7896075b5
triggerbox: fix FA probability math so that zero == 100% left
2021-12-23 14:55:57 -07:00
c14e9cd2fb
triggerbox: fix default follow action probability, and the default FA to Again
2021-12-23 14:55:57 -07:00
8bda2ea54d
triggerbox: when calling ::set_state() do not use worker thread
...
This avoids creating a new Trigger with the correct state, and instead
sets the state of the current Trigger. Also change order of ::set_state() so
that the othe Trigger properties are set after the region is set. Setting the
region may set defaults that are no longer correct.
2021-12-23 14:55:57 -07:00
ff89d998b2
triggerbox: steps toward sane trigger stopping API and design
2021-12-22 17:27:26 -07:00
0cfbf346e7
triggerbox: try to detect "oneshot" clips and set clip properties appropriately
2021-12-22 17:27:26 -07:00
bad18350e2
triggerbox: implement set_all_X for triggers (libardour part)
2021-12-22 12:29:40 -06:00
b89d181560
triggerbox: NOOP - change name of set_region_threaded() to set_region_in_worker_thread()
2021-12-22 07:42:52 -07:00
8f44a11329
triggerbox: set name of worker thread
2021-12-22 07:42:27 -07:00
65c7079b51
remove debug output
2021-12-22 07:38:59 -07:00
844bb85d12
triggerbox: somewhat working mechanism for "clear" slot
2021-12-21 22:35:59 -07:00
885f8eb5d1
triggerbox: remove unused method
2021-12-21 18:13:50 -07:00
bd873c6ba1
triggerbox: mostly functional slot swapping system
2021-12-21 17:40:40 -07:00
75699e384f
triggerbox: start of "pending" architecture to allow for thread-safe swapping of slot contents (Triggers)
2021-12-21 17:40:40 -07:00
f69180c8ee
triggerbox: use shared_ptr<Trigger> and also change all 64 bit indices to 32 bit
2021-12-21 17:38:42 -07:00
f3fe31da27
session: fix for creation of new/default tempo map
2021-12-21 17:38:42 -07:00
722a159ac1
Session constructor should create a new tempo map
...
This may be the wrong place to do this. It might be more appropriate in ::set_state(0
so that we either use existing XML state or a default tempo map
2021-12-21 17:38:42 -07:00
9c6c05dfac
triggerbox: audio triggers get a deletion queue (WIP)
2021-12-21 17:38:42 -07:00
4f8be5a6c3
triggerbox: amend previous commit that failed to notice 2 uses of which_follow_action
2021-12-21 17:38:37 -07:00
e112a86af2
triggerbox: fix uninitalized var
2021-12-21 15:32:42 -06:00
2072cc5fd8
Add Config variable for custom sample-libraries
2021-12-20 02:32:12 +01:00
d4145f0cb1
triggerbox: slight rationalization of member order in AudioTrigger
2021-12-18 17:34:06 -07:00
30123a2106
triggerbox: cleanup what is a property and what isn't
2021-12-18 14:11:54 -07:00
9b5e910717
temporal: add additional required string_to/to_string functions for BBT_Offset & BBT_Time
2021-12-18 14:11:25 -07:00
c3a48ff9c9
triggerbox: add explanatory comment about how the triggerbox thread quit msg works
2021-12-18 09:35:10 -07:00
afd8554b43
triggerbox: waking up the triggerbox thread has nothing to do with RT, so remove comment etc.
2021-12-18 09:33:51 -07:00
4d980bee6a
triggerbox: catch file-name-based incorrect types when loading into slots
2021-12-18 09:31:44 -07:00
16dfb410bc
triggerbox: catch failure to load files
2021-12-18 08:29:48 -07:00
8e3e3ea01f
triggerbox: fix load-from-file for MIDI
2021-12-18 08:29:48 -07:00
d28422d420
MIDI import: load MIDI model after writing/copying MIDI to a new file
...
Fixes problem with edits to newly imported MIDI not changing what is played back, because
there was no model to connect the region/playlist to, and thus no notifications about
the changes to the model were sent
2021-12-17 19:24:12 -07:00
2111cfe557
triggerbox: allow set_region_threaded() to "unset" the region
2021-12-17 19:24:12 -07:00
c6e141aaba
triggerbox: avoid float/double warning
2021-12-17 19:24:12 -07:00
9f957f8220
triggerbox: change type of _follow_count property to avoid signed/unsigned warnings
2021-12-17 19:24:12 -07:00
95355f943f
triggerbox: start encapsulating audio trigger data object
...
The goal will be to be able to swap out the data, atomically, when stopped
2021-12-17 19:24:12 -07:00
689c569319
triggerbox: extend debugging info
2021-12-17 19:24:12 -07:00
243ddae928
triggerbox: implement trigger gain as a save-able property (libardour)
2021-12-17 13:09:49 -06:00
dd7f474125
triggerbox: scene-isolate property for triggers (libardour part)
2021-12-17 13:09:49 -06:00
ec04ab3865
Fix Triggerbox mono to stereo playback
2021-12-17 17:50:50 +01:00
6b6ae5dedb
Fix file-extension check
...
If the extension is not found, string::rfind() returns -1,
That can still match unrelated file if the file-name is one
char longer than an arbitrary extension.
eg. "foo" matched ".aiff" because
-1 = strlen("foo") - strlen(".aiff")
Also due to a missing comma ".VOC.vwe" matched any file shorter
than 7 chars in length.
2021-12-16 19:08:03 +01:00
9f7114f761
Add dir names for media-folder
2021-12-16 19:08:03 +01:00
21ed6a2626
add Config variable for trigger enable
2021-12-16 10:39:43 -07:00
f7792cb425
triggerbox: fix typo that caused crash when handling unstretched audio
2021-12-16 10:39:43 -07:00
899c217511
triggerbox: fix passthru handling and default to off
2021-12-16 09:31:12 -07:00
f8432d0647
Triggerbox: these properties will not be stored in Region (reverts 3918ee)
2021-12-16 08:15:29 -06:00
fc0dfd5d38
Wreturn-type, fixes unconfigured processors
2021-12-16 14:47:10 +01:00
8a58155dcf
triggerbox: use Session::import_files() to load from file
...
This uses the SRC infrastructure set up for normal imports, which
is desirable.
2021-12-15 18:19:20 -07:00
02eb39325f
triggerbox: fix channel handling for audio
...
We do not modify the audio I/O of the parent route, and process
at most std::min (route_inputs,region_channels).
2021-12-15 18:19:20 -07:00
382f73fa51
triggerbox: use stretching() internally but change property name to stretchable (libardour)
2021-12-15 18:08:22 -06:00
40c1a7016a
triggerbox: NOOP - add explanatory comment
2021-12-15 15:39:28 -07:00
ca7b418281
triggerbox: NOOP - commented out extra debugging info
2021-12-15 14:58:24 -07:00
1ecdc5c515
triggerbox: try to avoid tempo that results in fractional bar cnts
...
If minibpm's estimate of tempo implies that the clip has a duration measured in
fractional bars, use the estimate as a starting point to get to a tempo that
will lead to an integer number of bars (and quarters)
2021-12-15 14:58:03 -07:00
ed6121d76e
triggerbox: continued work on Repeat trigger mode
2021-12-15 12:26:46 -07:00
2688c02e0e
triggerbox: do not use follow action if Trigger::_use_follow is not set
2021-12-15 11:19:36 -07:00
347a17cdb2
triggerbox: telling a Toggle/Gate/Repeat launch mode slots to not use a follow action when stopped
2021-12-15 11:03:53 -07:00
ab03e09a79
triggerbox: publish the loop_cnt for the gui
2021-12-15 11:43:48 -06:00
71f7f7a09b
triggerbox: add stretching property, virtualize computation of expected end sample, maybe fix position_as_fraction()
2021-12-15 10:21:28 -07:00
97eb164b91
triggerbox: clean up part of the state machine for audio triggers
2021-12-14 21:59:33 -07:00
12847b0125
remove Session::bbt_time() and use TempoMap::use()->bbt_at() explicitly everywhere
2021-12-14 21:59:33 -07:00
3335757276
triggerbox: add Properties for velocity and probability
2021-12-14 13:11:08 -06:00
977f6aec94
Triggerbox: save and recall the follow_count property (lib part)
2021-12-14 10:40:37 -06:00
58796e6b19
fix likely crash in faderport8 support, from calling TempoMap::use() and not TempoMap::fetch()
2021-12-13 21:07:18 -07:00
Marijn Kruisselbrink
0e799357a8
Fix crash in mackie strip code.
...
Strip::notify_property_changed accesses _stripable without verifying
that is not null. However it is possible for this to be null, so
add a null check.
2021-12-13 21:03:38 -07:00
d04d25e7c7
Mackie Control: Clean up detection of QCon master display and meter.
...
Only enable the master display and meter modes for Qcon devices if this
surface is in the master position. Extenders don't have master meters
or master displays.
2021-12-13 21:26:45 -06:00
d60a5187bd
Mackie Control: Fix detection of QCon Extenders so 2nd LCD is correct
...
Logic to detect an extender has to be based on if this surface object is
the master position. Has master fader is true for all surfaces in this
"device".
2021-12-13 21:25:07 -06:00
5f810843bb
triggerbox: only require a MIDI output if the data type is MIDI
...
This was a thinko that occured when I added the sidechain for audio tracks to handle
trigger input
2021-12-13 16:50:31 -07:00
0fcc873ec5
correctly hide/show/position triggerbox in route processors
2021-12-13 16:24:13 -07:00
2a9ab18f7b
triggerbox: not visible by default in processor box
2021-12-13 15:27:58 -07:00
087bdaa87b
triggerbox: remove static signal added in dd842fdc5c
...
Bad design idea. Signal would be emitted from the triggerbox thread, and cannot
return a value from the GUI. Would also be problematic for clip loading
initiated from a control surface
2021-12-13 15:12:36 -07:00
dd842fdc5c
triggerbox: add static signal to let the GUI do something when we cannot determine tempo
2021-12-13 09:20:32 -07:00
e7569eabe7
Trigger Cues: implement master Stop button (libardour part)
2021-12-13 07:26:47 -06:00
9d4a1f080d
triggers: return a segment descriptor
2021-12-12 11:20:58 -07:00
483bdd99cc
libardour: new SegmentDescriptor type added (but not used)
2021-12-12 10:55:05 -07:00
96e1735646
triggerbox: add heuristic to extract bpm from filename
...
If found, we do not do analysis of the audio data
2021-12-11 21:05:32 -07:00
3753d97599
Add Lua binding for Temporal::TempoMap::write_copy
2021-12-11 18:30:29 +01:00
ce15b6ed66
Cont'd work on TempoMap Lua bindings
2021-12-11 17:43:12 +01:00
3b18b025e3
Fix Lua TempoMap bindings
...
* Resolve ambiguity between typef'ed ARDOUR::timepos_t and
Temporal::timepos_t (and timecnt_t, superclock_t)
* Add missing classes TempoPoint, MeterPoint, which are
return value for various TempoMap methods.
* Change TempoMap into a shared_ptr<> class.
* Move Tempo and Meter out of ARDOUR into Temporal namespace.
* add various bindings to access the TempoMap
* move Temporal enums out of ARDOUR::Temporal namespace
2021-12-11 16:49:28 +01:00
60be0c27a1
Use updated temporal API 1/2
2021-12-11 14:42:36 +01:00
506bc3a6f6
Disambiguate zero(bool)
constructor and is_zero()
comparison
...
This is mainly for the benefit of Lua bindings, but also increases
overall API naming consistency with functions and methods
`is_XYZ()` being used elsewhere.
This API change breaks builds!
2021-12-11 14:33:45 +01:00
6f91dc0799
canvas: fix an issue with event coordinate translation by ScrollGroup
...
If there's a grabbed item (GtkCanvas only at present) then unless it belongs to the scroll
group used for scroll offset translation, the event coordinates should not be translated,
even if the mouse pointer moves into the scroll group.
2021-12-10 18:17:58 -07:00
08e50934c9
canvas: add scroll offset info to Item::dump()
2021-12-10 17:16:10 -07:00
972229a02f
Remove some spurious printouts
2021-12-08 13:39:38 -06:00
3918ee2ed6
Add New Region variables for Clips
...
Properties are created for announcing changes, but values are not actually stored as undo-able properties.
2021-12-08 12:57:48 -06:00
dc826c6521
ArdourCanvas Rectangle: allow subclasses access to _rect
2021-12-07 16:32:49 -06:00
0ee628d170
Add preference to show fader on meter-bridge
2021-12-07 17:56:35 +01:00
7b8be04623
triggerbox: fix mis-designed handling of dest_offset when a trigger starts within the same run() call as another
2021-12-06 14:06:48 -07:00
bc7e14c8ac
remove misleading content from a comment
2021-12-06 14:05:59 -07:00
0a0ca81e11
triggerbox: add missing property defn
2021-12-06 10:36:57 -07:00
ef9cca2c07
triggerbox: add missing property defn
2021-12-06 10:27:59 -07:00
a14bcc455b
triggerbox: more properties for Triggers
2021-12-06 09:26:18 -07:00
4918e4bcb9
triggerbox: change return type for Triggerbox::currently_playing(); add position-as-fraction to Triggerbox
2021-12-06 09:06:46 -07:00
9a89dd8981
triggerbox: add TriggerBox currently_playing property, and rename ::currently_running() to ::currently_playing
2021-12-06 08:57:06 -07:00
86f239f185
triggerbox: add 3 additional property descriptors for Triggers
2021-12-06 08:47:29 -07:00
96b21c4824
fix crash in Playlist::relayer() when there are no regions
2021-12-05 10:36:26 -07:00