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

1558 commits

Author SHA1 Message Date
reuk
bf4486e2aa
LV2PluginFormat: Extract headless plugin format type 2025-09-17 12:50:08 +01:00
reuk
c3a3409c4d
LV2PluginFormat: Restructure to separate out UI dependency 2025-09-17 12:50:08 +01:00
reuk
1ce614d4b7
LV2_SDK: Move to juce_audio_processors_headless 2025-09-17 12:50:08 +01:00
reuk
4f22db33b7
LADSPAPluginFormat: Move to juce_audio_processors_headless 2025-09-17 12:50:07 +01:00
reuk
6f24663ed9
AudioUnitPluginFormat: Extract headless plugin format type 2025-09-17 12:50:07 +01:00
reuk
0d80e22276
AudioUnitPluginFormat: Remove unused preprocessor defs 2025-09-17 12:50:07 +01:00
reuk
04fd5dfb61
CommonProcessorUtilities: Move arrayContainsPlugin() to new file 2025-09-17 12:50:07 +01:00
reuk
3ae5a2d4ea
AU: Move juce_AU_Shared.h to juce_audio_processors_headless 2025-09-17 12:50:07 +01:00
reuk
426b74fcf7
AudioPluginFormatManager: Replace addDefaultFormats function() with non-member 2025-09-17 12:50:07 +01:00
reuk
33b9f1e6ec
PluginFormatDefs: Add a new file to hold plugin format enablement definitions 2025-09-17 12:50:07 +01:00
reuk
407cc5b004
Move files without UI dependencies to juce_audio_processors_headless 2025-09-17 12:50:07 +01:00
reuk
1a80d64261
Create new empty juce_audio_processors_headless module 2025-09-17 12:50:07 +01:00
reuk
ba7593df26
MIDI: Add support for MIDI 2.0 I/O using Universal MIDI Packets
Includes support for communication with USB and Bluetooth devices, as well as virtual devices.
2025-09-17 12:50:07 +01:00
reuk
fa1f8ed54e
MIDI: Switch BytestreamMidiView for BytesOnGroup in a few places 2025-09-17 12:50:06 +01:00
Tom Poole
360dfe5f3d Bump version number to 8.0.10 2025-09-15 09:30:11 +01:00
attila
47d441787c Linux: Fix bad window error when using the XEmbedComponent
The issue was reproducible by opening a plugin window in the AudioPluginHost.
2025-09-10 11:06:38 +02:00
reuk
e27183e044 LV2: Add clang-tidy warning suppression comments 2025-09-09 13:33:34 +01:00
reuk
0788df388b VSTMidiEventList: Silence clang-analyzer OOB read warning 2025-09-09 13:20:20 +01:00
reuk
5d00156491
Remove unnecessary virtual keywords in final classes 2025-09-08 12:01:53 +01:00
Tom Poole
cb9ec7e38f Bump version number to 8.0.9 2025-09-01 14:44:25 +01:00
reuk
6473deb155
PluginListComponent: Fix potential use-after-free on modal component dismiss 2025-08-27 16:57:17 +01:00
reuk
f9b70f1d39
LV2 Host: Fix leak of plugin classes when scanning plugins multiple times 2025-08-27 16:57:17 +01:00
reuk
eef9183fad
LV2 Host: Fix leak of LV2 path when calling lilv_world_set_option multiple times 2025-08-27 14:56:42 +01:00
reuk
ac89007949
ARA Host: Fix build
The build got broken in f3d7c74ea1 - the
ARAVST3.h include is needed for both hosts and clients.
2025-08-21 17:42:59 +01:00
reuk
ccdc9d6779
AudioProcessor: Remove friendship with AudioProcessorParameter 2025-08-14 14:14:47 +01:00
reuk
da8150bb58
AudioProcessorParameter: Break dependency cycle with AudioProcessor 2025-08-14 14:14:47 +01:00
reuk
96ff7a0dcb
AudioProcessor: Move getDefaultNumParameterSteps() to AudioProcessorParameter 2025-08-14 14:14:47 +01:00
reuk
476f09f2c9
AudioProcessorParameter: Remove friendship with unrelated types 2025-08-14 14:14:47 +01:00
reuk
edd274f18e
AudioProcessorListener: Move impl to dedicated file 2025-08-14 14:14:47 +01:00
reuk
1623b63889
AudioProcessorParameter: Move impl to dedicated file 2025-08-14 14:14:47 +01:00
reuk
90b948dffd
AudioProcessor: Remove deprecated functions 2025-08-14 14:14:47 +01:00
reuk
35d3fab960
AU Client: Improve AUChannelInfo reporting and add tests
The previous implementation could emit 'wildcard' channel layouts in too
many scenarios.

