faust

Convert FAUST .dsp sources into C++ headers for Pulp plugins.

13|1|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/danielraffel/pulp --skill faust
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: faust
Source: https://github.com/danielraffel/pulp/tree/main/.agents/skills/faust
Command: npx skills add https://github.com/danielraffel/pulp --skill faust

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Integrates FAUST offline code generation into the Pulp framework so developers can build, test, and package FAUST-based audio processors without requiring the FAUST compiler at build time, reducing build-time dependencies and ensuring reproducible plugin builds.

Core Features & Use Cases

  • Offline codegen support: Uses pre-generated C++ headers for FAUST .dsp sources so builds succeed without FAUST installed.
  • FaustProcessor wrapper: Provides a FaustProcessor<T> template that adapts FAUST-generated dsp classes into Pulp's Processor model.
  • Automatic reflection: Discovers parameters from buildUserInterface(), extracts metadata (name, author, version), and derives bus layout from getNumInputs/getNumOutputs.
  • CMake integration & tests: Includes a PulpFaust.cmake module for generation and test helpers and three example projects (gain, filter, tremolo) with unit tests.
  • Use cases: Rapidly add a FAUST algorithm to a plugin, validate parameter mappings in CI, or ship example FAUST processors as part of the SDK.

Quick Start

Build the included examples and run the FAUST-focused tests using the project's CMake configuration so pre-generated FAUST headers compile and the unit tests validate parameter reflection and audio processing.

Frequently Asked Questions about faust

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build FAUST audio plugins without installing the FAUST compiler?

Build FAUST audio plugins without the compiler by committing pre-generated C++ headers from .dsp sources and integrating them via the PulpFaust CMake module for reproducible offline codegen.

How does the FaustProcessor adapter expose parameters and bus layout for compiled DSP code?

The FaustProcessor adapter exposes parameters and bus layout by automatically reflecting buildUserInterface calls, extracting metadata like name and version, and deriving inputs and outputs from getNumInputs and getNumOutputs.

Can I use CMake to automate FAUST offline codegen and run unit tests in CI?

Yes, you can use the included PulpFaust.cmake module to automate FAUST offline codegen and run unit tests that validate parameter reflection, metadata extraction, and bus layout in CI environments.

What is offline FAUST codegen and when do I need pre-generated C++ headers?

Offline FAUST codegen converts .dsp sources into pre-generated C++ headers beforehand, needed when build environments must compile reproducibly without runtime dependencies on the FAUST compiler.

Does the Pulp framework support FAUST DSP examples like gain, filter, and tremolo?

The Pulp framework supports FAUST DSP examples including gain, filter, and tremolo, providing pre-generated C++ headers with unit tests validating parameter reflection and audio processing.

Why do I need committed C++ headers for FAUST builds instead of generating them at build time?

Committed C++ headers are needed for FAUST builds to eliminate build-time dependencies on the compiler, ensuring local builds and CI test runs compile reproducibly without requiring FAUST installation.