AgentStack
SKILL verified MIT Self-run

Faust Build

skill-gertsylvest-meta-team-faust-build · by gertsylvest

Compile a Faust DSP source file to C, verify the API surface (function names, I/O counts, struct name), and optionally compile the result with clang. Runs a parameter smoothing audit before compilation. Use after any change to a .dsp file.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-gertsylvest-meta-team-faust-build

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README — it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gertsylvest-meta-team-faust-build)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Faust Build? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Faust Build

Compile a Faust DSP source file to C and verify the result is structurally correct. Combines three steps that were performed manually on every DSP change: parameter audit, compilation, and API surface verification. Optionally adds a clang compile step to catch type errors early.

Requirements

  • Faust compiler on PATH (or specify binary with --faust). Tested against Faust 2.85.x.
  • Known issue: -ftz 2 generates broken C in Faust 2.85.5. This script defaults to -ftz 0 (see --ftz option).
  • clang (optional, only needed for --clang step)
  • Faust architecture headers (optional, only needed for --clang): the directory containing faust/gui/CInterface.h. Pass via --faust-arch.

Instructions

Arguments are in $ARGUMENTS. Pass them directly to the build script:

bash "$(dirname "$0")/build.sh" $ARGUMENTS

Steps performed

| Step | What it does | |------|--------------| | 0 — Param audit | Scans the .dsp source for hslider/vslider/nentry parameters not followed by si.smoo or si.smooth on the same line. Flags as warnings (heuristic; does not catch multi-line smoothing). | | 1 — Faust compile | Runs faust -lang c -cn -single -ftz -o . Aborts on compiler failure. | | 2 — API surface check | Greps the generated C for all 14 expected public function names (suffix = class name). Checks that FAUSTCLASS macro matches. Optionally verifies getNumInputs and getNumOutputs return values. | | 3 — Clang compile (optional) | Runs clang -std=c11 -O2 -Wall -Wextra -include faust/gui/CInterface.h -Wno-unused-parameter -c . The force-include is required because Faust-generated C references UIGlue, MetaGlue, and Soundfile without including their definitions. |

Options

| Option | Default | Description | |--------|---------|-------------| | --cn NAME | mydsp | Faust class name (-cn flag). All generated function names are suffixed with this. | | -I PATH | — | Include path for Faust library resolution (repeatable). Typically needs dsp/modules and the faustlibraries path. | | --faust BIN | faust | Faust compiler binary path. | | --faust-arch DIR | — | Directory containing faust/gui/CInterface.h. Required for --clang. | | --ftz N | 0 | Faust denormal flushing mode. Use 0 for Faust 2.85.x (the default); -ftz 2 is broken in that version. | | --clang | off | Run clang -c -Wall on the generated C as a final verification step. | | --inputs N | — | Expected getNumInputs return value. Fails if the generated code disagrees. | | --outputs N | — | Expected getNumOutputs return value. Fails if the generated code disagrees. |

Exit codes

  • 0 — all checks passed (warnings do not fail the build)
  • 1 — Faust compilation failed, or one or more API surface checks failed, or clang failed

Examples

# Minimal: compile and verify API surface
bash build.sh src/dsp/synth.dsp src/generated/synth.c --cn Synth

# With library paths and expected I/O counts
bash build.sh src/dsp/synth.dsp src/generated/synth.c \
  --cn Synth \
  -I dsp/modules \
  -I ~/faust/faustlibraries \
  --inputs 0 --outputs 1

# Full verification including clang
bash build.sh src/dsp/synth.dsp src/generated/synth.c \
  --cn Synth \
  -I dsp/modules \
  -I ~/faust/faustlibraries \
  --faust-arch ~/faust/architecture \
  --clang \
  --inputs 0 --outputs 1

Notes

  • -ftz 0 means no Faust-level denormal flushing. Move denormal protection to the driver layer (FTZ/DAZ CPU flags on the audio thread). This is better separation of concerns anyway.
  • The param audit checks only within single lines. A parameter smoothed on the next line (e.g. freq = hslider(...)\n : si.smoo) will be flagged as a warning even though it is correctly smoothed. Treat warnings as review prompts, not definitive failures.
  • The public API for -cn Synth is: newSynth, deleteSynth, metadataSynth, getSampleRateSynth, getNumInputsSynth, getNumOutputsSynth, classInitSynth, instanceResetUserInterfaceSynth, instanceClearSynth, instanceConstantsSynth, instanceInitSynth, initSynth, buildUserInterfaceSynth, computeSynth. All 14 must be present for a valid build.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.