1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-05 03:50:07 +00:00
Commit graph

1157 commits

Author SHA1 Message Date
reuk
cfec0b5356
GenericAudioProcessorEditor: Add support for grouped parameters 2021-09-27 15:44:48 +01:00
reuk
3d1d060317
AudioPluginInstance: Add API to retrieve parameter IDs from hosted plugins 2021-09-27 15:44:47 +01:00
ed
300f573163 PluginHostType: Add Ableton Live 11 detection 2021-09-23 10:21:02 +01:00
ed
d589f65b36 AUv3: Fall back to view size if AUViewControllerBase preferredContentSize property has a zero size when opening plug-in editor 2021-09-22 13:52:56 +01:00
ed
ada1b2d693 AU: Reset plug-in host callbacks in prepareToPlay() in case they were removed when uninitialising or resetting the audio unit 2021-09-22 13:52:36 +01:00
Tom Poole
bc75010116 Bump version number to 6.1.2 2021-09-20 12:15:47 +01:00
Tom Poole
f1fecfdc88 Add some missing Doxygen tags 2021-09-20 11:36:56 +01:00
reuk
0a288fc71e
AU Host: Fix bug where modifying parameters from a custom editor would sometimes update incorrect parameters in the host
This issue could be seen when modifying the "OSC FmModSrc" parameter of
U-He Diva AU from the custom editor in the AudioPluginHost. The
parameter display in the generic parameter editor did not update
properly because the wrong parameter was marked as changed.
2021-09-14 19:36:57 +01:00
ed
24910cc4b4 Fix GCC Wshadow warnings 2021-09-14 08:42:56 +01:00
ed
1d55452b78 VST3 Host: Ensure that plug-ins without IPlugViewContentScaleSupport support are resized correctly when the native scale factor changes 2021-09-13 11:47:34 +01:00
ed
f17425c880 VST3 Host: Be more forgiving of internal parameter IDs in beginEdit/performEdit/endEdit methods 2021-09-13 11:47:34 +01:00
ed
3f699f5b14 VST3 Host: Only call onSize() in resizeView() if the size has changed
This fixes a recursive resizeView()->onSize()->resizeView() loop in Arturia Pigments as it immediately calls resizeView() with the same size.
2021-09-13 11:47:24 +01:00
ed
598748c825 VST3 Host: Call updateMidiMapping() after enabling plug-in MIDI busses in setupIO()
This fixes a crash in Roland Cloud plug-ins due to calling methods on the IMidiMapping interface before it was initialised.
2021-09-13 11:47:10 +01:00
Tom Poole
5109e30c6f Bump version number to 6.1.1 2021-09-09 12:51:15 +01:00
reuk
4f5c559ce2
VST3 Host: Ensure that program parameter is updated in response to program change requests 2021-09-07 11:30:19 +01:00
reuk
5dfae8b58b
VST3 Host: Update parameter values after plugin requests restart with kParamValuesChanged 2021-09-01 10:58:50 +01:00
Tom Poole
46fe3789fc Bump version number to 6.1.0 2021-08-23 09:55:56 +01:00
Tom Poole
9ac96840aa Fix some Doxygen warnings 2021-08-23 09:17:53 +01:00
reuk
5ea5afbd2a
VST Host: Avoid resizing plugin views directly on Windows
Previously, plugin views may be set to unexpected sizes by the host,
which could interrupt size updates due to scale factor changes. This
could leave the plugin view at an incorrect size.
2021-07-30 09:17:11 +01:00
reuk
e7d608aa48 VST3 Host: Ensure that editors open correctly on monitors with non-unity scaling 2021-07-28 19:28:34 +01:00
reuk
8f29b2cb83
VST3: Allow plugins to designate the first input bus as Aux rather than Main
To use this feature, derive your AudioProcessor from
VST3ClientExtensions and override getPluginHasMainInput() to return
false. The main input bus will then be designated as an Aux bus, rather
than a Main bus.

This is mainly useful for synth plugins like vocoders, which may need a
sidechain audio input, but which should replace all audio on the channel
with the output of the synth, rather than mixing with the audio input.
2021-07-27 15:10:53 +01:00
ed
cffb544941 UMP: Remove juce_audio_devices dependency 2021-07-27 12:32:22 +01:00
reuk
4980788516
AudioProcessor: Add checks to ensure AAX parameter ID compatibility
The AAX SDK already checks for truncated IDs internally. If any ID is
truncated, details will be written to Pro Tools' log file (you may need
to enable logging first). Search for "AAX_ASSERT" in the log to find
triggered assertions.
2021-07-23 10:58:44 +01:00
ed
551d7b9c5b Add MessageBoxOptions class for specifying a set of AlertWindow and NativeMessageBox options
- Add AlertWindow::show() and showAsync() methods that take a MessageBoxOptions argument
  - Add NativeMessageBox::show() and showAsync() methods that take a MessageBoxOptions argument
  - Update the DialogsDemo to demonstrate the new methods
  - Deprecate AlertWindow::showNativeDialogBox() in favour of the NativeMessageBox methods
  - Pass button strings specified in MesssageBoxOptions to native dialog boxes correctly
  - Use modern TaskDialog on Windows for the native dialog box where available
