13
0
Commit Graph

18211 Commits

Author SHA1 Message Date
9f55e7f5d3 triggerbox: add scalable MIDI velocity effect for gain control of triggers 2021-10-19 12:52:32 -06:00
2d3371c049 triggerbox: fix ::set_state() to pick Processor state too 2021-10-19 12:07:52 -06:00
211b3ea668 canvas text: generalize ::font_size_for_height() to handle different font families 2021-10-19 10:54:27 -06:00
1d1cc04b32 triggerbox: add Trigger -> TriggerBox accessor 2021-10-17 17:57:43 -06:00
ab22733fe4 canvas: continuously variable Canvas::Text height if packed inside a layout-sensitive container 2021-10-17 17:56:27 -06:00
d6e4e0fb35
Remove false-positive VST log message
Ardour prevents repeat crashes by first marking a plugin
as blacklisted, and after a successful scan the plugin is
whitelisted.

When not scanning for plugins, but reading the cache
and successfully parsing the cashed content, a VST2 plugin
is whitelisted, even though it may not have been blacklisted.

In case the blacklist is empty, this lead to a logging:
"Expected VST Blacklist file does not exist."

PS. This also consolidates VST2 + VST3 code for white/blacklist
2021-10-16 20:33:22 +02:00
bc61ff74ad triggerbox: fix quantization involving bars
The code for this feels potentially expensive. Maybe there's a better way.
2021-10-14 21:08:34 -06:00
7b2559fe07 triggerbox: fix behavior when bang()-ing a trigger while another is playing
This should queue up the bang-ed one and get the currently playing one to stop
2021-10-14 21:08:19 -06:00
480907d613 add sstream header file, since the header file requires the defn 2021-10-14 13:12:31 -06:00
bb87ba49d9 remove unnecessary boost header (we have our own ratio_t) 2021-10-14 13:12:31 -06:00
c831c26c4d triggerbox: make legato mode be off by default 2021-10-14 13:12:31 -06:00
27572a2bce fix problem with SrcFileSource
::length() was non-virtual, and so calling SrcFileSource::length() would access
the base class (AudioFileSource)'s version. Since SrcFileSource is essentially
a pimpl-like pattern, this was incorrect; we need to make sure we call the
pimpl-style method instead.
2021-10-14 13:12:31 -06:00
2066b6b33a
websockets: require Windows7 (with pollfd) 2021-10-13 21:40:39 +02:00
bedf09fbdb triggerbox: add new property called "order" and use it to decide whether to respond to a given MIDI note/pad (Push 2-centric for now) 2021-10-13 09:07:15 -06:00
2e0a069c51
WebSockets: use v7 tempo-map correctly 2021-10-12 15:32:41 +02:00
7b14c5666a triggerbox: handle active processor state correctly 2021-10-11 17:57:10 -06:00
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
43993da7b4 triggerbox: if bpm detection fails, don't try to stretch 2021-10-11 17:56:31 -06:00
9e763c2672 remove all dangling event-loop-precall code 2021-10-11 17:48:53 -06:00
9adc336d50 control surfaces: fix BasicUI::jump_by_bars() to use tempo map correctly 2021-10-11 17:48:53 -06:00
b97c5f94c6 triggerbox: do nothing if disabled 2021-10-11 17:48:53 -06:00
a2a36de98f
Fix minor memory leak when querying Windows registry 2021-10-11 18:20:07 +02:00
cf392f73fc triggerbox: improve MIDI sidechain port naming 2021-10-10 17:35:15 -06:00
187ef1c214 triggerbox: better implementation of mono/stereo/nchannels mapping fix 2021-10-10 13:53:24 -06:00
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
55209b5df7 triggerbox: respond to changes in default trigger input port 2021-10-09 16:58:58 -06:00
52decdd1b4 push2: prevent crash caused by missing per-thread tempo map ptr 2021-10-09 11:47:13 -06:00
3475350d7c push2: session button should be lit 2021-10-09 11:46:53 -06:00
4031a03588 triggerbox: start some attempts at complexifying MIDI note -> trigger mapping 2021-10-08 20:35:25 -06:00
9792901376 add new rc config var to identify the default trigger input port 2021-10-08 14:40:44 -06:00
6326222a48 triggerbox: change APIs so that we can add a triggerbox to either type of track 2021-10-08 13:45:27 -06:00
7e35714886 triggerbox: change default MIDI note triggers to match first vertical row of Push 2 2021-10-08 13:45:26 -06:00
13168bb5b2
Disambiguate error message 2021-10-08 04:13:06 +02:00
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
ba2a2cb654
Implement natural-sort spaceship operator 2021-10-08 04:12:32 +02:00
97f323137c triggerbox: initial (incorrect) attempt at handling tempo map changes 2021-10-07 08:03:46 -06:00
7e2dd8a718 triggerbox: add follow count support 2021-10-07 07:48:07 -06:00
1c1f48fd98
VST: Remove accidentally added factory reference 2021-10-07 01:46:44 +02:00
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
d4d4298320 triggerbox: add Chris Cannam's minibpm and use to determine tempo and thus stretch 2021-10-06 15:21:44 -06:00
1c4e1d01a7 triggerbox: an attempt at parameterizing the expected trigger duration 2021-10-06 15:21:44 -06:00
0199a4e561 triggerbox: basic stretch test using assumption that slot holds s 4 bar region 2021-10-06 15:21:44 -06:00
bbbfadb832
VST3: initialize controller even if it is-a component 2021-10-06 21:35:08 +02:00
cc084ef0a7
Fix setting custom path to the video monitor on macOS 2021-10-06 05:06:39 +02:00
89c17dfe7d remove debug output 2021-10-05 14:00:34 -06:00
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
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
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
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
877f56e575
Add Lua binding for ParameterDescriptor::rangesteps 2021-10-04 17:07:53 +02:00