A wildcard channel count is -1 or -2, and indicates that any number of
channels is supported on the bus.

If the input and output layouts must match, then a layout of [-1, -1]
should be returned.

If any layout is valid in both directions, then a layout of [-1, -2]
should be returned.

In the case where we have a bus A and opposite bus B, we will now only
emit a wildcard count for bus A if every bus standard bus layout up to a
channel count of 16 can be applied successfully without changing the bus
count of B.
2025-08-14 14:13:09 +01:00
reuk
7e3aae3cb9
AU: Refactor getAUChannelInfo to make mismatch checking more concise 2025-08-14 14:13:09 +01:00
reuk
0fb62bd240
AU: Refactor getAUChannelInfo to reduce duplication 2025-08-14 14:13:09 +01:00
reuk
b5ea607dcc
AU Host: Avoid potential UB reads of MIDI data 2025-08-14 14:13:09 +01:00
Anthony Nicholls
36d07a6ce3 Docs: Replace doxygen preprocessor conditionals with @cond and @endconds 2025-07-21 18:11:43 +02:00
reuk
b0a3be2bb4
AudioProcessorGraph: Fix bug where channel delays could incorrectly be applied multiple times 2025-06-19 18:12:33 +01:00
Anthony Nicholls
46703f3e65 PluginListComponent: Replace inappropriate naming with more suitable alternatives 2025-06-10 16:14:06 +01:00
Anthony Nicholls
f3d7c74ea1 VST3: Allow manifest helper to run independently 2025-06-10 16:13:33 +01:00
Anthony Nicholls
80116d60da VST3: Platform header should be included from user supplied SDK 2025-06-10 16:13:33 +01:00
reuk
5c34248d00
PluginListComponent: Wait for current scan to complete before calling owner.scanFinished()
I observed a deadlock when scanning AU plugins in-process in the
AudioPluginHost, and then clicking the "cancel" button in the scan
progress alert window.

The cause of the deadlock seems to be that JUCE uses async messages to
create and destroy AU plugins on the main thread. When running a plugin
scanner on a background thread, it was possible to end up in a situation
where the background thread was waiting on the message thread to process
a create/destroy message; and, at the same time, the main thread was
blocked waiting for all scan jobs to complete. This seemed to happen
because scanFinished() was called directly from the Scanner's
timerCallback as soon as the progress window was cancelled, even if
there was still a scan in progress at that point.

To avoid the deadlock, we now wait until the current scan has completely
finished before allowing the timerCallback to call scanFinished(). If no
scan is in progress, then the main thread can safely destroy the scanner
ThreadPool without needing to wait at that point.
2025-06-06 23:12:16 +01:00
reuk
dc890c69c2
PluginListComponent: Use lambda form of ModalCallbackFunction 2025-06-06 23:12:16 +01:00
reuk
6cd9566868
GenericAudioProcessorEditor: Avoid creating choice parameter components for discrete parameters with large numbers of steps 2025-06-06 23:12:16 +01:00
reuk
b349531966
AU Host: Avoid caching parameter value strings when getNumSteps() returns a large value 2025-06-03 16:12:00 +01:00
reuk
b20df8d713
PopupMenu: Add missing target components for menus created by built-in widgets 2025-06-03 16:08:56 +01:00
reuk
336a475921
PluginListComponent: Pass associatedComponent for temporary AlertWindows
This should allow these alert windows to display at the correct scale on
HiDPI Windows machines.
2025-06-03 16:08:56 +01:00
Tom Poole
b0d569c74b Bump version number to 8.0.8 2025-06-02 09:24:54 +01:00
reuk
e92cac9ae0
VST3 Client: Clarify documentation for compatibility extensions 2025-05-22 11:15:46 +01:00
Sudara
9a4ab937ad Docs: Fix a few tiny typos in comments 2025-05-08 16:33:24 +02:00
reuk
e30670a69a
AudioProcessorGraph: Add missing callback lock 2025-04-10 17:28:17 +01:00