2021-07-21 16:34:12 +01:00
Tom Poole
3ebd548aac VST3: Ignore VS2015 static analysis warning in VST3 SDK 2021-07-20 11:48:06 +01:00
ed
a2d03d2266 Fixed some warnings flagged by Clang's static analyzer 2021-07-19 15:48:31 +01:00
reuk
aba8c8c1d3
VST Host: Allow specifying the host name for VST hosts which do not have an Application instance
To set a custom host name, add a preprocessor definition for
JUCE_VST_FALLBACK_HOST_NAME.
2021-07-14 14:47:56 +01:00
ed
a5c3b81f82 Use C++14 lambda capture initialisers for initialising deletion checkers 2021-07-12 11:58:29 +01:00
Tom Poole
d53388097b AudioProcessorGraph: Improve performance when building large graphs 2021-07-08 10:47:36 +01:00
reuk
750cb92770
AU Client: Fix AU plugins misreporting their supported channel configurations 2021-06-25 12:38:17 +01:00
Tom Poole
78be43888e Update the minimum C++ standard to C++14 2021-06-24 16:09:48 +01:00
reuk
2c1081d2a8
VST Host: Fix graphical artefacts when resizing editor views on Windows 2021-06-21 19:05:40 +01:00
reuk
3f914b667e VST Host: Respect the editor size requested by plugin 2021-06-16 11:35:26 +01:00
reuk
a37f5f23c1
VST3 Host: Avoid re-sending parameter values after loading a preset 2021-06-11 15:19:47 +01:00
reuk
bfb521b610
AudioProcessorEditor: Allow showing a host-provided parameter menu in VST3 plugins 2021-06-11 11:12:35 +01:00
reuk
63a40188d9
AudioProcessor: Add extensions API for VST3 clients 2021-06-11 10:53:26 +01:00
reuk
442369bd6b
AudioPluginInstance: Add new API to query properties of hosted plugins 2021-06-11 10:53:26 +01:00
reuk
7ac6911ccc
Windows: Fix clang/gnu compiler warnings 2021-06-03 17:30:44 +01:00
reuk
31a7c62baf
Windows: Fix and suppress some analysis warnings
This fixes warnings that are emitted when building with the `-analyze`
flag enabled.
2021-05-26 15:34:26 +01:00
ed
b9ae71ae8f AudioProcessorEditor: Fixed a bug introduced in 5a59c92b causing editors to always be marked as resizable by the host when using the default ComponentBoundsConstrainer 2021-05-26 09:21:13 +01:00
reuk
1124ec146d VSTPluginFormat: Fix rare crash where plugins may attempt to read uninitialised pointers 2021-05-14 16:55:02 +01:00
reuk
972c45a76e
VST3: Remove noisy warnings from VST3 SDK 2021-05-13 12:10:07 +01:00
reuk
900282ccf3
MinGW: Fix warnings and errors emitted when building VST3 plugins 2021-05-13 12:10:06 +01:00
reuk
52e6c4f727
VST3: Update VST3 SDK files 2021-05-13 12:10:06 +01:00
reuk
d31a1ee3ee
VST3 SDK: Revert JUCE modification to fplatform.h 2021-05-13 12:10:06 +01:00
reuk
47c7751750
VST3 Host: Avoid calling IMidiMapping functions on the audio thread 2021-05-12 11:14:35 +01:00
reuk
c8dae58fd2
VST3 Host: Avoid calling processBlock, prepareToPlay, and releaseResources simultaneously
The old design had us checking isActive inside our audio callbacks, and
also modifying isActive from prepareToPlay(), and releaseResources(). To
avoid race conditions, and to ensure that isActive actually reflects the
activation state of our plugin, we need to lock in these places. If we
don't lock, there's a chance that other threads will observe isActive to
be true while the plugin is not actually active (for example).

If you're not convinced, imagine this scenario:
- The message thread calls prepareToPlay. The plugin is activated.
- The audio thread starts calling processBlock, and gets as far as the
  isActive check. The plugin appears active, so we continue into
  processBlock.
- At the same time, the message thread calls releaseResources(). The
  processBlock call is still in progress, but the message thread is
  simultaneously making calls to setProcessing() and setActive(), which
  is a race.

Normally, it'd be up to the host of the AudioProcessor to ensure that
prepareToPlay() isn't called at the same time as processBlock().
However, VST3 plugins can request a restart at any time from the UI
thread, requiring us to call prepareToPlay() even while processBlock()
is running.
2021-05-12 11:14:34 +01:00
reuk
1df59f7469
VST3 Host: Only send updates for modified parameters 2021-05-07 10:10:53 +01:00
reuk
f35c2d90e2
VST3 Host: Ensure AudioProcessor parameter indices are used when appropriate
Previously, IEditController parameter indices were being used to index
into the AudioProcessor parameter array, but these parameter indices are
not guaranteed to point to the same parameter (parameter groups may
cause reordering on JUCE's side). Now, we use the IEditController
indices universally.
2021-05-06 16:04:22 +01:00
reuk
0f690662d8
AutoResizingNSViewComponent: Fix display issues for certain plugin views
Previously, the following plugins were causing issues when hosting their
editors:

- Softube plugins. I used Saturation Knob for testing, which crashed when
  deleting the temporary parent view.
- KORG Gadget series, which displayed a black screen after the temporary parent
  view was deleted.
- FabFilter Pro-C, which displayed at the wrong scale when opened on a
  retina display.
2021-05-06 15:51:09 +01:00