Commit Graph

16680 Commits

Author SHA1 Message Date
Robin Gareus
d8ee0fbf33 Tweak fluidsynth performance on ARM CPUs 2020-12-12 22:03:05 +01:00
Robin Gareus
5e76d63c06 Resolve some Xcode12 C++11, sigc++ issues 2020-12-12 04:46:22 +01:00
Robin Gareus
1db219b3d8 Fix compilation with mingw/gcc-8 2020-12-10 20:21:29 +01:00
Robin Gareus
4ef6ba0039 VST3: allow filename mismatch inside the bundle
This amends 5950df2b74. The VST3 SDK does not recursively search
directories that are bundles IFF the file inside the bundle's
architecture folder matches the bundle's name.

In case there's a file with a different name resides inside the
bundle it is treated as standalone, unbundled plugin.

Since Ardour, PBD::Searchpath always does a recursive search, the
bundled plugins need to be weeded after the fact.

This now follows the VST3 SDK by not just checking the arch name,
but also Contents and bundle.vst3 parent dirnames.
2020-12-09 17:36:14 +01:00
Robin Gareus
fc4b2441dd VST2: relax MIDI port detection
Apparently the official spec suggests singular for canDo
"receiveVstMidiEvent", "sendVstMidiEvent" requests.
However with "receiveVstEvents", "sendVstEvents" the plural form
is used. confusion ensued.


might fix:
https://discourse.ardour.org/t/no-midi-input-for-plugin-which-support-it-littlealterboy-vst/105126
2020-12-08 17:07:50 +01:00
Robin Gareus
062aeb0262 Bail out if export cannot be started 2020-12-08 01:10:00 +01:00
Robin Gareus
f8b5424d9f Fix deadlock during export
When using the export-tool, the very first callback may already be
freewheeling. In this case the first call to the butler also happens
directly from the freewheel process-callback and initial session events
are handled there. Setting PostTransportAdjustPlaybackBuffering
took the process-lock, which caused a deadlock:


Glib::Threads::Mutex::Lock::Lock(Glib::Threads::Mutex&) at /usr/include/glibmm-2.4/glibmm/threads.h:687
ARDOUR::Session::butler_transport_work() at ../libs/ardour/session_transport.cc:1157
ARDOUR::Session::process_export_fw(unsigned int) at ../libs/ardour/session_export.cc:303
ARDOUR::AudioEngine::process_callback(unsigned int) at ../libs/ardour/audioengine.cc:486
ARDOUR::DummyAudioBackend::main_process_thread() at ../libs/backends/dummy/dummy_audiobackend.cc:951
2020-12-08 01:09:57 +01:00
Robin Gareus
13e6fdb6b3 Ensure ringbuffers are never copy-constructed 2020-12-07 02:54:51 +01:00
Robin Gareus
bc9b94dfab Fix -Wcatch-value in unit-tests 2020-12-06 22:06:59 +01:00
Robin Gareus
e750cab915 LuaDSP use vectorized peak-finding 2020-12-06 22:06:55 +01:00
Robin Gareus
34769a9062 NO-OP: whitespace 2020-12-03 22:10:26 +01:00
Robin Gareus
60901d26b7 ALSA: improve debug output 2020-12-03 21:29:21 +01:00
Robin Gareus
b79520d316 VST3: Use a proxy for connecting and passing messages #8481
This separates channels in each direction component <> controller,
preventing recursions.
2020-12-03 02:48:20 +01:00
Robin Gareus
a974a3135e Prevent duplicate search paths
This fixes an issue with VST3 plugins being listed up multiple times
if a user also explicitly adds standard built-in search paths.
2020-12-02 21:34:52 +01:00
David Robillard
7e9d4f9e73 Fix C function prototypes
This fixes Wstrict-prototypes warnings.
2020-12-01 12:08:09 +01:00
David Robillard
0404876d7b Fix reliance on deprecated implicit assignment operators
Either both, or neither, a copy constructor and assignment operator should be
defined.  This fixes Wdeprecated-copy warnings.
2020-12-01 12:03:38 +01:00
David Robillard
91f15300b8 Remove support for deprecated LV2 event extension 2020-12-01 11:40:35 +01:00
David Robillard
80a22953b0 Remove support for the long-deprecated LV2 uri-map extension
This has been supplanted by the urid extension.
2020-12-01 11:40:35 +01:00
Robin Gareus
d5a2f6b2e0 Add Lua binding to get a file's basename 2020-11-30 22:15:26 +01:00
Robin Gareus
b043336c86 Fix monitor-sends with templates
This fixes an issues with missing monitor-sends when creating
a session from a template with monitor-section, or when creating
tracks from a route-template.
2020-11-27 00:11:41 +01:00
Robin Gareus
a62fd0379e Consolidate monitor-send setup 2020-11-26 23:58:15 +01:00
Robin Gareus
52f62f0c14 Possible fix for linking with new libdbus
libdbus_1_la-dbus-sysdeps-pthread.o): in function _dbus_platform_condvar_new':
undefined reference to pthread_condattr_setclock’
2020-11-26 00:50:56 +01:00
Robin Gareus
8d0a655608 VST3: cleanup, drop references (2/2) 2020-11-25 05:33:53 +01:00
Robin Gareus
3a74c5e602 VST3: add more debug messages 2020-11-25 02:20:37 +01:00
Robin Gareus
5e853d0977 VST3: fix plugin bus configuration
This fixes crashes when configuring some plugins that have more
input busses than output busses. e.g. TDR Nova.
2020-11-25 02:18:22 +01:00
Robin Gareus
ce43161d4e WebSockets: log hostname and listen-port 2020-11-23 20:12:57 +01:00
Robin Gareus
80e3c191e4 Pulseaudio: allow steam being suspended during export
When exporting long sessions with freewheeling, pulseaudio
may meanwhile suspend the corked audio device. The "FAIL_ON_SUSPEND"
option then prevents ardour to uncork it after export, and the
audio-backend is halted.
2020-11-22 21:41:47 +01:00
Robin Gareus
da4d1cd779 Yet another export fix (amend a529122249) 2020-11-22 20:44:45 +01:00
Robin Gareus
ef8eb36189 Fix export (amend a529122249) 2020-11-22 20:20:05 +01:00
Robin Gareus
767d5f93ba Fix segfault when plugin insantiation fails
*PluginInfo::load() eventually calls `plugin->set_info()`
which depends on a valid PluginPtr. The method needs to return
early if `plugin` is unset or null.
2020-11-21 22:28:48 +01:00
Robin Gareus
a529122249 Optimize stem and direct-out export 2020-11-20 20:14:52 +01:00
Robin Gareus
a1f40979bd VST3: fix failed c'tor case
~VST3PI() may call terminate() w/o a VST3 component.
2020-11-20 19:48:39 +01:00
Robin Gareus
a329de9d2f NO-OP: help out clang-analyzer 2020-11-20 19:42:33 +01:00
Robin Gareus
7d4cd5c76a Fix C++11ism 2020-11-20 13:32:20 +01:00
Robin Gareus
6ca4980e71 FP8: Allow to sort plugin-params by priority 2020-11-20 06:04:32 +01:00
Robin Gareus
3ac7e11eea Support lv2:port-props:displayPriority 2020-11-20 06:03:49 +01:00
Robin Gareus
7558c1316e VST3: inform plugins about last bar 2020-11-20 02:07:49 +01:00
Robin Gareus
50d8eff0d6 Allow const tempo-map lookups 2020-11-20 02:07:37 +01:00
luna
8f00826803 Make sure VST3 projectTimeMusic is updated 2020-11-20 01:43:21 +01:00
Luciano Iam
9ee828b47b WS: properly support MIDI strips 2020-11-19 17:03:36 +01:00
Porrumentzio
a8d924d9e1 Update and rework Basque translation 2020-11-19 16:48:58 +01:00
Hector Martin
4b9e46f11d Fix normalization in Temporal::Beats for times between -1 and 0 beats
Also fix normalization of times with negative beats and positive ticks
2020-11-18 13:40:31 -07:00
Robin Gareus
ff51e315e3 VST3: fix kMaxSendLevel, on Mixbus 15dB gain can be added 2020-11-17 14:54:31 +01:00
Robin Gareus
5a27cb9780 Fix copy/edit in 0d8f4eb95a 2020-11-17 03:16:30 +01:00
Robin Gareus
5fd2d6cc81 VST3: add debug message for preset/state restore 2020-11-17 02:44:11 +01:00
Robin Gareus
0d8f4eb95a VST3: Fix uninitialized variable, likely fixes #8460 2020-11-17 02:43:55 +01:00
Robin Gareus
4a8e9f28f3 VST3: unconditionally set controller's component state
This synchronizes component and controller when loading presets
like the VST3 SDK does.
2020-11-17 00:56:54 +01:00
Robin Gareus
de76d583b4 Remove unused variable 2020-11-17 00:16:36 +01:00
Robin Gareus
f9e9c6248d Initialize inline_ctrl variable, fix erratic inline ctrls 2020-11-16 18:27:09 +01:00
Robin Gareus
5950df2b74 VST3: fix duplicate plugin list (windows bundle vs dll) 2020-11-16 18:26:29 +01:00