1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-14 00:14:18 +00:00
Commit graph

1081 commits

Author SHA1 Message Date
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
reuk
6db900926b
VST3 Client: Fix issue where host failed to receive latency change notifications
In cases where a VST3 plugin set a non-zero latency in its
prepareToPlay, and then set its latency to 0 later on, the host was not
notified about the latency change.
2021-05-21 16:30:18 +01:00
reuk
2f04d6a846
VST3 Client: Fix leak caused by unnecessary manual refcounting
In older versions of the VST3SDK, hostContext is a raw pointer,
in newer versions it's a smart pointer. If we do manual
refcounting with the smart pointer, we may cause leaks.
2021-05-21 16:29:48 +01:00
Tom Poole
bfdda737a2 Projucer: Removed the live build 2021-05-14 12:54:07 +01:00
reuk
900282ccf3
MinGW: Fix warnings and errors emitted when building VST3 plugins 2021-05-13 12:10:06 +01:00
reuk
40fa4ff90c
AU Client: Fix variable naming 2021-05-12 15:54:53 +01:00
reuk
47c7751750
VST3 Host: Avoid calling IMidiMapping functions on the audio thread 2021-05-12 11:14:35 +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
ed
c9731d4827 AUv3: Removed a duplicate statement in getCurrentPosition() 2021-04-29 17:31:33 +01:00
reuk
0e7fd1b909
StandalonePluginHolder: Fix out-of-bounds read when audio callbacks use larger-than-expected buffers 2021-04-28 12:59:08 +01:00
reuk
0e47da1474
VST Client: Ensure audioMasterIOChanged is sent when latency is updated 2021-04-28 09:57:12 +01:00
ed
a8aafed53d Removed some unnecessary virtual keywords 2021-04-27 15:56:01 +01:00
ed
a1337a3863 VST3: Workaround incorrect VST3 editor ref-count bug in Adobe Audition
Audition incorrectly increments the ref-count of the IPlugView* returned from IEditController::createView() and never fully releases it. This commit reverts e0306d25 for Audition to ensure that an editor is always returned, otherwise Audition displays a blank GUI.
2021-04-22 12:20:07 +01:00
reuk
75ed712b19 AU Wrapper: Fix build errors when using PreferredChannelConfigurations 2021-04-19 22:32:51 +01:00
reuk
965f14311d
AUv3 Wrapper: Tidy up sample rate detection 2021-04-19 14:37:38 +01:00
reuk
cafb437762
AU Wrapper: Use correct sample rate for MIDI FX with no buses
MIDI FX AudioUnits can retrieve their current sample rate from an output
bus. However, it's reasonable for a JUCE MIDI FX plugin to require 0
output buses, in which case the correct sample rate cannot be retrieved.

This patch modifies the AU wrapper to ensure that MIDI FX plugins will
always have at least one output bus. This bus does not necessarily
correspond to a matching bus in the AudioProcessor, and it will not be
passed to AudioProcessor::processBlock. With the output bus in place,
the correct sample rate is reported in `prepareToPlay`.
2021-04-19 14:37:38 +01:00
ed
a06063dfd7 VST3: Added a missing return in the previous commit 2021-04-14 11:44:13 +01:00
ed
b1294fdadb VST3: Call setComponentState() on message thread on Linux 2021-04-13 16:25:43 +01:00
ed
dbf5789cda Linux: Fixed a compile error when building VST3 plug-ins with JUCE_MODAL_LOOPS_PERMITTED=0 2021-04-13 16:25:26 +01:00
reuk
6832dca430 StandaloneFilterWindow: Auto-resize settings dialog when IO options change 2021-04-11 17:09:57 +01:00
ed
04fdc4c209 Standalone: Add a dummy output channel to MIDI effect plug-ins 2021-04-09 16:45:28 +01:00
reuk
361f839546
VST3 Client: Avoid calling performEdit from the audio thread
Previously, all VST3 parameter changes were signalled to the host via
performEdit, regardless of the originating thread. This breaks the
contract of the IEditController interface, which requires that all calls
are made from the UI thread.

This change modifies the VST3 wrapper so that it will only call
performEdit when a parameter is set on the message thread. If a
parameter is set on the audio thread instead, then the parameter change
will be signalled to the host using
`ProcessData::outputParameterChanges`.

