34 lines
2.3 KiB
Markdown
34 lines
2.3 KiB
Markdown
# 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:
|
|
```bash
|
|
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.
|