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

1214 commits

Author SHA1 Message Date
reuk
c229d160f9
PluginDescription: Fall back to using deprecatedUID in createIdentifierString() if the new uniqueID is not known 2022-02-23 10:56:10 +00:00
reuk
ec867690b7
VST3: Fix leak when setting/getting state via extensions mechanism 2022-02-18 16:43:27 +00:00
reuk
72fa2d98e1
AU Wrapper: Ensure that correct input channels are cleared before processing 2022-02-18 16:43:26 +00:00
reuk
1bf9ebb4b1
VST3 Host: Avoid calling initialize twice on objects that implement both IComponent and IEditController 2022-02-18 16:43:26 +00:00
reuk
a3c55a967f
VST3 Host: Only call IPlugView::removed() if a previous call to attached() succeeded 2022-02-18 16:43:26 +00:00
reuk
068dffdb8c
AudioProcessorEditorHostContext: Fix naming of getContextMenuForParameter 2022-02-18 16:43:25 +00:00
reuk
903873dad2
VST3: Add local search path on Windows
We haven't updated the default post-build copy paths yet, as the new
local directory is not yet well-supported by DAWs.
2022-01-28 16:09:59 +00:00
reuk
ad94a69263
GenericAudioProcessorEditor: Refresh parameter value text when parameter info changes
When plugins change their 'parameter info' this often means that their
previous parameter text is no longer valid, so we should fetch new text
to represent the parameter value.

This change was primarily tested with Kontakt.
2022-01-28 16:09:59 +00:00
reuk
70b667281f
AU Host: Refresh parameter names and labels when requested by the plugin 2022-01-28 16:09:58 +00:00
reuk
093dbc7df1
Plugin Scanning: Fix thread sanitizer issues in the AudioPluginHost 2022-01-27 18:43:22 +00:00
reuk
6c046ffc04
AudioPluginHost: Allow out-of-process scanner to scan AUv3 plugins 2022-01-27 18:43:21 +00:00
reuk
b80927fc91
Nodiscard: Add to builder-pattern functions 2022-01-27 18:43:21 +00:00
reuk
3d1818f5bd
AU Host: Correctly reorder hosted audiounit channels
This change was tested with FabFilter Pro Q 3, which supports new AU
channel layouts for Atmos.
2022-01-27 18:43:21 +00:00
Tom Poole
3c03693d07 Bump version number to 6.1.5 2022-01-26 13:00:05 +00:00
Tom Poole
c072b1bc8e Fix some typos 2022-01-25 11:48:46 +00:00
ed
e0e8e85d6b Add KeyboardComponentBase class for custom MIDI keyboard components and MPEKeyboardComponent class 2022-01-21 14:44:14 +00:00
reuk
640194c878
MinGW: Improve compatibility
With this patch applied, the DemoRunner should build under MinGW, and be
(nearly) feature-complete compared to the MSVC build.

Specifically, when building with MinGW:
- Adds support for accessibility
- Fixes build issues in the juce_video module
- Fixes a link issue in the VST3 wrapper when VST3_CAN_REPLACE_VST2 is
  defined
- Adds support for the new-style native FileChooser
- Tidies up some other low-severity warnings

Known issues:
- Direct2D rendering is still not supported when building with MinGW due
  to ABI compatibilities.
2022-01-17 10:58:18 +00:00
reuk
fc378aaf9a
AU Client: Avoid AudioBuffer assertion when plugin has no audio channels 2022-01-17 10:58:17 +00:00
reuk
43280c3f7f
AU: Tidy up ChannelRemapper 2022-01-10 22:15:19 +00:00
Tom Poole
8a6e1980d0 Bump version number to 6.1.4 2021-12-20 11:06:15 +00:00
reuk
44404508fe Bump version number to 6.1.3 2021-12-08 15:26:08 +00:00
reuk
3581e2aa7e Documentation: Add doxygen guards to Steinberg namespace 2021-12-08 15:26:07 +00:00
reuk
d26945f476
ObjC Helpers: Ensure that all methods accept mandatory "self" and "selector" arguments 2021-12-07 19:08:11 +00:00
ed
3e542f3465 VST: Fix incorrect upper bound of jlimit() in getProgramName() 2021-12-02 09:24:55 +00:00
ed
7c609484e8 AU: Set plug-in host callbacks immediately after calling releaseResources() in prepareToPlay() in case the audio unit relies on them during initialisation 2021-12-02 09:24:55 +00:00
reuk
ed1bc944fd
AudioChannelSet: Add 7.1.6 speaker layout 2021-11-25 11:42:40 +00:00
reuk
8a95fb1c82
SliderParameterAttachment: Allow right-click to change parameter value
Previously, right-clicking on a slider could change its value, but the
parameter value would not be changed, leaving the slider in a different
state to the parameter.
2021-11-24 16:20:36 +00:00
reuk
7828cad753
VST2 Host: Fix window titlebar repainting when editor sizes change
When opening the "settings" menu of Arturia Pigments VST2, the editor
window would move itself over the JUCE non-native titlebar in the
AudioPluginHost. Then, when the editor was moved back into the correct
location, the titlebar would not be redrawn, leaving it in an incorrect
state.

