1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

1446 commits

Author SHA1 Message Date
reuk
9b73f07e07 AUv3 Client: Add support for MIDI sysex input 2024-12-08 22:25:11 +00:00
reuk
330792dcee AUv3 Client: Use MIDIEventList for output 2024-12-08 22:25:11 +00:00
Anthony Nicholls
7ab382d357 VST3 Client: Remove unhelpful jassert 2024-11-28 11:09:03 +00:00
Anthony Nicholls
6b08ced201 VST3: Add support for parameter migration 2024-11-27 11:07:04 +00:00
reuk
6e910d8010
VST2 Client: Avoid C-style casts of function pointers 2024-11-21 13:41:08 +00:00
reuk
04fa895f38
AAX Client: Enable host-provided editor when plugin does not supply an editor 2024-11-21 13:41:08 +00:00
reuk
4e6440c3d7
AAX Client: Remove channel layout compatibility checks
It's important that the plugin always returns the full set of available
components.

The plugin may be scanned by a separate process from the 'main' DAW
process, and these processes may report different compatibility levels.
If the scanner has more restricted compatibility than the 'main' DAW
process, then some channel layouts may not be registered, and will be
hidden in the DAW.
2024-11-21 13:40:56 +00:00
reuk
0aaaea265a
AU Client: Ignore availability warnings for MIDIEventList functions
Xcode 13.2.1 warns on these functions, despite the lambdas being
declared inside an @availability-checked block.
2024-11-21 13:29:53 +00:00
Tom Poole
71af005543 Bump version number to 8.0.4 2024-11-18 10:12:15 +00:00
reuk
a7e9edb2e9
StandaloneFilterWindow: Update implementation of getInstance to avoid iterating through desktop windows 2024-11-05 13:28:08 +00:00
reuk
1189687611
AAX Client: Add support for AAX_EPlugInCategory_MIDIEffect, added in AAX SDK 2.6.1
This change also bumps the minimum supported AAX SDK to 2.6.1
2024-10-28 11:12:47 +00:00
reuk
efb0daf2e9
Standalone: Fix typo in standalone wrapper 2024-10-23 12:32:24 +01:00
reuk
ee641f7baf VST2 Client: Avoid data race on appDelegate pointer
Previously, it was possible for the Timer destructor to run after the
last ScopeJuceInitialiser_GUI destructor, which meant that timer
callbacks could continue to be fired (via the appDelegate pointer) after
the static appDelegate instance had been destroyed.

With this change in place, we now ensure the Timer is destroyed before
the ScopedJuceInitialiser_GUI.
2024-10-21 21:54:30 +01:00
reuk
4a87eb3c40
AAX Client: Query processor instead of relying on JucePlugin_IsMidiEffect 2024-10-21 12:28:56 +01:00
reuk
499abb7637
VST Client: Query processor instead of relying on JucePlugin_IsMidiEffect 2024-10-21 12:28:56 +01:00
reuk
64823f2d37
LV2 Client: Query processor instead of relying on JucePlugin_IsMidiEffect 2024-10-21 12:28:55 +01:00
reuk
436100c94b
AU Client: Replace use of JucePlugin_IsMidiEffect with AUMainType
An audio unit with main type aumi should always have a MIDI input and
output, regardless of how IsMidiEffect is set.
2024-10-21 12:28:55 +01:00
reuk
103ac55b92
AU Client: Refactor scopeToDirection 2024-10-21 12:28:55 +01:00
reuk
1f56562652
StandaloneFilterWindow: Allow plugin to run when no display is present
This is useful on headless Linux systems. When no display is attached,
window creation is bypassed but a StandalonePluginHolder is still
created, allowing audio to be processed.
2024-10-21 12:28:55 +01:00
reuk
420922253f
StandaloneFilterWindow: Avoid null pointer dereference when displays array is empty 2024-10-21 12:28:55 +01:00
Tom Poole
14c8d06fb0 Bump version number to 8.0.3 2024-10-15 22:16:12 +01:00
attila
2c9b15e52c VST3 Client: Fix drifting and growing windows due to inaccurate constrainer operations
The input coordinates were unnecessarily converted and truncated to
integral values before follow up calculations, and then a final
conversion back to integral values.
2024-10-01 13:53:25 +02:00
reuk
d6e37d78b8
AAX Client: Update embedded SDK to 2.8.0 2024-09-30 20:37:43 +01:00
Tom Poole
7d3affbcb3 Merge master JUCE 8.0.2 branch 2024-09-26 12:43:39 +01:00
Anthony Nicholls
6c2d149ef3 Versioning: Add the JUCE version number to any internally created threads 2024-09-26 08:10:56 +00:00
Tom Poole
c1d2846e47 Bump version number to 8.0.2 2024-09-26 08:31:50 +01:00
reuk
555b667d22
ComponentPeer: Add isShowing() member, which more closely matches expected behaviour of Component::isShowing 2024-09-18 15:44:05 +01:00
Anthony Nicholls
18d904c6f3 VST3: Work around a bug in the SDK when detecting C++20 support 2024-09-05 20:33:13 +01:00
Anthony Nicholls
9b3a513ae3 VST3: Update SDK to 3.7.12 2024-09-04 15:49:36 +01:00
Anthony Nicholls
0802db13ee VST3: Support loading a VST2 state when a plugin implements getCompatibleClasses() 2024-08-24 08:38:10 +01:00
Anthony Nicholls
2c606d6612 VST3: Fix an issue migrating VST2 to VST3 states in Reaper
Reaper uses an undocumented version 0 of the fxbank struct, this could
be handled by JUCE but instead this solution switches to using methods
provided by the VST3 SDK to save and load VST2 states. This also has
the added benefit of no longer requiring the VST2 SDK to build a VST3
plugin that supports saving and loading VST2 states.
2024-08-24 08:38:10 +01:00
reuk
66aa42c9c0
VST3 Client: Fix parameter context menu in FL Studio
The change to the VST3 wrapper in
335f6e9591 broke context menu items in FL
Studio, so that clicking on a menu item had no effect. This could be
seen in the DSPModulePluginDemo example.