If your VST3 plugin uses a background thread to update parameters for
some reason, you'll encounter data races. Please don't do that.
2021-04-09 12:19:22 +01:00
reuk
c507ec9e73
VST3 Client: Ensure IComponentHandler::restartComponent is only called from the UI thread
When loading a JUCE plugin in Live, Live was producing diagnostic
messages in its Log.txt warning that restartComponent was being called
from a non-UI thread. This change should silence this warning, and
improve compliance with the VST3 spec.
2021-04-09 12:19:22 +01:00
reuk
44441d3d79
VST2: Prefer unique_ptr to manual delete calls 2021-04-08 13:33:12 +01:00
ed
0aeee97b91 VST3: Reduced the scope of some MessageManagerLocks on Linux/BSD 2021-04-08 11:51:41 +01:00
ed
efd52398d1 VST3: Use shared MessageThread on Linux to run the message loop when host run loop interface isn't available 2021-04-08 11:51:41 +01:00
ed
33f37847bc VST: Use RAII initialisation for JUCE GUI and SharedResourcePointer for MessageThread 2021-04-08 11:51:41 +01:00
ed
ab90229583 VST: Pulled Linux SharedMessageThread out into its own file 2021-04-08 11:51:41 +01:00
Tom Poole
60e13bec0c Allow use of an external VST3 SDK on BSD 2021-04-01 08:39:25 +01:00
ed
af4b727b8a VST3: Fixed an assertion when JUCE_FORCE_LEGACY_PARAM_IDS=1 due to getProgramParameter() returning the wrong parameter 2021-03-29 17:02:00 +01:00
Tom Poole
79fbde7099 Added preliminary support for FreeBSD 2021-03-29 14:16:46 +01:00
ed
d8004e2e2b Docs: Fixed a few switched "namespace juce" comments 2021-03-29 09:22:01 +01:00
ed
4b5a67f067 VST3: Fixed bypass and program parameter indices when JUCE_FORCE_USE_LEGACY_PARAM_IDS=1 and AudioProcessor::getBypassParameter() is implemented 2021-03-29 09:20:35 +01:00
Tom Poole
ef5608654d VST3: Fixed a bug loading plug-ins 2021-03-26 10:31:45 +00:00
Tom Poole
a9ad07a945 Use RAII for CFTypes 2021-03-25 15:48:35 +00:00
Tom Poole
4c58e50f2e Bump version number to 6.0.8 2021-03-22 09:24:48 +00:00
ed
71b8885460 VST3: Fixed a crash accessing the program parameter when JUCE_FORCE_USE_LEGACY_PARAM_IDS=1 2021-03-22 08:34:10 +00:00
ed
914119eca5 Standalone: Avoid hitting an assertion when setting resize limits 2021-03-16 17:17:38 +00:00
reuk
7b6ad28b46
AUv3 wrapper: Allow host to resize editor view 2021-03-15 19:23:02 +00:00
ed
7d71efe6e0 Standalone: Use AudioProcessorEditor::setBoundsConstrained() when setting editor bounds 2021-03-12 18:25:37 +00:00
ed
db618477ff Standalone: Respect AudioProcessorEditor resize limits 2021-03-12 18:25:33 +00:00
reuk
df06a471c0
AudioProcessorPlayer: Support a greater variety of IO configurations
Previously, the AudioProcessorPlayer would always match the
AudioProcessor's bus configuration to the requested bus configuration,
even if the processor did not explicitly support the requested
configuration.

Now, if the requested configuration has one or fewer input channels, the
AudioProcessorPlayer will attempt to find a multi-input channel layout
for which `checkBusesLayoutSupported` returns true, and will use such a
layout if it exists. Otherwise, as a last resort, it will fall back to
using the channel layout requested by the AudioProcessorPlayer.

If the AudioProcessorPlayer has no input channels, but the wrapped
processor is initialised with multiple input channels, each of these
inputs will be fed with silence.

If the AudioProcessorPlayer has a single input channel, but the wrapped
processor is initialised with multiple input channels, each input
channel will be fed with a copy of the AudioProcessorPlayer's mono
input.
2021-03-12 18:05:56 +00:00
ed
34f8afbbca Set standalone plug-in window as resizable based on AudioProcessorEditor::isResizable() 2021-03-11 15:12:02 +00:00
reuk
c7feb75b97
PluginHostType: Use the name of the bridged hosting process to determine host
This patch also moves PluginHostType into juce_audio_processors in order
to allow hiding of function implementations.
2021-03-11 11:03:57 +00:00
reuk
1b4960b5bf
PluginHostType: Fix host reporting in bridged hosts on M1
Reports the correct host name for Apple hosts on M1 which host plugins
in a separate process.

Affected hosts are:
- Logic Pro
- GarageBand
- MainStage
- Final Cut Pro
2021-03-10 18:07:22 +00:00
reuk
e0306d25d4
VST3 Client: Disallow creating a new editor if one editor is already active 2021-03-08 15:36:50 +00:00
ed
8140442746 VST: Removed an old workaround causing plug-in editor window position issues on macOS 2021-03-05 18:40:03 +00:00
reuk
75fae3bf21
AU: Fix midi output to use correct packet alignment on ARM 2021-03-02 11:15:51 +00:00
ed
e813531d9b VST3: Fixed an issue with jumpy resizing when using a fixed aspect ratio 2021-02-26 09:35:19 +00:00
reuk
10c77ce296
AAX: Set nonrealtime state appropriately when rendering with AudioSuite 2021-02-24 12:41:37 +00:00