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

141 commits

Author SHA1 Message Date
reuk
51c4a484ee
juce_audio_processors: Exclusively use JUCE_INTERNAL_HAS_* macros in place of JUCE_PLUGINHOST_* macros
This change also moves the PLUGINHOST config flags to the
juce_audio_processors_headless module header, as this is now the
lowest-level module that uses these flags. This change shouldn't require
any Projucer/CMake changes.
2025-09-25 18:38:27 +01:00
attila
e87d4a52e6 Add VS2026 build to PIP demos 2025-09-18 20:51:02 +02:00
reuk
50b51f512a
juce_audio_processors_headless: Remove juce_graphics dependency 2025-09-17 12:50:08 +01:00
reuk
426b74fcf7
AudioPluginFormatManager: Replace addDefaultFormats function() with non-member 2025-09-17 12:50:07 +01:00
reuk
1f5d09d3fc
PIP: Add missing dependency to plugin PIPs 2025-09-17 12:50:07 +01:00
attila
9feee44070 AUv3SynthPluginDemo: Use the new AudioFormat::createWriterFor overload 2025-06-12 20:02:33 +02:00
reuk
e555a171f5
AudioPluginDemo: Enable double-precision processing 2025-04-10 17:28:17 +01:00
Oliver James
9b959bd223 AudioProcessor: Use std::optional in TrackProperties 2024-12-19 13:36:35 +00:00
reuk
8ae3bffe82
Whitespace: Fix whitespace and line endings in cmake files 2024-11-05 17:56:39 +00:00
attila
853e2052ff Use WebViewLifetimeListener in WebControlRelays 2024-08-26 15:30:58 +02:00
reuk
17fe23c95f
SamplerPluginDemo: Add defensive checks in constructor to guard against missing sample resource 2024-07-11 16:51:38 +01:00
Tom Poole
cb439c51b8 Remove a reference to VS2017 2024-07-01 10:13:33 +01:00
attila
2540c807d8 WebViewPluginDemo: Implement AudioProcessorEditor::getControlParameterIndex 2024-06-06 13:48:51 +02:00
reuk
c5b428dfe9
VST3 Client: Add support for IParameterFinder interface
This allows hosts such as Cubase and MultitrackStudio to locate
parameters based on the current mouse position.

Users must override and implement getControlParameterIndex in order for
the parameter to be reported to the host.