I'm not sure exactly what caused the breakage. Before the breaking
change, the menu remained alive until the point where the menu item was
triggered as it was leaked. After the breaking change, the IContextMenu
could be freed before a particular IContextMenuTarget was executed. My
guess is that FL Studio requires the menu to be alive when triggering a
particular menu item.

This change captures the IContextMenu inside the popup menu callback to
ensure that it remains alive until the PopupMenu is destroyed.
2024-07-31 19:36:51 +01:00
reuk
ebc91a7e22
VST3 Client: Add support for fetching IRunLoop from host context 2024-07-29 16:11:59 +01:00
reuk
695a51832b
VST3 Client: Fix issue where active run loops could be removed incorrectly
The same run loop may be registered multiple times, e.g. if the host
passes the same run loop pointer to multiple instances of the plugin.
When a particular run loop client goes out of scope, it should only
remove its own reference to the run loop, because other clients may
still be active and still using that run loop.
2024-07-29 16:11:59 +01:00
reuk
6cc8827174
VST3 Client: Remove unnecessary class/struct keywords 2024-07-29 16:11:58 +01:00
reuk
6d5f8976ad
VST3 Client: Tidy up unnecessary namespaces 2024-07-29 16:11:58 +01:00
Tom Poole
fc0fd3042f Bump version number to 8.0.1 2024-07-29 12:43:19 +01:00
reuk
b3fdcdc928
AUv3 Client: Allow auval to pass when plugin allows arbitrary matched input/output layouts 2024-07-11 16:56:20 +01:00
reuk
6fd7a928f9
AUv3 Client: Fix issue where creating a bus with no channels could fail
Previously, if the AudioProcessor had disabled buses, the AUv3 wrapper
would attempt to create zero-channel buses to represent the JUCE buses,
which failed.

With this change in place, disabled buses will be created with their
default layout, and then explicitly disabled.
2024-07-11 16:56:20 +01:00
reuk
c2b573293f
AUv3 Client: Use NSUniquePtr helper 2024-07-11 16:51:39 +01:00
reuk
b89553ae2c
Platform: Remove build-time Apple SDK availability checks 2024-07-03 13:50:08 +01:00
reuk
5391032238
Platform: Remove compatibility checks for iOS 11 2024-07-02 18:06:28 +01:00
reuk
6428f43eeb
Platform: Remove compatibility checks for iOS 10 2024-07-02 18:06:28 +01:00
reuk
9112911122
MinGW: Remove support 2024-06-27 18:10:21 +01:00
reuk
fd01869cfd
AU Client: Avoid creating ModalComponentManager during shutdown
The ScopedJuceInitialiser may have been destroyed before shutdown is
called, in which case singletons will have been deleted and cleared.
Attempting to access the ModalComponentManager here will recreate it,
and will trigger a leak detector warning later on.
2024-06-20 17:52:23 +01:00
reuk
1d90ea72e7
VST3 Client: Update ParameterInfo default value and numSteps when AudioProcessor changes 2024-06-12 19:16:31 +01:00
reuk
bf384427d1 AU Client: Avoid repetition of function implementations 2024-06-12 11:24:16 +01:00
reuk
9c192940e0
VST3 Client: Avoid returning kResultNotImplemented from setComponentState
The base implementation of this function does nothing, and returns 'not
implemented'. It is more correct to return 'ok', to indicate that
setting the component state succeeded.
2024-06-11 11:34:04 +01:00
reuk
ebae624d52
VST3: Update SDK to 3.7.11 2024-06-11 11:34:03 +01:00
Tom Poole
9883d0c48a
Add AAX license file 2024-05-23 13:41:59 +01:00