This change forces a repaint of the editor's peer whenever the size
changes, forcing the titlebar to repaint after the editor has moved.
2021-11-24 16:20:36 +00:00
reuk
2884610d01
VST2 Host: Respect high DPI plugin sizes on Linux 2021-11-24 16:20:36 +00:00
reuk
6de3af3566
AU: Make channel/bus handling more robust 2021-11-24 16:20:35 +00:00
reuk
81fa777ff7
ObjC Helpers: Automatically derive appropriate signature for function 2021-11-24 11:51:11 +00:00
reuk
b13bbbefb3
AudioChannelSet: Add atmos layouts 2021-11-19 16:35:22 +00:00
reuk
718307b516
AudioPlayHead: Use more descriptive FrameRate type 2021-11-19 16:35:22 +00:00
reuk
555408be40
VST3 Host: Avoid resusing IMessage and IAttributeList instances
This fixes an issue where the editor of VocAlign Project 5 would fail to
open in the AudioPluginHost.
2021-11-01 10:04:34 +00:00
attila
63ac579c1b VST3 Client: Fix build when JUCE_VST3_CAN_REPLACE_VST2 is enabled 2021-10-14 18:56:18 +02:00
reuk
7da8b73a96
AudioPluginHost: Add subprocess plugin scanning feature 2021-10-14 16:56:20 +01:00
reuk
1f15f59db6
AudioUnitPluginFormat: Fix result of hasEditor on Mac
Fixes a bug introduced in 7d1918b385,
where Ozone 9's editor failed to open correctly in the AudioPluginHost.
2021-10-14 13:15:25 +01:00
reuk
b5064f361f
HostedAudioProcessorParameter: Extract from AudioPluginInstance 2021-10-14 13:15:25 +01:00
reuk
d59230aecc
AudioPluginFormat: Remove canScanOnBackgroundThread(), as it is not generally useful 2021-10-14 12:40:25 +01:00
ed
7d1918b385 macOS/iOS: Replace compile-time deployment target checks with runtime checks using the available keyword 2021-10-13 15:06:18 +01:00
Attila Szarvas
50f3415885 ExtensionsVisitor: use forward declared types instead of void* for format-specific pointers 2021-10-12 11:47:18 +00:00
reuk
d286e690b2
PluginListComponent: Disallow scanning VST3 plugins on background threads
Native Instrument VST3s (I tested Kontakt and Supercharger) crash when
the bundleEntry function is called from a background thread on macOS.
This change disables scanning for VST3 plugins on a background thread
using the PluginListComponent, to allow loading these plugins in the
AudioPluginHost.

I can't find any "official" word on whether the bundleEntry and
bundleExit functions should be guaranteed to be made from the main
thread. However, the VST3PluginTestHost app seems to call these
functions exclusively from the main thread.
2021-10-07 14:31:26 +01:00
reuk
96612b12d8
VST Host: Ensure parent window is showing before attempting to open an editor
This fixes an issue with NI Raum and Choral where the editors would open
in a new window, rather than in the same window as the VST
AudioProcessorEditor.
2021-10-06 16:59:08 +01:00
reuk
294caba2b5
VST3: Add dirty-state set/get
Adds a mechanism to notify the host that the plugin state needs saving,
using updateHostDisplay.

Also allows JUCE hosts to detect when a plugin needs its state saving
via the AudioProcessorListener.
2021-10-06 16:59:07 +01:00
reuk
832bbed8c3
VST3: Fix error when building VST3 plugins
On macOS 10.15, stdatomic.h (included by the VST3 SDK) defines a macro
named atomic_thread_fence when building in C++20 mode. This macro was
trampling over a call to std::atomic_thread_fence from the C++ atomic
header, made in juce_Atomic.h.

No JUCE implementation files use the C11 atomic functions, so I think
it's safe to just undef the problematic symbol after including all the
VST3 implementation files.
2021-10-06 16:59:07 +01:00
reuk
462c3a8dd4
VST Host: Ensure editor windows open at correct size
Previously, on hi res displays, "Plogue AlterEgo" was opening with a
window that was too large, because the window size was applied before
the scale factor was known. When the scale factor was updated, the
window size was not changed if the window was hidden, so the window
would remain too large when it was shown.
2021-09-30 16:58:23 +01:00
reuk
8f1ba916ff
VST3 Host: Set content scale before opening plugin window for the first time
Some plugins (e.g. FabFilter Pro-C 2) will reopen their windows at their
previous size, but without accounting for a new scale factor. For these
plugins, we need to explicitly set a scale factor of 1 before calling
getSize for the first time, in order to ensure that the plugin knows it
should return its desired unscaled size, and not its size at the scale
factor it was using last.

Other plugins (Surge) misreport their desired size when it is requested
before the window has become visible. For these plugins, we need to
re-request the plugin's desired window size after it has opened.

The problems above are mostly noticeable when opening/reopening plugins
on a hi-DPI display on Windows.
2021-09-30 16:57:11 +01:00
reuk
61cdcff2e9
VST3 Host: Ensure requested size is applied, even when plugin does not support scaling
This fixes some issues with Izotope Ozone 9:
- Resizing would stutter, and could leave the view in an inconsistent
  state.
- Closing and reopening the view after resizing would display black bars
  around the editor view.

The root of the problem was that the call to Component::setSize() inside
the resizeView call checked whether the plugin supported resizing. If
not, it would force the embedded view back to the current size. This
behaviour is incorrect - if the plugin requests a resize via resizeView,
the new size should be applied whether or not the plugin "supports
resizing".
2021-09-30 14:19:27 +01:00
reuk
ebf86b5f35
VST3 Host: Correctly size unscalable editors when DPI changes 2021-09-30 14:19:27 +01:00
reuk
9bec8e633a
VST3 Host: Ensure that plugins open with their top left corner in the right position
This fixes a bug on Windows where plugins that do not implement the
IPlugViewContentScaleSupport interface opened in the AudioPluginHost
with their editors in the very top left corner of the window, rather
than below the window's titlebar.

Examples of plugins with no scaling support, suitable for reproducing
the issue:
- U-He Hive 2.1.1 Rev 12092 x64
- FabFilter Pro-C 1.23 x64
2021-09-30 14:19:26 +01:00