Commit graph

26845 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
d9fcab88f0 Fix key-forwarding to linuxVST UIs
Tested with VeeSeeVST
2018-11-01 01:27:30 +01:00
Robin Gareus
a79fe23935 Allow to limit strip-inline controls (GUI optimization) 2018-10-31 23:44:04 +01:00
Robin Gareus
63a4cc9cf6 Preference Dropdown to limit Automatable Parameters 2018-10-31 23:44:04 +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
Robin Gareus
352c824fa3 NO-OP: whitespace 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
5b2eb6107c New Route dialog: add fallback default selection
This fixes an issue with Mixbus. If the default "Create Audio Tracks.."
template/script is not available. Nothing is selected.

Selecting a type/template is required to update various other dialog
fields. eg. "Name" field.

Previously: Create VCA. OK+Close. Re-open dialog. Now the
implicit default was "Audio Track" but the Name-field still showed "VCA".
2018-10-30 16:09:22 +01: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
7d8b93add1 Consolidate PinDialog Session/recording checks
- _session cannot be NULL while the dialog is visible.
  This removes extra `if (_session)` tests.
- Operations now no longer fail silently, but show error messages.
2018-10-29 21:50:08 +01:00
Johannes Mueller
6c19a776f4 Set session of PluginPinWidget created after ::set_session()
PluginPinWidgets initially receive their Session pointer by
PluginPinDialog::set_session(). When a RouteProcessorChange occurs all
PluginPinWidgets are recreated. Those newly created instances need a pointer to
the session.
2018-10-29 18:31:15 +01:00
Robin Gareus
20fb871d5a Processor-box control context menu update 2018-10-28 21:03:43 +01:00
Robin Gareus
ebcabf59da Don't show hidden controls inline in the mixer-strip 2018-10-28 20:37:20 +01:00
Robin Gareus
b30ab9802a Only allow LV2 touch events for control inputs
This fixes a crash when a plugin sends a touch events for non-control ports.
2018-10-28 20:34:21 +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
5c08a6a85d Wimplicit-fallthrough fixes for tools/utils 2018-10-26 14:53:53 +02:00
Robin Gareus
4f86da8544 Wimplicit-fallthrough fixes for gtk-ardour 2018-10-26 14:53:49 +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
b68b4d10a2 Plugin analysis numerics
Show vertical marker-line (freq) and precise numeric data of the
transfer function (dB, deg).
2018-10-25 04:25:15 +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
bfc35e514b Example convolution plugin (Lua script, hardcoded IR) 2018-10-20 00:24:38 +02: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