Robin Gareus
d0ec83fb35
Fix mistake in 10b05df189
2020-10-09 05:14:28 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
64391334a4
NO-OP: Remove unused API implementation
2020-10-09 02:06:50 +02:00
Robin Gareus
e4bbb1bc81
VST3: Implement ContextInfo (console) extension
2020-10-08 15:36:36 +02:00
Robin Gareus
65c433dce2
VST3: Implement PSI extensions
...
* Register classes
* Implement automation-state notification
* Implenent parameter slave
2020-10-08 15:36:35 +02:00
Robin Gareus
042f0a192f
VST3: Add PreSonus Plug-In Extensions
2020-10-08 15:36:35 +02:00
Robin Gareus
9746a63625
VST3: implement ChannelContext::IInfoListener
2020-10-08 15:36:35 +02:00
Robin Gareus
bbbd6a36ec
VST3: set owner (prepare for context-info extensions)
2020-10-08 15:36:35 +02:00
Robin Gareus
6e6eb4c13e
Fix VST3 scan message (use bundle, not module name)
2020-10-08 15:35:50 +02:00
Robin Gareus
53d406e47d
VST3: Implement ISizeableStream and IStreamAttributes
2020-10-08 04:18:53 +02:00
Robin Gareus
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
Robin Gareus
9419d6f76f
VST3: implement optional IEditController interfaces
2020-10-08 03:05:09 +02:00
Robin Gareus
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
Robin Gareus
fa3ae33a1f
VST3: relax bundle-name requirement on MacOS
2020-10-07 18:50:39 +02:00
Robin Gareus
c0b4e575d9
VST3: add support for hiding parameters
2020-10-07 17:49:55 +02:00
Robin Gareus
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
Robin Gareus
7ab664d5a4
Properly emit Plugin::DropReferences (1/2)
2020-10-05 19:57:14 +02:00
Robin Gareus
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
Robin Gareus
ec2eedacc6
Fix C++89 builds, (vst3 interface needs nullptr)
2020-10-02 20:42:40 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
6e89df412a
VST3: Fix another potential crash when removing a plugin
2020-10-01 23:39:59 +02:00
Robin Gareus
46e895aaad
Re-brand a-* plugins as Ardour Community Effects (ACE)
2020-09-30 21:59:20 +02:00
Robin Gareus
e4cb7a14e8
VST3: reduce debug output
2020-09-30 17:10:24 +02:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
8209b4b948
VST3: handle zero length plugin state
2020-09-30 04:41:59 +02:00
Robin Gareus
5e882afe10
Fix dereferencing empty vectors
2020-09-30 03:18:19 +02:00
Robin Gareus
71212e0c81
Remove debug/profile message in optimized builds
2020-09-29 16:46:29 +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
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
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