Skip to content

Introduce AudioBus role and unify and fix parameter and state handling across VST3, CLAP and AUv3 - #166

Merged
kunitoki merged 2 commits into
mainfrom
dev/audiobus_role_support
Aug 2, 2026
Merged

Introduce AudioBus role and unify and fix parameter and state handling across VST3, CLAP and AUv3#166
kunitoki merged 2 commits into
mainfrom
dev/audiobus_role_support

Conversation

@kunitoki

@kunitoki kunitoki commented Aug 2, 2026

Copy link
Copy Markdown
Owner

This pull request introduces major improvements to plugin bypass handling and audio bus support across multiple plugin formats, along with several technical and build system refinements. The most significant changes are the addition of sidechain and multi-bus audio input support, improved handling and testing of plugin bypass, and various refactorings to standardize plugin instantiation and bus handling in the AU and AAX wrappers.

Audio Bus and Sidechain Support:

  • Added sidechain and multi-bus audio input support for VST3, CLAP, AUv3, AUv2, AAX, and LV2. AudioBus now includes a Role (Main/Auxiliary) and isDefaultActive. AudioProcessContext exposes per-bus inputs/outputs via AudioBusBufferView, with accessors for main and auxiliary buses. Secondary input buses are now forwarded to the processor instead of being discarded. [1] [2] [3] [4] [5] [6] [7] [8]

Plugin Bypass Handling:

  • The AUv3 plugin host bypass is now properly connected to the processor. The wrapper-owned bypass parameter is created and drives processBlockBypassed, with host bypass state persisted/restored inside the YUPProcessorState blob. Legacy raw processor state still loads.
  • Added bypass parameter handling tests for AU, CLAP, and VST3 plugin client wrappers, covering routing to processBlockBypassed, bypass state round-trip, and text/value conversion.

Plugin Wrapper Refactoring:

  • Standardized the plugin processor creation function across AAX and AU wrappers by replacing createPluginProcessor with YUP_AUDIO_PLUGIN_CREATE_FUNCTION and updating all references. [1] [2] [3] [4] [5]
  • Refactored AU wrapper to remove redundant helper functions and moved common code to a shared header, improving maintainability. [1] [2]

Build System and Platform Integration:

  • Updated the AUv3 container bundle identifier handling in CMake and Info.plist templates for improved consistency with Xcode project settings. [1] [2]
  • Changed the default value of YUP_ENABLE_CORE_AUDIO_LOGGING to 0 to reduce log verbosity on macOS.

Audio Unit Parameter Handling:

  • Improved AU parameter flag and unit handling by using helper functions to set flags and units based on parameter properties.

These changes significantly enhance plugin host compatibility, especially for advanced routing scenarios, and improve the maintainability and clarity of the codebase.

@codecov

codecov Bot commented Aug 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.87755% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.18%. Comparing base (ef4c4de) to head (56283c9).

Files with missing lines Patch % Lines
...p_audio_processors/processors/yup_AudioParameter.h 92.30% 3 Missing ⚠️
...io_processors/processors/yup_AudioProcessContext.h 90.90% 2 Missing ⚠️
modules/yup_gui/application/yup_Application.h 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #166      +/-   ##
==========================================
+ Coverage   80.15%   80.18%   +0.03%     
==========================================
  Files         763      766       +3     
  Lines       78360    78537     +177     
==========================================
+ Hits        62808    62977     +169     
- Misses      15552    15560       +8     
Files with missing lines Coverage Δ
...io_plugin_client/common/yup_AudioPluginUtilities.h 96.38% <100.00%> (ø)
...les/yup_audio_processors/processors/yup_AudioBus.h 100.00% <100.00%> (ø)
...dio_processors/processors/yup_AudioBusBufferView.h 100.00% <100.00%> (ø)
...p_audio_processors/processors/yup_AudioBusLayout.h 100.00% <100.00%> (ø)
...rocessors/processors/yup_AudioParameterBuilder.cpp 96.15% <100.00%> (+0.20%) ⬆️
modules/yup_gui/application/yup_Application.cpp 83.33% <100.00%> (-2.39%) ⬇️
modules/yup_gui/application/yup_Application.h 0.00% <0.00%> (ø)
...io_processors/processors/yup_AudioProcessContext.h 90.90% <90.90%> (ø)
...p_audio_processors/processors/yup_AudioParameter.h 96.90% <92.30%> (-3.10%) ⬇️

... and 2 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ef4c4de...56283c9. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@kunitoki
kunitoki merged commit a5b1fa2 into main Aug 2, 2026
40 of 42 checks passed
@kunitoki
kunitoki deleted the dev/audiobus_role_support branch August 2, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment