e4cb7a14e8
VST3: reduce debug output
2020-09-30 17:10:24 +02:00
00b5b61a43
VST3: implement some restart component flags
...
Re-order handling of the flags, do not return early,
and log warnings for unhandled flags.
2020-09-30 17:09:32 +02:00
814eca48af
VST3: disable MIDI busses before removing plugin
...
There is anecdotal evidence that some plugins require this
to exit cleanly.
2020-09-30 16:43:42 +02:00
8209b4b948
VST3: handle zero length plugin state
2020-09-30 04:41:59 +02:00
5e882afe10
Fix dereferencing empty vectors
2020-09-30 03:18:19 +02:00
c6fc4f36a3
Include version in crashdump
2020-09-29 17:34:21 +02:00
71212e0c81
Remove debug/profile message in optimized builds
2020-09-29 16:46:29 +02:00
c45982ee5a
Console needs to be set up early on
...
If there is any output printed before setting up the console,
there will be no output at all.
2020-09-29 16:46:00 +02:00
d97b0fbf96
Use a better location for windows crashdumps
...
On Windows, a user's $HOME dir may not exist, or not be writable,
also cluttering up the $HOME with crashlogs is not great.
2020-09-29 16:42:27 +02:00
5ebb016544
Add support for Dr.Mingw
2020-09-29 06:06:11 +02:00
d4d3d84d8c
Hide LV1, VST2 instruments in dropdown if matching LV2, LV3 exist
2020-09-28 22:35:15 +02:00
dcc14e9f6c
Never write #ifdef'ed code after 4am
2020-09-28 17:23:32 +02:00
d4b774e935
VST3: partially revert debcda25b4
implicit notifications to self
2020-09-28 04:35:10 +02:00
ff26258461
Fix sloppy typing
2020-09-28 03:41:48 +02:00
117184c3bd
Fix 32bit alignment in prev commits
...
this amends
f52c5ca3ac
and
5abe677fea
2020-09-28 03:20:14 +02:00
f52c5ca3ac
ARM RTMidiBuffer alignment
2020-09-28 03:12:38 +02:00
5abe677fea
Fix ARM MIDI buffer alignment
...
Both TimeType (8byte) and EventType (4byte) are written
in an un-aligned buffer (usually 3 byte MIDI messages).
This caused an Illegal Instruction for 32bit ARM builds
2020-09-28 01:23:02 +02:00
7e1ce160e9
ARM 32bit enum alignment (used in MIDIBuffer)
...
Evoral::EventType is written directly into a uint8_t buffer
by dereferncing a pointer-type:
*(reinterpret_cast<Evoral::EventType*>((uintptr_t)...)
2020-09-28 01:21:43 +02:00
37ec50cbf8
Remove C++11ism
2020-09-27 20:42:23 +02:00
5cbc5cc52a
VST3: setProcessing, setActive calls are optional
2020-09-27 20:30:44 +02:00
debcda25b4
VST3: use a dedicated connection list
2020-09-27 20:29:36 +02:00
1d6d4dc7b8
VST3: add set-dirty/state-changed support
2020-09-27 18:01:50 +02:00
554bd9958a
Use abs-path when running from source-tree
...
This fixes an issue with plugins changing directories,
dexed.vst3 for example.
Also remove PWD from include paths. This resolves potential
ambiguities.
2020-09-27 15:55:20 +02:00
f3fbf58185
Set default transient parent to the main window
...
This is mainly useful for plugin windows, but also relevant
for other Ardour WM managed dialogs and windows.
2020-09-27 02:07:19 +02:00
55df465fb3
VST3: load custom state after restoring port value
...
This fixes restoring the sate of Spitfire LABS and possibly
other plugins
2020-09-26 21:42:57 +02:00
6a780f9cbc
VST3: fix pitchbend range
2020-09-26 21:40:09 +02:00
751db481a6
Use linear fades for loop-range cross-fades
...
The cross-over point of an exponential fade occurs further towards
start of the fade. This increases consistency of cross-fades moving
the cross-over point to the center of the fade.
Also looped material is likely correlated in which a linear fade
is more appropriate.
2020-09-25 17:09:25 +02:00
c08298e6d8
Fix loop cross-fade glitch #8420
...
This fixes an off-by one when assigning `fade_length` and
also solves an edge-case with different fade length for
fade-in/fade-out.
2020-09-25 17:09:25 +02:00
John Emmas
7b0fdeda5e
VST3: Change the order of some preprocessor directives in our MSVC project
...
(will simplify things a bit when building Mixbus)
2020-09-25 07:51:34 +01:00
929e88aac1
VST3: Prepare to debug plugin bus/channel count
2020-09-24 18:46:03 +02:00
86be01c0f9
VST3: Ignore MIDI channel count for a bus
...
Assume that simply the presence of an Event bus indicates
that MIDI is supported.
This fixes Arturia synths, among others.
see also https://forum.juce.com/t/vst3-event-bus-channel-count/25051
2020-09-24 18:38:44 +02:00
68ee66a4ee
VST3: dedicated blacklist files for each architecture
2020-09-24 17:08:32 +02:00
3e209bfd33
VST3: prevent plugin copy-construction
2020-09-24 15:58:06 +02:00
c51e3ac7c7
VST3: support non-integer indexed presets
2020-09-24 15:57:14 +02:00
a060c0a2ef
Revert "Expose PluginInfo index (for VST3 shells)"
...
This reverts commit 04e5ea0f86
.
2020-09-23 23:40:33 +02:00
5a15a33839
VST3: use TUID/FUID, remove numeric index
...
This fixes an issue with plugin-shells, in particular those
with variable number of plugins (e.g. waves)
2020-09-23 23:39:10 +02:00
b7c9917467
VST3: Fix initial GUI display and window-size
2020-09-23 18:14:57 +02:00
b8028f1239
VST3: fix initial display of custom plugin UI
2020-09-23 17:57:53 +02:00
704d486324
Revert "Add debug messages for Windows VST3 GUI"
...
This reverts commit 105c358494
.
2020-09-23 17:55:33 +02:00
81695b10e4
Take processor-lock to update latency of inactive routes
2020-09-22 23:41:38 +02:00
40439b6cc4
Disconnect plugin-signals on plugin-deletion
...
Use the plugin-insert itself as ScopedConnectionList, don't
clutter up the Route's List
2020-09-22 23:41:11 +02:00
4601507165
Collect and queue processor latency updates
...
This is only relevant when automating a plugin-bypass, due to
ActiveChanged the following could happen from the realtime thread:
#2 ARDOUR::Session::update_latency_compensation (false, false)
#3 PBD::Signal0<void, PBD::OptionalLastValue<void> >
#4 ARDOUR::AutomationControl::actually_set_value
#5 ARDOUR::PluginInsert::PluginControl::actually_set_value
#6 ARDOUR::PluginInsert::connect_and_run
#7 ARDOUR::PluginInsert::automate_and_run
In this specific case the update_latency_compensation()
is called with process-lock held but the caller lied:
called_from_backend=false
When a delayline update is needed, this can lead to a deadlock,
since the process-lock is acquired again.
Simply postponing the update is preferable since this also
postpones the change when actively recording.
PS. This may need special casing for freewheel export.
2020-09-22 23:35:48 +02:00
105c358494
Add debug messages for Windows VST3 GUI
2020-09-22 22:22:06 +02:00
2288279e57
No-OP: prefer constants from API header
2020-09-22 22:17:09 +02:00
2b139ead8d
Cache route's output playback latency
...
IO::latency iterates over the port-set retrieving the
private_latency_range of each port. The value can cached
since it can only change when connections or latency changes.
see also 40eefeddd6
2020-09-22 21:55:49 +02:00
bebca37447
Cache the latency of the metronome's port
2020-09-22 21:42:52 +02:00
650b4a6900
Only query MIDI Clock port latency when it changes
...
Previously there were excessive calls, since MidiClockTicker::reset()
is called in **every** cycle when Mclk is disabled.
2020-09-22 21:15:31 +02:00
ecf4a62082
Fix off-by-one in declick fade allocation #8418
...
This case is only relevant for large sample-rates for
the fade-in curve. see also 6f755c3c02
2020-09-22 16:44:50 +02:00
John Emmas
f4be03ac8f
Move MSVC's declaration of VST3_SUPPORT to the right place
...
(reverts commit #ae2a1c15fa)
2020-09-22 12:21:20 +01:00
John Emmas
8895d19cd7
Build 'ardour-vst3-scanner.exe' with MSVC
2020-09-22 12:15:09 +01:00