Skip to content

xfznprojects/PromptFX

Repository files navigation

PromptFX

A semantic audio-effect plugin — turn descriptive words into effect chains.

PromptFX maps creative descriptors like Haunted, Underwater, or Broken Radio onto fully-realised multi-effect chains. Pick a mood, shape it with four macros, and the whole plugin — sound and interface — transforms to match. Written in C++ with JUCE, it builds as a VST3 / AU / standalone plugin for Ableton Live 12 and other DAWs.

PromptFX

What it does

Instead of dialing in a dozen separate effects, you choose a mode (a word) and PromptFX configures an entire chain — filter, saturation, modulation, delay, reverb, noise and stereo imaging — to evoke that word. Four macros bend the result, and the interface re-themes itself per mode.

Modes

Haunted · Warm Tape · Underwater · Broken Radio · Wide Dream · Dark Club · Furnace · Shatter

Controls

Control Role
Amount Intensity of the mode's character
Movement Modulation rate & depth
Tone Spectral tilt (dark ↔ bright)
Mix Global dry/wet
Output Level trim
HP / LP Utility high-pass / low-pass (transparent at their extremes)
OTT One-knob 3-band upward+downward compressor — the EDM "OTT" sound

How the semantic system works

The "intelligence" is a small, data-driven mapping (rule-based — no ML model in v1):

  1. ModeLibrary defines a base parameter recipe for each word.
  2. MacroMapper folds the four macros over that recipe into the final per-block settings.
  3. A fixed DSP chain consumes those settings.

The mapping layer is pure C++ with no audio-framework dependency, so it is unit-testable in isolation. A future version may swap the rule-based dictionary for text-embedding–driven selection (see Roadmap).

Signal chain

in → filter → saturation → modulation → delay → reverb → noise → width
   → high-pass → low-pass → OTT → output

Tech stack

  • C++17, JUCE 8
  • CMake + CPM (JUCE is fetched automatically — nothing to vendor)
  • Native JUCE GUI with a custom LookAndFeel and a reactive, per-mode visualizer
  • Formats: VST3 + Standalone (Windows/Linux), AU + VST3 (macOS)

Build

Requirements: CMake ≥ 3.22 and a C++17 compiler. JUCE is downloaded by CMake on first configure.

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release

Built artifacts land in build/**/PromptFX_artefacts/. Copy the .vst3 (or .component on macOS) into your system plugin folder, or point your DAW at the build output directory.

On Windows with Visual Studio, configure presets are provided (cmake --preset ninja-debug / ninja-release) — run them from a Developer PowerShell so the toolchain is on PATH.

Roadmap

  • Tempo-synced delay & LFO; preset randomize / morph between modes
  • Spectrum / metering in the visualizer
  • CLAP format; signed & notarized macOS and Windows builds
  • Optional text-embedding (true semantic) mode selection

Known limitations

  • Rule-based mapping, not a machine-learning model (by design in v1)
  • Primary development & testing on Windows; macOS/Linux are built in CI
  • Oversampled saturation makes some modes more CPU-intensive

Development

Built with AI-assisted development workflows, with an emphasis on clean, modular C++ and a clear separation between the (framework-free) semantic layer and the DSP/UI layers.

License

Released under the GNU AGPL-3.0 — see LICENSE.


© XFZN

About

Semantic audio-effect plugin (JUCE/C++): descriptive modes mapped to dynamic effect chains.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors