Compare commits

...

2 Commits

Author SHA1 Message Date
Roboboffin
3ac2cc15b1 Fix line endings and some cleanup 2025-10-23 04:00:21 +01:00
Roboboffin
24eb354ace Normalize line endings per .gitattributes 2025-10-23 03:59:37 +01:00
63 changed files with 2634 additions and 2572 deletions

39
.gitattributes vendored Normal file
View File

@@ -0,0 +1,39 @@
# Auto-detect text files and normalize to LF in the repo
* text=auto
# Explicit text rules
*.md text
*.txt text
*.json text
*.yml text
*.yaml text
*.toml text
*.c text
*.cpp text
*.h text
*.hpp text
*.rs text
*.py text
*.go text
*.js text
*.ts text
*.css text
*.html text
*.sh text eol=lf # scripts on Unix must be LF
*.bash text eol=lf
# Windows-native scripts that should remain CRLF in working trees
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
# Binary (never touch line endings)
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.pdf binary
*.zip binary
*.exe binary
*.dll binary
*.glb binary

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
Builds Builds
NeuralSynth Installer.exe NeuralSynth Installer.exe
AudioPluginHost
Projucer

19
AGENTS.md Normal file
View File

@@ -0,0 +1,19 @@
# Repository Guidelines
## Project Structure & Module Organization
NeuralSynth is a JUCE-based synthesizer plugin. Core runtime code lives in `Source/`, with `PluginProcessor.*` orchestrating audio/MIDI flow, `PluginEditor.*` driving the UI, `SynthVoice.*` implementing per-voice DSP, and helper headers such as `AudioEngine.h` and `NeuralSharedParams.h` exposing shared state. JUCE-generated scaffolding sits in `JuceLibraryCode/`; regenerate it through `NeuralSynth.jucer` rather than editing by hand. Platform build assets are under `Builds/` (for example `Builds/LinuxMakefile/`), and finished binaries default to `Builds/LinuxMakefile/build/`. Install scripting for Windows lives in `NeuralSynth.iss`.
## Build, Test, and Development Commands
- `cd Builds/LinuxMakefile && make CONFIG=Debug` compiles the standalone app and VST3 with debug symbols.
- `cd Builds/LinuxMakefile && make CONFIG=Release` builds optimized artefacts for distribution.
- `cd Builds/LinuxMakefile && make clean` removes intermediate objects when builds misbehave.
- `./Builds/LinuxMakefile/build/NeuralSynth` launches the standalone target; VST3 binaries appear in `Builds/LinuxMakefile/NeuralSynth.vst3` and copy into `~/.vst3` when the Makefile post-build step runs.
## Coding Style & Naming Conventions
C++ sources use 4-space indentation, brace-on-new-line functions, and JUCEs `juce::` namespace types. Prefer `PascalCase` for classes (e.g., `NeuralSynthAudioProcessor`), camelCase for methods and members (`prepareToPlay`, `audioEngine`), and suffix queues/collectors clearly (`AudioBufferQueue`, `ScopeDataCollector`). Match existing lambda formatting in `SynthVoice.cpp`, keep includes sorted locally, and avoid editing generated files under `JuceLibraryCode/`.
## Testing Guidelines
Automated tests are not yet configured; rely on manual validation in the standalone app or a DAW host. After each change, rebuild and audition key features: oscillator switching, chorus/delay/reverb chains, parameter automation, and MIDI input. For DSP tweaks, monitor the oscilloscope components linked to the buffer queues to confirm signal stability. Document ad-hoc test coverage in your pull request until formal tests are added.
## Commit & Pull Request Guidelines
Follow the existing concise, imperative commit style (`Add chorus modulation`, `Fix voice detune`). Scope each commit to a logical change and format messages as a single summary line. Pull requests should describe the motivation, outline testing performed, and link issues when relevant. Include platform notes (Linux, Windows installer) and screenshots or audio clips for UI-affecting or sonic changes so reviewers can assess impact quickly.

View File

@@ -7,6 +7,8 @@
pluginVSTNumMidiInputs="1" pluginChannelConfigs="{0, 2}" version="0.0.1"> pluginVSTNumMidiInputs="1" pluginChannelConfigs="{0, 2}" version="0.0.1">
<MAINGROUP id="UQstsW" name="NeuralSynth"> <MAINGROUP id="UQstsW" name="NeuralSynth">
<GROUP id="{D5B48DA9-9A47-914A-8C72-EE5E8DD868A3}" name="Source"> <GROUP id="{D5B48DA9-9A47-914A-8C72-EE5E8DD868A3}" name="Source">
<FILE id="Mkx0uo" name="BlepOsc.h" compile="0" resource="0" file="Source/BlepOsc.h"/>
<FILE id="axDpEq" name="WavetableOsc.h" compile="0" resource="0" file="Source/WavetableOsc.h"/>
<FILE id="nmKMnf" name="GraphComponent.h" compile="0" resource="0" <FILE id="nmKMnf" name="GraphComponent.h" compile="0" resource="0"
file="Source/GraphComponent.h"/> file="Source/GraphComponent.h"/>
<FILE id="CjJ141" name="NeuralSharedParams.h" compile="0" resource="0" <FILE id="CjJ141" name="NeuralSharedParams.h" compile="0" resource="0"