Robin Gareus
2e0a069c51
WebSockets: use v7 tempo-map correctly
2021-10-12 15:32:41 +02:00
Paul Davis
7b14c5666a
triggerbox: handle active processor state correctly
2021-10-11 17:57:10 -06:00
Paul Davis
24a09e381a
triggerbox: don't fail/crash/assert if set_from_path() is called on an illegal slot
2021-10-11 17:56:56 -06:00
Paul Davis
43993da7b4
triggerbox: if bpm detection fails, don't try to stretch
2021-10-11 17:56:31 -06:00
Paul Davis
9e763c2672
remove all dangling event-loop-precall code
2021-10-11 17:48:53 -06:00
Paul Davis
9adc336d50
control surfaces: fix BasicUI::jump_by_bars() to use tempo map correctly
2021-10-11 17:48:53 -06:00
Paul Davis
b97c5f94c6
triggerbox: do nothing if disabled
2021-10-11 17:48:53 -06:00
Robin Gareus
a2a36de98f
Fix minor memory leak when querying Windows registry
2021-10-11 18:20:07 +02:00
Paul Davis
cf392f73fc
triggerbox: improve MIDI sidechain port naming
2021-10-10 17:35:15 -06:00
Paul Davis
187ef1c214
triggerbox: better implementation of mono/stereo/nchannels mapping fix
2021-10-10 13:53:24 -06:00
Paul Davis
c2004772c4
triggerbox: map available channels across all output channels
...
This means that mono regions get played in stereo (or higher)
2021-10-10 13:10:20 -06:00
Paul Davis
55209b5df7
triggerbox: respond to changes in default trigger input port
2021-10-09 16:58:58 -06:00
Paul Davis
52decdd1b4
push2: prevent crash caused by missing per-thread tempo map ptr
2021-10-09 11:47:13 -06:00
Paul Davis
3475350d7c
push2: session button should be lit
2021-10-09 11:46:53 -06:00
Paul Davis
4031a03588
triggerbox: start some attempts at complexifying MIDI note -> trigger mapping
2021-10-08 20:35:25 -06:00
Paul Davis
9792901376
add new rc config var to identify the default trigger input port
2021-10-08 14:40:44 -06:00
Paul Davis
6326222a48
triggerbox: change APIs so that we can add a triggerbox to either type of track
2021-10-08 13:45:27 -06:00
Paul Davis
7e35714886
triggerbox: change default MIDI note triggers to match first vertical row of Push 2
2021-10-08 13:45:26 -06:00
Robin Gareus
13168bb5b2
Disambiguate error message
2021-10-08 04:13:06 +02:00
Robin Gareus
8e5af55ae5
Prevent identical port-names when renaming tracks
...
Audio ports are sorted using PBD::naturally_less.
PBD::naturally_less is also used as compare function
for port-lists, port-sets, and port-maps.
So in sets and maps, the function is used to test
for uniqueness. This lead to issues since naturally_less
treats whitespace and underscores as identical.
While it was possible to have routes named "Audio_1",
and "Audio 1", this resulted in missing ports for one
of the routes.
see also 60ff3ef764
2021-10-08 04:12:55 +02:00
Robin Gareus
ba2a2cb654
Implement natural-sort spaceship operator
2021-10-08 04:12:32 +02:00
Paul Davis
97f323137c
triggerbox: initial (incorrect) attempt at handling tempo map changes
2021-10-07 08:03:46 -06:00
Paul Davis
7e2dd8a718
triggerbox: add follow count support
2021-10-07 07:48:07 -06:00
Robin Gareus
1c1f48fd98
VST: Remove accidentally added factory reference
2021-10-07 01:46:44 +02:00
Robin Gareus
789949ed8e
VST3: properly take references, ignore controll == component cases
...
This is mainly motivated by DPF's new VST3 implementation, but
also takes a leaf out of JUCE's book, unconditionally initializing
the VST::IEditController even if it is-a VST::IComponent.
and likewise calling terminate().
2021-10-07 01:08:27 +02:00
Paul Davis
d4d4298320
triggerbox: add Chris Cannam's minibpm and use to determine tempo and thus stretch
2021-10-06 15:21:44 -06:00
Paul Davis
1c4e1d01a7
triggerbox: an attempt at parameterizing the expected trigger duration
2021-10-06 15:21:44 -06:00
Paul Davis
0199a4e561
triggerbox: basic stretch test using assumption that slot holds s 4 bar region
2021-10-06 15:21:44 -06:00
Robin Gareus
bbbfadb832
VST3: initialize controller even if it is-a component
2021-10-06 21:35:08 +02:00
Robin Gareus
cc084ef0a7
Fix setting custom path to the video monitor on macOS
2021-10-06 05:06:39 +02:00
Paul Davis
89c17dfe7d
remove debug output
2021-10-05 14:00:34 -06:00
Paul Davis
dadf530243
temporal: change loading of session format 3x tempo maps
...
We were attempting to add the initial tempo and meter twice, which was unwise
2021-10-05 13:57:10 -06:00
Paul Davis
0acc1a3fec
temporal: use correct implementation of timepos_t::operator+ (timecnt_t) (and +=)
...
If time domains differ, it is necessary to first convert the argument duration into a duration
at the position of "this", in the correct time domain. Then we recursively call the operator
again, but this time we will use the fast path that just adds two timepos_t values.
2021-10-04 17:45:02 -06:00
Robin Gareus
5925ee0b7c
Prevent processing until buffersize change is complete
...
This fixes async callback from CoreAudio via
AudioDeviceAddPropertyListener. Apparently in rare cases it can
happen that the property listener calls back concurrently with
processing on M1 machines using Rosetta.
https://pastebin.com/upvc9LTc Thread 44 vs. Thread 32
May also be caused by plugin(s) taking a long time to
change buffersize. Processing continues even though the
buffersize callback has not yet completed.
PS. I have not been able to reproduce this on an Intel
machine, even with excessive buffersize changes. However
since buffersize changes cannot (usually) happen concurrently
with processing, taking the lock is reasonable.
2021-10-04 22:30:08 +02:00
Robin Gareus
e2efb698e0
VST3: fix discrete parameters
...
Some plugins have a min/max range of 1, for stepwise enumerated
values of a control. e.g. waves maps note-names this way.
https://discourse.ardour.org/t/106429/
2021-10-04 17:07:53 +02:00
Robin Gareus
877f56e575
Add Lua binding for ParameterDescriptor::rangesteps
2021-10-04 17:07:53 +02:00
Paul Davis
5caed9b0a6
trigger: add method to get position while playing as a fraction
2021-10-03 22:44:03 -06:00
Paul Davis
a1699ff612
canvas: size_allocate() from GTK gives origin in parent coordinates.
...
Convert to canvas-relative origin when passing to root group for allocation
2021-10-03 19:47:18 -06:00
Paul Davis
e670acbb0d
canvastable: fix logic error in ::compute_bounding_box()
...
Since the bbox is determined by ::compute(), do not unconditionally clear it here
2021-10-03 16:46:25 -06:00
Paul Davis
747a49006c
canvastable: finish comment
2021-10-02 17:45:43 -06:00
Paul Davis
a8cc0be45c
canvastable: change some variable names; don't add per-col/row spacing twice
2021-10-02 17:09:01 -06:00
Paul Davis
df5699b03e
canvastable: fix comment to reflect split row/col homogeneity
2021-10-02 16:24:04 -06:00
Paul Davis
8130d265fd
canvas table: separate out row & col homogeneity
2021-10-02 16:19:49 -06:00
Paul Davis
590866f8c1
canvas table; move computation of bounding box
2021-10-02 16:19:49 -06:00
Paul Davis
88443586ef
canvas table: clean up attach API; improve comments; move use of padding.right outside loop
2021-10-02 16:19:49 -06:00
Paul Davis
c550a400b1
triggerbox: more properties
2021-10-01 18:39:06 -06:00
Paul Davis
cc09576ef5
canvas table: dramatic fixes/extensions of table packing algorithm
2021-10-01 18:38:18 -06:00
Paul Davis
e265b27f5d
triggerbox: add quantization property and notify on changes
2021-09-29 18:00:55 -06:00
Paul Davis
0e779fbec9
canvastable: if a cell is empty, still adjust horiz/vert coordinates so subsequent cells are aligned
2021-09-29 11:20:50 -06:00
Paul Davis
378e4e7a03
canvastable: fix typo that led to mis-sized table (row/col mixup)
2021-09-29 11:20:50 -06:00