Commit graph

14257 commits

Author SHA1 Message Date
Robin Gareus
694c5fcfa6 Skip VST version check to detect MIDI inputs
Some plugins return 0 from effGetVstVersion and are hence not detected
as instruments. e.g. VeeSeeVSTRack (VCV). This may also explain why MIDI
port of some other VSTs are not exposed.

Most VST2.4 return 2400, so checking  [effGetVstVersion] >=2 (and not 2000)
was incorrect to begin with.
2018-11-01 15:27:08 +01:00
Robin Gareus
fd832d9d1a Add option to limit automatable control parmaters
VCVRack VST currently exposes 9999 automatable-control parmaters.
This slows down various GUI dropdown lists and dialogs.
(even worse: those parameters are not mapped to anything by default).

This change allows to limit automatable parameters to a reasonable number,
without loosing state of already automated parameters in existing sessions.
2018-10-31 23:44:04 +01:00
Robin Gareus
befa339d4b Remove duplicate call
Automatable::add_control() already does insert a given parameter
to the _can_automate_list list if it's automatable.
2018-10-31 23:44:04 +01:00
Len Ovens
f7b67501a9 OSC: Allow non-cue surfaces to create personal send and ListenBus 2018-10-30 12:15:28 -07:00
Len Ovens
be5a89aa22 Add ListenBus to stripable types 2018-10-30 12:15:28 -07:00
Robin Gareus
5bd9bf868f Safe-guard non-rt-safe sidechain operations
This is required by 7d8b93ad for showing error when actively recording.
It also prevents other UIs (OSC, Lua,..) to change re-configuring
sidechain ports/plugins while recording.
2018-10-29 21:52:47 +01:00
Robin Gareus
383bd2526c Fix incorrect VST callback fall-though (effective NOOP) 2018-10-27 10:33:58 +02:00
Robin Gareus
c1e68c91b5 Fix another compiler warning 2018-10-27 10:33:07 +02:00
Robin Gareus
c98fc1099d Fix some Wimplicit-fallthrough
A "fall through" comment is most portable way to indicate
"no break, fallthru" cases.

 * __attribute__ ((fallthrough))  // is not portable
 * [[fallthrough]]; // is C++17
2018-10-26 14:53:44 +02:00
Robin Gareus
08d205c533 Fix some compiler warnings (exception catches) 2018-10-26 14:25:55 +02:00
Robin Gareus
7c3fd2fe79 Glib throws a const FileError exception 2018-10-26 13:40:03 +02:00
Robin Gareus
770a1a8a36 Fix Lua bindings (music-time, mapping) 2018-10-26 13:38:28 +02:00
Robin Gareus
5599cdb911 Fix race-condition/deadlock, plugin-copy while rolling
lili93's session (#ardour) triggered this w/jackd 512fpp:
Drag/Drop copy a latent plugin from one track to another while rolling.
The GUI-thread as well as the auto-connect thread concurrently call
jack_recompute_total_latencies(). The auto-connect thread holds
a process lock while doing so. The GUI does not use any mutexes.
This randomly deadlocks in libjack.

backtrace: https://pastebin.com/6m3KGhWS
2018-10-25 02:00:08 +02:00
Robin Gareus
d53f49acf4 Fix typo in binding, amend 9bbbc7fbe 2018-10-24 00:16:05 +02:00
John Emmas
c1626bee39 Add some missing link libs to MSVC zita-convolver 2018-10-23 09:55:31 +01:00
Robin Gareus
4e4c6e7d1e Fix an edge-case in Dummy backend's random generator
INT_MAX == 2^31 is not a valid random seed for this LCG.
2018-10-22 15:46:59 +02:00
Robin Gareus
4e1464e70f Sort VST factory presets
This is more of a workaround than a fix. Simply by forcing the
URI to be sortable (VST-user presets are sorted at the end).


This eventually needs a deeper cleanup and API consolidation

PluginInfo::get_presets(bool) returns an ordered std::vector.
However this API is only used in a few cases where the plugin is
not instantiated. PluginInfo::get_presets(bool).

