Files
NeuralSynthEd/AGENTS.md
2025-10-21 17:22:44 +01:00

2.3 KiB

Repository Guidelines

Project Structure & Module Organization

  • PluginProcessor.h/cpp contain TwoOscAudioProcessor, SimpleVoice, the APVTS layout, and factory presets—centralize DSP, parameter definitions, and state handling here.
  • PluginEditor.h/cpp manage the UI components, parameter attachments, and layout helpers; register new parameter IDs in the processor and wire their controls in these files.
  • Factory presets sit in getFactoryPatches(); keep categories organised so the preset popup remains easy to scan.

Build, Test, and Development Commands

  • Make JUCE modules available (export JUCE_MODULES_PATH or keep a JUCE checkout beside this repository).
  • Configure and build out-of-tree with CMake:
    cmake -S . -B build -DJUCE_MODULES_PATH=$JUCE_MODULES_PATH
    cmake --build build --target NeuralSynthEd_Standalone
    cmake --build build --target NeuralSynthEd_VST3
    
  • Leave build/ untracked and use the standalone target for smoke tests before validating in a DAW.

Coding Style & Naming Conventions

  • Follow JUCE style: 4 spaces, same-line braces, and //============================================================================== separators for major sections.
  • Types use PascalCase, members camelCase, parameter IDs lowerCamel (e.g., lfoRate, oscA); reserve auto for self-evident types.
  • Keep realtime code allocation-free and tuck UI-only helpers inside the editor files.

Testing Guidelines

  • Manual passes in the standalone build and JUCE AudioPluginHost cover current needs; exercise preset recall, automation, MIDI, and state persistence whenever parameters move.
  • Describe expected sonic or UX changes in PR notes so reviewers can mirror the checks.

Commit & Pull Request Guidelines

  • Use Conventional Commits with imperative subjects; add a brief body when behaviour changes or migrations occur.
  • PRs should summarise functional impact, link issues, attach audio clips or screenshots for DSP/UI tweaks, and avoid force-pushes post-review without noting the delta.

Preset & State Tips

  • Gain-match new presets (master around -18 dBFS) and provide explicit LFO values to keep legacy sounds stable.
  • Update APVTS defaults and editor control ranges together, refreshing browser labels if new preset categories appear.