Robin Gareus
71212e0c81
Remove debug/profile message in optimized builds
2020-09-29 16:46:29 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
5ebb016544
Add support for Dr.Mingw
2020-09-29 06:06:11 +02:00
Robin Gareus
d4d3d84d8c
Hide LV1, VST2 instruments in dropdown if matching LV2, LV3 exist
2020-09-28 22:35:15 +02:00
Robin Gareus
dcc14e9f6c
Never write #ifdef'ed code after 4am
2020-09-28 17:23:32 +02:00
Robin Gareus
d4b774e935
VST3: partially revert debcda25b4 implicit notifications to self
2020-09-28 04:35:10 +02:00
Robin Gareus
ff26258461
Fix sloppy typing
2020-09-28 03:41:48 +02:00
Robin Gareus
117184c3bd
Fix 32bit alignment in prev commits
...
this amends
f52c5ca3ac
and
5abe677fea
2020-09-28 03:20:14 +02:00
Robin Gareus
f52c5ca3ac
ARM RTMidiBuffer alignment
2020-09-28 03:12:38 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
37ec50cbf8
Remove C++11ism
2020-09-27 20:42:23 +02:00
Robin Gareus
5cbc5cc52a
VST3: setProcessing, setActive calls are optional
2020-09-27 20:30:44 +02:00
Robin Gareus
debcda25b4
VST3: use a dedicated connection list
2020-09-27 20:29:36 +02:00
Robin Gareus
1d6d4dc7b8
VST3: add set-dirty/state-changed support
2020-09-27 18:01:50 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
6a780f9cbc
VST3: fix pitchbend range
2020-09-26 21:40:09 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
929e88aac1
VST3: Prepare to debug plugin bus/channel count
2020-09-24 18:46:03 +02:00
Robin Gareus
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
Robin Gareus
68ee66a4ee
VST3: dedicated blacklist files for each architecture
2020-09-24 17:08:32 +02:00
Robin Gareus
3e209bfd33
VST3: prevent plugin copy-construction
2020-09-24 15:58:06 +02:00
Robin Gareus
c51e3ac7c7
VST3: support non-integer indexed presets
2020-09-24 15:57:14 +02:00
Robin Gareus
a060c0a2ef
Revert "Expose PluginInfo index (for VST3 shells)"
...
This reverts commit 04e5ea0f86 .
2020-09-23 23:40:33 +02:00
Robin Gareus
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
Robin Gareus
b7c9917467
VST3: Fix initial GUI display and window-size
2020-09-23 18:14:57 +02:00
Robin Gareus
b8028f1239
VST3: fix initial display of custom plugin UI
2020-09-23 17:57:53 +02:00
Robin Gareus
704d486324
Revert "Add debug messages for Windows VST3 GUI"
...
This reverts commit 105c358494 .
2020-09-23 17:55:33 +02:00
Robin Gareus
81695b10e4
Take processor-lock to update latency of inactive routes
2020-09-22 23:41:38 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
105c358494
Add debug messages for Windows VST3 GUI
2020-09-22 22:22:06 +02:00
Robin Gareus
2288279e57
No-OP: prefer constants from API header
2020-09-22 22:17:09 +02:00
Robin Gareus
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
Robin Gareus
bebca37447
Cache the latency of the metronome's port
2020-09-22 21:42:52 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
fe73d03809
VST3: explicitly release GUI resources
2020-09-21 21:19:15 +02:00
Robin Gareus
48037dc545
Prevent concurrent use of VST3X11Runloop
...
In theory the GUI is single threaded and registration of
events happens only when a plugin GUI is constructed or
destroyed (which happens in the GUI thread).
Except it seems that if a plugin uses reference counting,
un-registration can happen later.
2020-09-21 21:18:50 +02:00
Robin Gareus
8754090c47
VST3: cleanup component, release resources
...
This fixes a hang at exit (in FreeLibrary, dlclose) for some
VST3 plugins.
2020-09-20 23:06:27 +02:00
Robin Gareus
a2e366ce28
VST3: Release plugin factory before unloading plugin
2020-09-20 22:09:02 +02:00
Robin Gareus
f386d1334a
Use shared windows-console setup code
2020-09-20 20:03:05 +02:00
Robin Gareus
25bd4b8ec7
Setup stdio with -mwindows VST scanners
2020-09-20 20:03:01 +02:00