13
0
Commit Graph

26853 Commits

Author SHA1 Message Date
Johannes Mueller
fe318c0cd5 Create sidechain ports when created from template (#0007680)
When a route with a sidechain is created from a template or by route
duplication the number of ports of the sidechain are set according to the
XMLNode defining the sidechain. Then the names are set according to the name of
the newly created route.

Thus all the pin connections defined in the template are replicated in the
newly created route.
2018-11-01 22:17:01 +01:00
287ce3d477 Allow ListenBus to be added by GUI 2018-11-01 13:13:48 -07:00
3b1d9193ba Prefer key-event dispatch over emulated events for VST plugins. 2018-11-01 20:09:20 +01:00
197f5460df Add API to dispatch keyboard events to VST Plugins 2018-11-01 20:09:20 +01:00
abdc0da6e3 Correct new track/bus/VCA dialog text 2018-11-01 11:31:46 -07:00
Johannes Mueller
cc83e1a9bf Consider size of port matrix column labels for size of row labels
The column labels are drawn in an angle towards the edge where the row labels
are. Therefore, if the column labels are much longer than the row labels it can
happen that they go beyond the left edge. In that case we have to add an extra
width to the row labels.
2018-11-01 18:53:27 +01:00
Johannes Mueller
732fd75f9b Update names of sidechains.
When a PluginInsert is created it does not have an owner right away. That's why
a we need to set the sidechains name once the owner is known, in order to
include owner's name into the name.

Furthermore we need to follow renames of the owner.
2018-11-01 18:53:27 +01:00
Johannes Mueller
9a01ef35e7 Put the sidechain ports into a dedicated tab in PortMatrix 2018-11-01 18:52:51 +01:00
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
d9fcab88f0 Fix key-forwarding to linuxVST UIs
Tested with VeeSeeVST
2018-11-01 01:27:30 +01:00
a79fe23935 Allow to limit strip-inline controls (GUI optimization) 2018-10-31 23:44:04 +01:00
63a4cc9cf6 Preference Dropdown to limit Automatable Parameters 2018-10-31 23:44:04 +01:00
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
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
352c824fa3 NO-OP: whitespace 2018-10-31 23:44:04 +01:00
f7b67501a9 OSC: Allow non-cue surfaces to create personal send and ListenBus 2018-10-30 12:15:28 -07:00
be5a89aa22 Add ListenBus to stripable types 2018-10-30 12:15:28 -07:00
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
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
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
20fb871d5a Processor-box control context menu update 2018-10-28 21:03:43 +01:00
ebcabf59da Don't show hidden controls inline in the mixer-strip 2018-10-28 20:37:20 +01:00
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
383bd2526c Fix incorrect VST callback fall-though (effective NOOP) 2018-10-27 10:33:58 +02:00
c1e68c91b5 Fix another compiler warning 2018-10-27 10:33:07 +02:00
5c08a6a85d Wimplicit-fallthrough fixes for tools/utils 2018-10-26 14:53:53 +02:00
4f86da8544 Wimplicit-fallthrough fixes for gtk-ardour 2018-10-26 14:53:49 +02:00
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
08d205c533 Fix some compiler warnings (exception catches) 2018-10-26 14:25:55 +02:00
7c3fd2fe79 Glib throws a const FileError exception 2018-10-26 13:40:03 +02:00
770a1a8a36 Fix Lua bindings (music-time, mapping) 2018-10-26 13:38:28 +02:00
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
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
d53f49acf4 Fix typo in binding, amend 9bbbc7fbe 2018-10-24 00:16:05 +02:00
c1626bee39 Add some missing link libs to MSVC zita-convolver 2018-10-23 09:55:31 +01:00
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
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
947f6c78b2 Remaining changes needed to build zita-convolver with MSVC 2018-10-22 08:56:22 +01:00
16927d747f Add MSVC support for building the 'zita-convolver' library (which is now needed by libardour) 2018-10-22 08:53:20 +01:00
5003bef0e3 Accommodate newly introduced source(s) in our MSVC project (fluidsynth) 2018-10-22 08:46:59 +01:00
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
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
83a0b1e3a8 Personal monitor now saves and restores 2018-10-19 16:59:44 -07:00
bfc35e514b Example convolution plugin (Lua script, hardcoded IR) 2018-10-20 00:24:38 +02:00
4c02780262 Lua bindings for convolution DSP 2018-10-20 00:24:38 +02:00
087b8d7f33 Implement basic libardour convolution DSP 2018-10-20 00:24:38 +02:00
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