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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill for Pulp's desktop Ableton/link integration, its CMake opt-in,
or the backend-neutral tempo-sync seam in core/playback.
Ableton/link SDK. It is not iOS LinkKit and not
m4l-connection-kit. LinkKit needs a separate licensing decision, option,
SDK path, and implementation.DEPENDENCIES.md or
NOTICE.md because Pulp ships none of it.pulp::playback target owns only Pulp code. The optional
pulp::ableton-link target exists only in a source build with the SDK enabled
and must never enter cmake --install or Pulp's exported target closure. Its
adapter declaration lives under core/playback/adapters/include, exposed
only through that target's BUILD_INTERFACE; do not place it under the
installed core/playback/include tree.Clone recursively to an absolute path outside the checkout; Link requires its ASIO submodule even on platforms that do not use an ASIO audio device:
git clone --recurse-submodules https://github.com/Ableton/link.git /absolute/path/to/link
cmake -S . -B build-link -DCMAKE_BUILD_TYPE=Release \
-DPULP_ENABLE_ABLETON_LINK=ON \
-DPULP_ABLETON_LINK_SDK_DIR=/absolute/path/to/link
PULP_ENABLE_ABLETON_LINK defaults to OFF. When enabled, a missing, partial,
in-tree, or non-desktop SDK path is a configure error. The SDK path can also
come from the PULP_ABLETON_LINK_SDK_DIR environment variable, but an explicit
CMake cache value is easier to audit.
TempoSyncSource is Pulp's backend-neutral, audio-thread interface. Keep
Link types and Link-specific peer/enable/start-stop controls out of it.AbletonLinkTempoSync owns those Link-specific controls. Call set_enabled
and set_start_stop_sync_enabled from a control thread, never from the audio
callback. output_host_time and capture_audio_block are realtime-safe.output_host_time(output_latency_frames, sample_rate, time) in the audio
callback, then pass its opaque TempoSyncHostTime to MasterTransport. The
adapter reads Link's realtime clock and adds device/output latency so the
timestamp names the first sample at the output boundary. A callback timestamp
without compensation produces a stable audible offset.TempoSyncHostTime is tagged with its producing source. A transport rejects
a default token or one from another source before asking its backend to
capture a block, preventing Link, device, and wall-clock epochs from mixing.TempoSyncSource must outlive MasterTransport. Use the
host-time begin_block(frame_count, output_host_time, snapshot)
overload. The ordinary overload returns TempoSyncHostTimeRequired.set_tempo_sync_tempo, seek, and set_playing calls publish
session commands, which avoids hijacking an existing jam on attach.begin_scrub() rejects an active
shared tempo source because scrubbing needs a private repositioning clock;
use an unsynchronized transport for scrub playback.SessionState::timeForIsPlaying() in
TempoSyncBlockState::is_playing_at_host_time_micros. A
TransportSnapshot has one playing state for its whole half-open block: a
start/stop effective at or before the first sample applies immediately, while
one inside or at/after the block end is deterministically deferred until a
later block starts at or beyond that timestamp. Do not flatten the timestamp
into SessionState::isPlaying() or claim sample-accurate start/stop splitting
that the snapshot contract cannot represent.The SDK-independent interface tests are the public-CI gate. They compile into
the grouped pulp-test-group-timeline-playback executable, so build that
target and select the suite by its file tag. The SDK-present
test is always registered: a stock build exits 77 and CTest reports Skipped
with the enablement flags, while an enabled local build executes the real
adapter.
cmake --build build --target \
pulp-test-group-timeline-playback \
pulp-test-ableton-link-sdk \
timeline-program-threadless-no-exceptions-check
build/test/pulp-test-group-timeline-playback -# "[#test_playback_tempo_sync]" \
--reporter compact
ctest --test-dir build -V -R '^playback-ableton-link-sdk-present$'
cmake --build build-link --target \
pulp-test-group-timeline-playback pulp-test-ableton-link-sdk
ctest --test-dir build-link -V -R '^playback-ableton-link-sdk-present$'
Check the interface assertion count; a filtered CTest command can match nothing. For substantive changes, prove negative controls for fail-closed source errors and precise beat projection, then restore the implementation.
When the portable interface or transport integration changes, also update the
playback skill and keep tempo_sync.cpp in the native, threadless, WAM, and
WebCLAP playback source closure. Keep the SDK adapter under
core/playback/adapters/, outside the portable src/ closure.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。
Optional ARA support for Pulp, including developer-supplied ARA SDK setup, CMake enablement, adapter companion APIs, validation, and ARA-aware plugin implementation guidance.
日本語の概要は準備中です。原文の説明を表示しています。
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.
日本語の概要は準備中です。原文の説明を表示しています。