The DSPModulePluginDemo shows one possible strategy for implementing
this function.
2024-05-08 17:53:52 +01:00
attila
8a9ce51b2a Move the WebViewPluginDemo from the GUI to the Plugins category 2024-04-26 14:07:55 +02:00
reuk
4f2c287f9b
Font: Deprecate old Font constructors 2024-04-18 14:16:00 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
attila
e6509fcb51 ARAPluginDemo: Fix potential crash during RegionSequence removal 2023-12-08 16:51:32 +00:00
attila
7392c2af2b ARAPluginDemo: Fix crash caused by missing willRemoveRegionSequence() implementation 2023-10-26 18:23:32 +02:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
Tom Poole
ff0cb4ad5b Use NullCheckedInvocation in more places 2023-10-02 13:40:10 +01:00
Tom Poole
9dd4857d10 Fix some LLVM 17 compiler warnings 2023-09-26 09:13:17 +01:00
Tom Poole
2fb19ffd8f Fix some LLVM 17 compiler warnings 2023-09-25 11:21:11 +01:00
Tom Poole
7d45d498b9 Removed some superfluous consts from definitions 2023-09-20 16:31:10 +01:00
Tom Poole
9b041f3d74 Add a base clang-tidy configuration 2023-09-18 11:24:19 +01:00
Tom Poole
82f1fd57a4 Fix some compiler warnings 2023-08-29 12:59:09 +01:00
Anthony Nicholls
bcb06af289 Examples: fix Reaper embedded view demo 2023-06-14 12:09:41 +00:00
Anthony Nicholls
61b27097b7 AAX: Allow runtime custom search paths for a page table file 2023-06-09 12:51:43 +01:00
reuk
f6e6557edb
Global: Fix a few more float equality warnings 2023-04-13 12:19:58 +01:00
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible 2023-04-04 19:55:11 +01:00
reuk
5db288e834
SamplerPluginDemo: Fix unqualified uses of std::move 2023-03-02 13:25:50 +00:00
reuk
39a731de46
ScopedMessageBox: Replace old AlertWindow uses with new API 2023-02-22 21:00:17 +00:00
reuk
321cab0c15
MIDILogger: Update bus layouts to support loading in Cakewalk 2023-02-06 12:11:29 +00:00
attila
0f402bb81f ARAPluginDemo: Fix thread race when PlaybackRegion is modified during playback 2023-02-03 16:11:11 +01:00
attila
f5051d4e39 ARAPluginDemo: Fix dereferencing beyond end iterator 2023-01-05 04:36:00 +01:00
attila
a97c1d7ee0 ARAPluginDemo: Use crossfade in the EditorRenderer to avoid clicks 2022-12-15 20:34:34 +01:00
attila
0cb135a2ce ARAPluginDemo: Avoid unnecessarily deselecting a musical context 2022-12-14 11:07:25 +01:00
attila
23445ebd92 ARAPluginDemo: Add more features to demo host integration 2022-11-23 16:05:04 +01:00
attila
4804e9afd2 ARAPluginDemo: Fix incorrect sample reading in editor renderer 2022-11-01 11:29:06 +00:00
hogliux
e12e0bb4fe Examples: Ensured that the MultiOutSynth example accepts disabled aux busses 2022-10-26 09:35:33 +02:00
chroma
d3cff375be Thread: Introduce a new Thread backend
This is a breaking change - see BREAKING-CHANGES.txt
2022-10-18 11:49:47 +01:00
reuk
7c14c1fcd7
Use more concise stdlib type aliases 2022-09-26 18:03:47 +01:00
reuk
65f1a76614
Tidy up parameter pack expansions 2022-09-12 16:14:57 +01:00
attila
997ed696c2 ARA Client: Fix GCC warnings 2022-08-15 12:07:40 +02:00
attila
351e8e8916 ARAPluginDemo: Fix warning 2022-07-21 18:57:54 +02:00
attila
2ea0a1b1f6 ARAPluginDemo: Fix incorrect access of playhead from the GUI 2022-07-19 14:30:14 +02:00
reuk
8fbd99c424
AudioPlayHead: Improve granularity of position info 2022-06-16 16:18:20 +01:00
reuk
964a1aa870
VST3 Client: Allow host to enable/disable buses at will
Previously, activateBus would fail if the new BusesLayout wasn't
supported, as reported by isBusesLayoutSupported. However, according to
the VST3 docs, a host is allowed to enable and disable buses in any
combination, and the plugin should be able to handle this gracefully.

The ability to enable/disable individual buses without failure is
particularly important because there's no VST3 API to set a complete bus
layout in one go. That is, the only way to set all buses active or all
buses inactive is to set the appropriate state on each bus individually,
which in turn means that at some point, some buses will be active and
some will be inactive. Disallowing such 'intermediate' states may
prevent the host from putting the plugin into other (valid) states.

To ensure that the VST3 wrapper always accepts activateBus calls, it now
keeps track of the activation state of each bus as requested by the
host. When the host tries to change the activation state, the wrapper
will try to set the host's "ideal" bus layout on the AudioProcessor. If
this fails, the AudioProcessor will retain its previous bus layout.

The buffer remapping inside the process callback has been made more
robust, to handle cases where the host and the AudioProcessor disagree
about the activation state of each bus:

For input buses:
- If the host has activated the bus, but the AudioProcessor decided to
  keep the bus inactive, the host's input will be ignored.
- If the host deactivated the bus, but the AudioProcessor wanted to keep
  the bus active, the AudioProcessor will be provided with silence on
  that bus.

For output buses:
- If the host has activated the bus, but the AudioProcessor decided to
  keep the bus inactive, the wrapper will clear the host's output
  bus buffers.
- If the host deactivated the bus, but the AudioProcessor wanted to keep
  the bus active, the AudioProcessor's output on that bus will be
  ignored.

The AudioBuffer passed to the wrapped AudioProcessor will no longer
contain any pointers from the host's ProcessData. Instead, the host's
inputs will be copied (in JUCE channel order) to a temporary buffer,
and this temporary buffer will be passed to
AudioProcessor::processBlock. After processBlock, the buffer contents
will be copied to the host's output buffers.

This change is intended to avoid a potential issue when reordering
channels into JUCE order, which may necessitate copying a host input
channel to a different host output channel. In the case that the host is
using the same buffers for both inputs and outputs, copying an input to
an output channel may end up overwriting another input channel, breaking
the plugin's inputs.
2022-06-13 15:29:58 +01:00
reuk
560e75da27
MultiOutSynthPlugin: Avoid assertions in VST3PluginTestHost 2022-06-13 15:29:55 +01:00