Hector Martin
a568b3c7c2
Complain when MidiBuffer::merge_from fails due to buffer full
...
We were previously dropping MIDI data silently
2020-11-10 21:03:42 +09:00
Hector Martin
0979097cae
Check for MIDI buffer overflow when merging into an empty buffer
...
This can happen if the buffers have different sizes.
This fixes crashes that bisected to 7c37a18b7
, but it is not the root
cause; it just happened to make things worse.
2020-11-10 21:03:42 +09:00
f2d04dfb1f
Fix VST2 default and initial control parameter values
2020-11-10 00:08:03 +01:00
Hector Martin
0e509fa09f
Correctly sort concurrent MIDI events
...
This fixes an bug introduced in 7c37a18b7
2020-11-09 20:40:59 +01:00
bb468ee4de
Update jackd.exe registry key
...
This ensures compatibility with upcoming jack > 1.9.16,
current jack 1.9.16, as well as older versions.
2020-11-09 20:06:49 +01:00
John Emmas
5f082e2c9d
Add an extra option when querying Windows registry keys
...
(this option will be needed when 32-bit Ardour is running in 64-bit Windows)
2020-11-09 11:35:35 +00:00
f95439a502
add spinlock to RCU manager to protect concurrent reader() and update() calls
2020-11-08 11:28:10 -07:00
01f9332458
Fix RCU Unit-test on macOS/X
...
Apple's pthread does not implement barriers
2020-11-07 10:37:52 +01:00
88fc0ed392
Add RCU unit test
2020-11-05 02:24:54 +01:00
62e47fb57c
Add Lua binding for unit-tests to sync with process-cb
2020-11-04 19:08:59 +01:00
c87ef15e82
ALSA: configure capture settings before playback
...
This fixes an issue with some soundcards e.g. "AxeFx III".
Device configuration fails unless set_hwpar() is performed
for the capture device before configuring the playack
device (half duplex is fine, too).
2020-11-04 14:46:49 +01:00
b8b232cfab
VST3: query latency when plugin is activated regardless of Vst::kLatencyChanged
2020-11-02 01:58:05 +01:00
8ab62937ca
VST3: verbose scan option
2020-11-02 01:57:03 +01:00
35414fcef0
VST3: yet another attempt at state-retore #8460
2020-11-02 01:46:08 +01:00
66c19647df
NO-OP: fix typos
2020-11-01 12:25:22 +01:00
cf0904f752
Handle vfork/exec failure
...
Don't call atexit, exit without cleanup.
2020-10-31 22:33:10 +01:00
a9bd7b2848
Remove unused compile-time option to not use vfork
2020-10-31 22:30:45 +01:00
edc70200c4
VST3: add generic uname -m
fallback
2020-10-31 20:26:34 +01:00
7896c30508
Fix cmdline parameter escape
2020-10-31 13:42:14 +01:00
John Emmas
40ed19767a
In a Windows build, support launching both older and newer versions of Jack (Stephane's + Filipe's)
2020-10-31 08:01:55 +00:00
John Emmas
5c06fdf1de
In an MSVC build, modify our VC project to use weak Jack
...
(needed to support Jack v1.9.16)
2020-10-31 07:59:09 +00:00
f509a7e003
Extend convenience API to query windows registry
2020-10-30 13:15:06 +01:00
1219271321
Cont'd work on implicit solo restore
...
This is an update to b90f057e6e
, allowing processors
to configure when ports change. Fixes loading old sessions with
variable i/o polarity invert.
2020-10-29 19:55:27 +01:00
b90f057e6e
Fix restoring implicit solo on session load
...
When a route's output is connected to multiple busses, re-establishing
port-connections on session-load calls Route::output_change_handler
multiple times.
Implicit solo counts are saved and restored by the route's SoloControl,
however the output_change_handler invalidated it on session load.
Since connections are restored iteratively, counting soloed downstream
routes will yield an incorrect result until all connections are
established.
This fixes the issue that implicit solo is lost on session-reload
in case a route has multiple connections with different up/downstream
solo states.
2020-10-28 22:31:26 +01:00
7826a1a2a2
Increase plugin-scan progress display frequency
2020-10-27 22:21:49 +01:00
722294075d
VST3: fix UTF-16 host message
2020-10-26 18:33:10 +01:00
b119758161
fix debug messages in prev commit
2020-10-25 20:31:50 +01:00
da1782d56e
VST3: Keep preset in sync with plugin GUI
...
When a user loads a preset using the plugin's own GUI, update
Ardour's preset dropdown.
2020-10-25 19:50:22 +01:00
6c14e568f0
Streamline copying plugin state
...
Do only load (dlopen) plugin module when instantiating plugin.
Previously new instances were loaded, not used, and unloaded.
2020-10-25 13:14:02 +01:00
ddcf3eb684
Generic Midi encoders fixed
2020-10-24 16:06:04 -07:00
421c52ba7d
Fix bounce and freeze
...
* Include main-out channel-count when bouncing the output
* Do not de-activate disk-reader and mains-out when freezing a track
* Ignore meter when counting channels
2020-10-24 05:44:29 +02:00
54829492ca
Fix glib/glibmm includes
2020-10-24 04:14:38 +02:00
f7cc5e1f38
Search for JACK on windows using the registry
2020-10-24 04:01:54 +02:00
32d2ea6c41
Replace static registry lookup with library method 1/2
2020-10-24 03:57:16 +02:00
8852069ead
Consolidate code: add library method to query Windows registry
2020-10-24 03:56:47 +02:00
76c86ee96d
VST3 path customization
...
Allow to add custom VST3 search to default. the VST3_PATH environment
variable is use to pre-seed this path at first start.
2020-10-24 03:36:41 +02:00
c6222caea6
VST3: Implement verbose scan option
2020-10-24 03:21:25 +02:00
2e98c57fb8
Finalize experiment: always propagate solo via sends
...
See also caf057f06d
2020-10-23 00:24:06 +02:00
8b6e1d78f9
Fix external/sidechain send solo propagation
...
Since caf057f06d
sends propagate solo, however so far
only internal-sends properly cleaned up after disconnect or
removal.
2020-10-22 23:52:01 +02:00
32a0c6a3ff
Drop TMM ports when closing session, or backend goes away
...
TMM ports cannot exist without a backend.
This fixes crashes where the PortEngine is re-initialized
(backend change):
Previously, TMM ports were only dropped (and recreated)
in TMM::restart() called from ARDOUR::init_post_engine().
When starting a new backend the old one is already destroyed,
but TM still held reference to Ports owned by that backend.
Calling the port's d'tor caused a memory corruption trying to
acquire the backend's port_callback_mutex:
e.g. When creating new session with a different backend
from a running instance, or unit-test after call to
AudioEngine::destroy(): https://pastebin.com/4D6pLA5s
2020-10-22 07:38:00 +02:00
8bc3e86066
Clean up TMM at exit
2020-10-22 07:38:00 +02:00
f3fbb96d6a
Fix VST3 PSL channel-index order
...
While Ardour uses separate indices when naming tracks and busses
("track 1", "track 2", "bus 1", "bus 2"), the indices are contiguous
(0: "track 1", 1: "track 2", 2: "bus 1", 3: "bus 2").
2020-10-22 01:37:40 +02:00
a266a2d5b9
Use session API to set solo
...
This is required so that ::update_route_solo_state() is called
to propagate solo/mute state
2020-10-18 15:28:10 +02:00
72736289c8
NO-OP: rename API rename
...
CP selection API is now implemented as functions, not signals.
2020-10-18 14:47:05 +02:00
84bf97aa49
Update ControlProtocol API, use CoreSelection
...
* replace signal-emission with direct calls to CoreSelecton
using BaseUI's session pointer
* remove unused leftmost strip API
* use CoreSelection for first-selected strip
* Accessing CoreSelection does not modify the session
(allow access from const callbacks)
* replace static calls in P2 surface
This removes indirection and dependency on the GUI for
managing strip selection.
2020-10-18 14:44:38 +02:00
9b382fe1c5
VST3: use CoreSelection API
...
This implements bc78629788
properly, without relying
on libardour_cp static methods.
2020-10-18 14:36:09 +02:00
26a1d55f7a
Implement _first_selected_stripable as part of CoreSelection
2020-10-18 14:29:12 +02:00
e6fe0e8cca
Prepare for static CP API removal 2/2
...
This partially reverts bc78629788
2020-10-18 14:28:45 +02:00
Edgar Aichinger
1f7e4ee76a
update german translation
2020-10-17 18:21:30 +02:00
8de420aab9
Enable AVX FPU unit-tests
2020-10-17 18:18:22 +02:00
01c278a00c
Fix unit-test builds
...
For the time being (since bc78629788
) vst3 plugin uses
the Control Protocol API for track selection and focus, and
hence users of libardour also need to use libardour_cp
2020-10-17 18:18:05 +02:00
Ayan Shafqat
1a7dc947a2
Fix for issue #8442
...
AVX optimized routine applying gain for Linux was causing SIGSEGV.
It was root caused to premature optimization on frames < 8, and
this commit fixes this issue.
2020-10-17 10:03:26 -04:00
b03bfbbbb7
VST3: fix utf8 -> utf16 string conversion
2020-10-16 17:58:45 +02:00
bc78629788
VST3: add support to focus/select tracks
2020-10-16 17:17:00 +02:00
1fa05b4764
Generate header before building dependency graph
2020-10-16 02:35:51 +02:00
e391352b6d
Use predefined "testcommon" target for unit-tests
2020-10-16 02:32:30 +02:00
516a1b0d2e
Use unique target names for unit-test build rules
2020-10-16 02:31:39 +02:00
dbd4607b13
VST3/ARM use uname -m
not RPM Terminology
...
https://github.com/steinbergmedia/vst3sdk/issues/66
2020-10-15 23:32:52 +02:00
768b76bcfa
Add workaround for softube console1
2020-10-15 21:48:56 +02:00
3b7b6a720d
VST3: remove redundant query interface
2020-10-15 21:46:45 +02:00
c8c1e5d825
VST3: fix host query interface support
2020-10-15 21:10:00 +02:00
09a4dcee68
VST3: fix controller state restore
...
This partially reverts 9e7cfdd880
, VST3 host-checker
uses complete state for the controller.
2020-10-15 20:45:26 +02:00
3271a96100
VST3: allow to debug TUID support
2020-10-15 20:40:35 +02:00
e1b38058a8
Fix FPU unit-tests
2020-10-15 19:38:10 +02:00
16d9e72c31
Fix OSX unit-test compile
2020-10-15 06:00:17 +02:00
fe8a05d6c9
libpbd signals.h depends on signals_generated.h
...
This fixes building with large concurrency where signals_generated.h
may otherwise be generated to late.
2020-10-15 05:45:51 +02:00
5daed56439
Fix NEON FPU unit-tests
2020-10-15 04:14:44 +02:00
547032afac
Fix alignment unit-tests and ARM/NEON alignment
2020-10-15 03:55:42 +02:00
8ff7e18d78
Fix native builds on RPi with --dist-target=armhf
2020-10-15 03:07:34 +02:00
61310a9184
Enable AVX unit-tests
2020-10-14 23:08:28 +02:00
cc935ab34e
Add basic FPU unit test
2020-10-14 22:52:43 +02:00
e4e94e77c9
Transmitter::Debug implementation 1/2
...
This also sorts switch() and listen_to() statements in order
of severity: debug, info, warning, error, fatal, throw.
2020-10-13 21:58:26 +02:00
9a4237ba83
Add debug transmitter
...
This is in preparation to conveniently duplicate debug messages
to Window > Log. For cases where stdout/err is not easily accessible.
2020-10-13 21:27:16 +02:00
9ddd83d829
VST3: cont't work on PSL extensions
...
* fix notification strings
* optional mute/solo controls (master bus)
2020-10-13 20:20:23 +02:00
6baecca57b
VST3: debug PSL callbacks
2020-10-13 15:56:32 +02:00
c5618f01d6
VST3: only expose Mixbus sends via PSL extensions
2020-10-13 03:49:19 +02:00
4b3b13457e
Fix typo in previous commit
2020-10-13 01:37:37 +02:00
0fac4843db
VST3: tweak PSL extensions
2020-10-13 01:30:48 +02:00
48e4855304
VST3: do not show bypass control inline
2020-10-13 01:25:58 +02:00
63ad43dbd9
VST3: update callback debug messages
2020-10-13 01:25:43 +02:00
3caf0ac5da
VST3: use either info-handler or info-listener, not both
2020-10-13 01:24:05 +02:00
0400ae2047
Fix VST3 debug message
...
get_info() is not yet available during Plugin::init().
set_info() is only called after from VST3PluginInfo::load() after
the plugin was instantiated.
2020-10-12 19:06:30 +02:00
396d2df127
Fix LuaProc API usage (typo in 10b05df189
)
2020-10-12 04:14:48 +02:00
7ec10f7771
Update variable-i/o channel assignment, separate sidechains
...
We need to be able to distinguish
* 2 ins: mono + sidechain
* 2 ins: stereo input
2020-10-12 03:26:33 +02:00
17f0b87648
Fix Apple Carbon #define interference
2020-10-11 21:40:31 +02:00
c6387c1ac9
Split long chain of Lua bindings (fix clang 12 builds)
2020-10-10 01:26:04 +02:00
4da9441691
Fix clang/C++11 builds, add missing override
2020-10-10 00:18:41 +02:00
c2125eedc6
VST3: add debug messages
2020-10-09 22:18:05 +02:00
b8157580c6
VST3: fix PSL callback subscription
2020-10-09 21:48:52 +02:00
9e7cfdd880
VST3: use read-only substream to restore state
2020-10-09 20:58:43 +02:00
5a25db34ae
VST3: implement Read-Only sub-stream
2020-10-09 20:55:41 +02:00
0edd0c2abc
Do not bind pure virtual functions, use indirection
...
This fixes Windows/MSVC builds, where linking fails due
to binding a pure virtual function.
2020-10-09 18:23:53 +02:00
734a31accf
VST3: announce support for implemeted features
2020-10-09 17:45:15 +02:00
e8c6d20b18
Factor out namespace
2020-10-09 14:13:07 +02:00
85acfb0842
Use explicit cast to bool
2020-10-09 14:12:58 +02:00
37475308ee
VST3: store all input controls (not only automatable ones)
2020-10-09 14:12:52 +02:00
d0ec83fb35
Fix mistake in 10b05df189
2020-10-09 05:14:28 +02:00
323fe16d4d
Improve AU debug facilities (1/2)
...
Use a common prefix "AudioUnit" but allow to only debug setup/config
changes without regular process-callback debug clutter.
2020-10-09 02:29:19 +02:00
10b05df189
Rename plugin pin I/O API (NO-OP)
...
This allows to distinguish Processor::configure_io from the
Plugin API with the same name. Despite the identical name,
both functions serve different purposes.
Likewise the ::can_support_io_configuration() API is renamed.
The signature of that function call has already diverged.
The Plugin-API has to handle optional busses (e.g. side-chain)
and replication. The PluginInsert processor provides context.
This change is in preparation for AudioUnit and VST3 busses.
Currently a stereo-input (1 bus) cannot be distinguished from
mono + sidechain (2 busses).
2020-10-09 02:19:43 +02:00
64391334a4
NO-OP: Remove unused API implementation
2020-10-09 02:06:50 +02:00
e4bbb1bc81
VST3: Implement ContextInfo (console) extension
2020-10-08 15:36:36 +02:00
65c433dce2
VST3: Implement PSI extensions
...
* Register classes
* Implement automation-state notification
* Implenent parameter slave
2020-10-08 15:36:35 +02:00
042f0a192f
VST3: Add PreSonus Plug-In Extensions
2020-10-08 15:36:35 +02:00
9746a63625
VST3: implement ChannelContext::IInfoListener
2020-10-08 15:36:35 +02:00
bbbd6a36ec
VST3: set owner (prepare for context-info extensions)
2020-10-08 15:36:35 +02:00
6e6eb4c13e
Fix VST3 scan message (use bundle, not module name)
2020-10-08 15:35:50 +02:00
53d406e47d
VST3: Implement ISizeableStream and IStreamAttributes
2020-10-08 04:18:53 +02:00
6dc909696f
Allow src/dst MIDI buffer offsets
...
This is needed for ARDOUR::PluginInsert::automate_and_run
when processing is split on events.
2020-10-08 04:18:50 +02:00
9419d6f76f
VST3: implement optional IEditController interfaces
2020-10-08 03:05:09 +02:00
fa3051fb24
Better version of previous commit ( fa3ae33a1f
)
...
Since the file-modification timestamp of the module-path is used
if the cache is up-to-date, the file must exist.
For macOS/X bundles the mandatory file as per VST3 spec is Info.plist
2020-10-08 00:09:12 +02:00
fa3ae33a1f
VST3: relax bundle-name requirement on MacOS
2020-10-07 18:50:39 +02:00
c0b4e575d9
VST3: add support for hiding parameters
2020-10-07 17:49:55 +02:00
a28b1f548e
Add interface to inform plugins about replicated instances
...
This allows for asking plugins to synchronize internal state
that isn't visible to the host between plugin instances.
2020-10-06 23:34:25 +02:00
7ab664d5a4
Properly emit Plugin::DropReferences (1/2)
2020-10-05 19:57:14 +02:00
df55af6483
Fix include path prefix
2020-10-05 19:57:08 +02:00
John Emmas
6155558c76
Add a new #include path to our MSVC project (libardour)
2020-10-03 11:23:54 +01:00
ec2eedacc6
Fix C++89 builds, (vst3 interface needs nullptr)
2020-10-02 20:42:40 +02:00
c069709939
VST3: do not create persistent view to test has_editor()
...
This is a better variant of 05d2a0f4a4
. Mainly becuase
some plugins crash when view->remove() is called for a
view that was never attached.
2020-10-02 16:45:49 +02:00
05d2a0f4a4
VST3: explicitly close and release view
...
A call to VST3Plugin::has_editor() can create the view of
a plugin. If the GUI is never displayed, the view would
not have been released, which can lead to crashes when
unloading the plugin.
2020-10-02 15:29:04 +02:00
3c4801bc96
VST3: common factory instantiating and release
...
This may address some issues with multiple references
(and incremental releases) of a plugin's factory.
2020-10-02 15:01:01 +02:00
6e89df412a
VST3: Fix another potential crash when removing a plugin
2020-10-01 23:39:59 +02:00
46e895aaad
Re-brand a-* plugins as Ardour Community Effects (ACE)
2020-09-30 21:59:20 +02:00
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
71212e0c81
Remove debug/profile message in optimized builds
2020-09-29 16:46:29 +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
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
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
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
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
fe73d03809
VST3: explicitly release GUI resources
2020-09-21 21:19:15 +02:00
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
a2e366ce28
VST3: Release plugin factory before unloading plugin
2020-09-20 22:09:02 +02:00
25bd4b8ec7
Setup stdio with -mwindows VST scanners
2020-09-20 20:03:01 +02:00
140e03bb7d
Make windows-console setup code re-usable
2020-09-20 19:57:08 +02:00
89a0258c31
VST3: MIDI-learn, live input events
2020-09-20 19:19:25 +02:00
56b94b3fc4
Mark user-created events as live MIDI
2020-09-20 19:19:16 +02:00
f9cdf533ba
Event API consistency; reorder arguments (time, type, payload)
2020-09-20 19:18:09 +02:00
2f68656679
Update API to send immediate events
...
This is to allow passing the EventType to the Buffer, using a
consistent {[Time], Type, size, data} API, that is equivalent
for all classes.
This is particularly useful for Lua scripts and plugin UIs
than can call `write_immediate_event()` while being ignorant
where the data is routed to (MIDI tracks, plugins, processors).
2020-09-20 19:16:43 +02:00
7c37a18b75
Update MIDI buffer implementation to retain EventType
2020-09-20 17:21:21 +02:00
472fe2b556
Prepare for distinct live-midi event type
...
The motivation for this is to determine if a given event
originates from a user-controlled live input controller or
from playback from disk or a MIDI file.
This distinction is required for VST3 MIDI learn.
2020-09-20 17:16:53 +02:00
472ce90fab
JACK backend allows to calibrate latency
...
However, if jackd is running, we should test if jackd is using
a full-duplex device to establish if latency calibration is
possible -- fix 92f54b3e98
.
2020-09-20 17:16:01 +02:00
a4b1277f85
Headless windows VST3 scanner
...
This re-adds a line that was accidentally removed in fab92d313f
2020-09-18 22:37:13 +02:00
57c660836f
VST3: Re-activate plugin when latency changes
...
This is required. From the "RestartFlags" documentation:
> kLatencyChanged:
> Latency has changed The plug informs the host that its latency
> has changed, getLatencySamples should return the new latency after
> setActive (true) was called The host has to deactivate and reactivate
> the plug-in, then afterwards the host could ask for the current
> latency (getLatencySamples) see IAudioProcessor::getLatencySamples
2020-09-18 19:39:50 +02:00
216935f16e
Remove ALSA debug message in optimized builds
2020-09-18 15:40:44 +02:00
d90d5c3701
Make gcc-10 happy (missing <string> include)
2020-09-18 15:38:22 +02:00
d5496de98a
VST3: use kOffline for freewheeling
2020-09-17 21:06:46 +02:00
824e54f399
Mark session as dirty when meter-type changes
2020-09-17 21:06:46 +02:00
John Emmas
ae2a1c15fa
Add VST3 support for building with MSVC
2020-09-17 18:45:12 +01:00
7963214710
Use C-compatible isprint() - fixes MSVC builds
2020-09-17 17:29:50 +02:00
a8c9bdbbd0
Fix w32 builds (VST stdcall API)
2020-09-17 12:55:18 +02:00
fab92d313f
Fix linking vst3 scanner app (Linux-ARM, OSX/PPC, OSX/i386)
2020-09-17 12:20:31 +02:00
6b4dc3268f
VST3: Implement plugin-provider
2020-09-17 00:10:17 +02:00
15e564c54a
VST3: scanner application
2020-09-16 22:49:20 +02:00
2a9795113b
VST3: Plugin discovery
2020-09-16 22:49:20 +02:00
84a86fa21a
VST3: Implement host classes
2020-09-16 22:49:20 +02:00
9bd8c43693
VST3: Load and instantiate
2020-09-16 22:49:20 +02:00
0ca0b4f335
VST3 skeleton
2020-09-16 22:49:19 +02:00
9c5f13f3fa
Import VST3 interface
2020-09-16 22:49:19 +02:00
c01b7b7842
Detect LV2 categories by URI
2020-09-15 19:32:30 +02:00
8dbc16a929
Remove unused LV2 configuration checks 3/3
...
LV2 has been mandatory since 6.0 (04ccd328dc
)
2020-09-15 17:35:09 +02:00
c5014d9d9e
Remove unused LV2 ifdef 1/3
...
LV2 has been mandatory since 6.0 (04ccd328dc
)
2020-09-15 17:01:32 +02:00
0c10ec3c75
Case-insensitive compare name to detect plugin duplicates
...
In some cases LV2/VST and VST2/VST3 use slightly different naming
conventions e.g. "MDA ..fx" vs "mda ..fx".
2020-09-15 16:40:30 +02:00
dcea35191c
Consolidate code: use API to print plugin-type 1/2
2020-09-15 16:03:33 +02:00
d72423fdc8
Add API to format plugin-type
2020-09-15 16:03:19 +02:00
68b23b9f82
Skip presets lookup for empty prest URI
2020-09-14 23:37:22 +02:00
e9c90bc1b2
Update Plugin API, extend IOPortDescription c'tor
2020-09-14 23:37:22 +02:00
1a50b6b8ea
Update Plugin API to allow timestamped parameter changes
...
This is in preparation for VST3 automation.
2020-09-14 23:37:21 +02:00
04e5ea0f86
Expose PluginInfo index (for VST3 shells)
2020-09-14 23:37:21 +02:00
b8f883e608
prevent Session range markers from being hidden
2020-09-14 15:07:42 -06:00
2ef673b15e
Add convenient Lua binding to query automation
2020-09-13 23:58:23 +02:00