The problem is Plugin::get_presets(). The method returns
information that was previously cached by Plugin::find_presets() in
std::map<URI, ...>
2018-10-22 15:46:59 +02:00
John Emmas
947f6c78b2 Remaining changes needed to build zita-convolver with MSVC 2018-10-22 08:56:22 +01:00
John Emmas
16927d747f Add MSVC support for building the 'zita-convolver' library (which is now needed by libardour) 2018-10-22 08:53:20 +01:00
John Emmas
5003bef0e3 Accommodate newly introduced source(s) in our MSVC project (fluidsynth) 2018-10-22 08:46:59 +01:00
Robin Gareus
504ba49c6d Potential fix for lost VST MIDI events
Ardour's VST MIDI buffer API does not yet implement offsets and limits.
When a cycle is split, the same midi-buffer is used for all sub-divisions
leading to duplicate, offset, events.
2018-10-21 20:48:11 +02:00
Robin Gareus
1229d50e45 MSVC compatibility for zita-convolver 2018-10-21 17:02:14 +02:00
Christopher Arndt
47d341434e Avoid use of 'std::to_string
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2018-10-21 01:08:09 +02:00
Christopher Arndt
8e25b4d193 Add plugin version and parameter count to VST user presets
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2018-10-21 01:08:09 +02:00
Len Ovens
83a0b1e3a8 Personal monitor now saves and restores 2018-10-19 16:59:44 -07:00
Robin Gareus
4c02780262 Lua bindings for convolution DSP 2018-10-20 00:24:38 +02:00
Robin Gareus
087b8d7f33 Implement basic libardour convolution DSP 2018-10-20 00:24:38 +02:00
Robin Gareus
fec787c8f4 zita-convolver windows/mingw build fix
- semaphore is available,
- pthread_t is not a pointer type (but here it's not used anyway)
2018-10-20 00:24:38 +02:00
Robin Gareus
8e78827deb NO-OP: clang-format whitespace 2018-10-20 00:24:38 +02:00
Robin Gareus
876e780e4d zita-convolver: add namespace & visibility, remove global externs 2018-10-20 00:24:38 +02:00
Robin Gareus
e554d1fad5 Add upstream libzita-convolver 4.0.3 2018-10-20 00:24:38 +02:00
Robin Gareus
c6955d4994 Allow Lua DSP processors to report latency 2018-10-20 00:24:38 +02:00
Len Ovens
777fe3c68f Add personal monitor sends 2018-10-19 08:51:29 -07:00
Robin Gareus
070f370e40 Fix copy/edit in e047b01aa2 2018-10-18 15:07:45 +02:00
Robin Gareus
897258f5f1 Fix scalar initialization of shared_ptr<>. 2018-10-18 04:15:47 +02:00
Robin Gareus
2de7ee24a8 Fluidsynth 2.0 uses anonymous unions (added in c11, or gnu99) 2018-10-18 04:09:25 +02:00
Andreas Müller
5b03c41f6c Follow fluidsynth's API changes introduced with 2.0.0
Updated patch from Andreas Müller <schnitzeltony@gmail.com>
2018-10-18 01:43:43 +02:00
Robin Gareus
abf7905d5f Update Fluidsynth to 2.0.1 2018-10-18 01:43:43 +02:00
Len Ovens
5b280463ce Noop: fix white space 2018-10-17 16:25:49 -07:00
Len Ovens
5e21b6633d Option to hide send if aux is hidden 2018-10-17 15:59:00 -07:00
Andreas Müller
d2aa57af3b Prevent excessive meter redraws for inactive meters at zero II
Same as be826f3635

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-10-17 22:35:29 +02:00
Paul Davis
0e55f33f38 correct comment 2018-10-17 14:13:52 -04:00
Paul Davis
e047b01aa2 add new API for retrieving port flags from backend 2018-10-17 14:11:37 -04:00
Paul Davis
70c0e34c4d when calling Session::engine_halted() after a user-driven engine stop, make sure Engine::running() will be false 2018-10-17 13:15:52 -04:00
Jan Lentfer
05d3539591 LCXL: complete overhaul and Mixbus support 2018-10-17 15:14:59 +02:00
Térence Clastres
a33a5cdeaf LCXL: Assign one callback function per Knob/Fader 2018-10-17 15:14:59 +02:00
Len Ovens
1b7cb8aec4 OSC: personal monitor can hide the aux bus 2018-10-16 13:56:52 -07:00
Len Ovens
87ab15c862 OSC: personal monitor send hidden follows aux hidden 2018-10-16 13:56:52 -07:00
Len Ovens
8160fd1348 OSC: personal monitor should only send signal present on change 2018-10-16 13:56:52 -07:00
Paul Davis
5e27b6de2f indentation fix 2018-10-15 16:38:21 -04:00