aax
免费Optional AAX support for Pulp, including developer-supplied Avid SDK setup, CMake enablement, DigiShell/AAX Validator workflows, and local AAX builds on macOS or Windows.
中文简介正在准备中。当前显示原文说明。
Optional ARA support for Pulp, including developer-supplied ARA SDK setup, CMake enablement, adapter companion APIs, validation, and ARA-aware plugin implementation guidance.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
Use this when working on Pulp's optional ARA (Audio Random Access) support or when guiding users who want to build and validate ARA-enabled plugins.
kARAAPIGeneration_2_3_Final = 6)tools/deps/audit.py --strict must stay
green.DEPENDENCIES.md lists ARA SDK under Optional Developer-Supplied Vendor
SDKs exactly because of the companion-API carve-out in CLAUDE.md.main.The SDK is public on GitHub. Clone with submodules so ARA_API + ARA_Library + ARA_Examples all resolve:
git clone --recurse-submodules --depth 1 \
https://github.com/Celemony/ARA_SDK.git \
external/ara-sdk
After cloning, verify:
ls external/ara-sdk/ARA_API/ARAInterface.h # core C API
ls external/ara-sdk/ARA_Library/PlugIn/ARAPlug.h # C++11 helpers
Never commit external/ara-sdk/. The external/ prefix keeps it out of
cmake --install exports and the repo audit.
Two CMake knobs:
cmake -S . -B build \
-DPULP_ENABLE_ARA=ON \
-DPULP_ARA_SDK_DIR=/absolute/path/to/external/ara-sdk
PULP_ENABLE_ARA=ON without PULP_ARA_SDK_DIR fails fast with a clear
error. A missing / wrong path fails on ARAInterface.h existence check
before any compilation starts.
When enabled, pulp-format is built with PULP_HAS_ARA=1 and the ARA SDK
include directory added to its PUBLIC include path. Plugin TUs that want
to implement ARA include <ARA_API/ARAInterface.h> directly.
Quick smoke:
cmake --build build --target pulp-test-ara
./build/test/pulp-test-ara
# Expect: ara_sdk_compiled_in() → true, ara_sdk_generation() >= 6
A build with PULP_ENABLE_ARA=OFF (the default) must still pass the same
tests — ara_sdk_compiled_in() returns false and ara_sdk_generation()
returns 0 without failing.
Processor::create_ara_document_controller() to return a
concrete AraDocumentController subclass.<pulp/format/ara/types.hpp>
(AraAudioSource, AraPlaybackRegion, etc.). These are
SDK-independent so the plugin TU never pulls the SDK unless it wants
to implement a content reader that inspects ARA's C structs directly.A real ARA::ARAFactory is surfaced out of core/format/src/ara_factory.cpp
whenever PULP_HAS_ARA is defined. Hosts reach it via the adapter-specific
hook listed below — the integration code is done on the adapter side, so
plugin authors only subclass AraDocumentController.
Already end-to-end wired: clap_plugin::get_extension(kClapAraFactoryExtension)
returns the live factory. Example: core/format/src/clap_adapter.cpp
(search for kClapAraFactoryExtension).
Validate with ./build/tools/scan-worker/pulp-scan-worker path/to/MyPlug.clap
once ARA is initialised.
The VST3 adapter wires PulpVst3Processor::initialize(FUnknown*) to query
IPluginFactory3::setHostContext for the attribute key
kVst3AraFactoryContextKey. The plug-in side does nothing beyond subclassing
AraDocumentController; the adapter binding is in
core/format/src/vst3_adapter.cpp.
The AU adapter exposes kAuAraFactoryPropertyKey as the KVO property
audioUnitARAFactory on PulpAudioUnit. Logic reads it on scan, caches the
factory, and binds a document controller per loaded plug-in instance.
# Build with the SDK on:
cmake -S . -B build -DPULP_ENABLE_ARA=ON -DPULP_ARA_SDK_DIR=$PWD/external/ara-sdk
cmake --build build --target pulp-test-ara
# Run the live-factory tests (guarded on PULP_HAS_ARA):
./build/test/pulp-test-ara '[factory]'
The ABI-conformance test asserts that the factory's highestSupportedApiGeneration
is kARAAPIGeneration_2_3_Final, that createDocumentControllerWithDocument
returns a non-null ARADocumentControllerInstance, and that getFactory()
round-trips back to the same factory pointer.
AraPlaybackRegion matches ARAPlaybackRegionProperties; adapters
convert to samples only at explicit sample-domain APIs.docs/reference/host-thread-rules.md.host_supports_ara() currently returns false even with the SDK
compiled in until the format-adapter companion factories are wired.PULP_HAS_ARA is on, ara_companion_factory_for() returns a real
ARA::ARAFactory. Its createDocumentControllerWithDocument returns
a valid ARADocumentControllerInstance, but every call on the
controller interface is a no-op until plug-ins override them. Hosts
see a working factory; they just cannot edit audio yet.planning/production-readiness/06-ara.mdplanning/production-readiness/STATUS.md (ARA / workstream 06 section)Path map: tools/scripts/skill_path_map.json. Add entries for
core/format/src/ara*, core/format/include/pulp/format/ara*,
external/ara-sdk (so non-committed work still triggers skill sync
checks on related source changes).
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Optional AAX support for Pulp, including developer-supplied Avid SDK setup, CMake enablement, DigiShell/AAX Validator workflows, and local AAX builds on macOS or Windows.
中文简介正在准备中。当前显示原文说明。
Configure, implement, and test Pulp's optional desktop Ableton Link tempo-sync adapter while preserving the developer-supplied SDK, licensing, realtime, latency-compensation, and no-install boundaries.
中文简介正在准备中。当前显示原文说明。
Maintain Pulp's installed design-time agent capability manifest and public-surface ledger. Use when adding, removing, renaming, or materially changing public audio, MIDI, signal, timebase, or sequence APIs; registering a new algorithm for generators; changing capability support or deprecation state; or repairing agent-capabilities freshness, schema, fingerprint, tombstone, or installed-SDK tests.
中文简介正在准备中。当前显示原文说明。
Android platform development for Pulp — NDK cross-compilation, Oboe audio, Dawn/Skia GPU rendering, JNI bridge, touch interaction, emulator workflows, and end-to-end smoke validation. Covers build, deploy, debug, and the gotchas discovered during bringup.
中文简介正在准备中。当前显示原文说明。
The measurement surface for ALL Pulp DSP and audio-pipeline work — read it BEFORE writing or gating DSP, not only when something already sounds wrong. Covers the C++ harness (signal generators, metrics, assertions, RenderScenario, contracts), the offline Audio Doctor (magnitude/frequency response, THD/THD+N, phase/group delay), and their Python sibling the Audio Quality Lab (tools/audio/quality-lab — null residual + alignment, LTAS log-spectral distance, spectral flux/centroid, HNR, Theil-Sen drift slope, Kaiser-sinc resampling, license-guarded corpus, regression-net ratchet). TRIGGER on AUTHORING work — "build/design an oscillator/filter/synth/effect", "add a DSP module", "what should the acceptance gate be", "how do I measure aliasing / anti-aliasing / alias floor", "null against a reference", "is this DSP correct", "choose a tolerance", "golden/regression corpus for audio", "measure drift or jitter", "A/B two renders" — AND on DEBUGGING work — "is there sound / no audio / I hear nothing", "does this filter/compressor/synth/delay produce the right signal", "prove the DSP / prove the contract", "measure the frequency response", "what's the THD / is it distorting", "what's the group delay / phase response / measured latency", "magnitude response curve", "render a test tone and assert", "audio regression", "64-frame works but 128 is silent", "sample-rate change pitch-shifted it", "describe what's in this buffer", "audio doctor", "compare before/after a DSP refactor". Reach for this BEFORE hand-rolling any FFT, null test, alias measurement, pitch tracker, or golden-render script — most of it already exists in one of the two lanes. Test/tool layer over HeadlessHost — deterministic, no audio device, no speakers. Off the realtime thread entirely.
中文简介正在准备中。当前显示原文说明。
Reproduce and debug "only happens in a DAW" audio plugin bugs (cutouts, glitches, parameter-change failures) entirely offline — headless Processor scenes for DSP bugs and a standalone AudioUnit host probe for adapter/host-interaction bugs. Use when a plugin misbehaves in Logic/Live/etc. but unit tests are green.
中文简介正在准备中。当前显示原文说明。