Choroboros Documentation
Official links:
This document explains how Choroboros is organized today: the front panel workflow, the Dev Panel architecture, the modular core assignment system, the tutorial flow, and the full interactive console command surface.
It is written as one continuous learning path so you can read top-to-bottom without jumping around.
2. Quick Start
- Load Choroboros on a track in your DAW.
- Choose an engine color and HQ mode.
- Set
rate,depth,offset,width,color,mix. - Open Dev Panel for deep tuning and diagnostics.
- In Dev Panel, use this loop:
- Set target: Profile + Core + HQ.
- Shape movement in Modulation.
- Shape frequency and response in Tone.
- Validate telemetry and trace matrix.
- Persist with JSON/script/defaults only after validation.
3. Main Plugin Controls
The front panel is the fast performance surface: six macro controls, engine and quality selectors, and utility actions. It is intentionally compact so host automation stays stable while deeper DSP tuning lives in Dev Panel.
3.1 Primary Automation Surface
These are the host-visible control IDs exposed by the processor:
| Control | Parameter ID | What It Does |
|---|---|---|
| Rate | rate | Modulation speed (0.01 Hz to 10.0 Hz). |
| Depth | depth | Modulation amount (0% to 100%). |
| Offset | offset | L/R phase relationship (0 deg to 180 deg). |
| Width | width | Stereo spread (0% to 200%). |
| Color | color | Engine-dependent character macro. |
| Mix | mix | Dry/wet blend (0% dry to 100% wet). |
| Engine Color | engineColor | Select Green, Blue, Red, Purple, Black engine slot. |
| HQ | hq | Toggle Normal Quality (NQ) / High Quality (HQ). |
3.2 What the Color Macro Means Per Engine
| Engine | Color Macro Intent |
|---|---|
| Green | Bloom body and softness response. |
| Blue | Focus and presence response. |
| Red NQ | BBD/post-chorus drive behavior. |
| Red HQ | Tape tone and drive balance. |
| Purple | Warp/orbit style motion character. |
| Black | Modulation intensity and ensemble spread. |
3.3 Direct Value Editing and Units
Each value readout under a control is editable. Double-click a value text field, type a value, and commit.
- Rate: accepts
Hzvalues (example:0.35,2.5 Hz). - Depth/Width/Color/Mix: accepts either normalized values (
0.0..1.0or0.0..2.0for Width) or percentages (example:65%). - Offset: accepts degrees (example:
120,120 deg,120°). - Invalid input is rejected and the previous value is restored.
3.4 Fast Gestures and Defaults
- Double-click any slider to return it to that parameter's default value.
- Right-click the Rate slider to open the host-BPM sync menu with straight, triplet, and dotted subdivisions.
- Rate sync menu only enables entries inside valid mapped range and writes back to the real underlying raw parameter.
3.5 Engine and HQ Visual Behavior
- Changing Engine updates the front-panel theme colors, background art set, and value text accent color.
- HQ switch animates and also drives the lit overlay layer on the panel background.
- Value text color follows engine accent unless a custom override mode is enabled in layout tuning.
3.6 Utility Buttons (Top Bar)
| Button | Action |
|---|---|
| DEV | Toggle Dev Panel window (always-on-top, min 1028 x 525). |
| About | Open version/company dialog. |
| Help | Launch help contact link. |
| Feedback | Open feedback form dialog with collected usage context. |
3.7 Front Panel Workflow (Practical)
- Choose Engine + HQ first, because Color meaning depends on target engine/mode.
- Set
mixto 40% to 60% as a starting point. - Use Rate/Depth to set movement amount and speed.
- Set Offset/Width for stereo behavior.
- Use Color last for engine character shaping.
- If needed, open Dev Panel and continue with engine internals and validation.
3.8 Tooltips and Discoverability
The front panel ships with contextual hover help for all major controls:
- Each macro control has a behavior-focused tooltip.
- Engine selector and HQ toggle explain quality/algorithm intent and trade-offs.
- Top utility buttons (DEV/About/Help/Feedback) describe what opens and why to use it.
3.9 Main Window Behavior
- Main plugin editor is fixed-size by design to preserve visual alignment.
- Default editor size is 700 x 363 (then UI scale is applied).
- The Dev Panel window is where deep, resizable editing and diagnostics happen.
4. Dev Panel Manual
4.1 Open and Window Behavior
- Open the panel from the plugin editor
DEVentry. - Panel is resizable and always-on-top.
- Minimum size is 1028 x 525.
4.2 Mental Model
The Dev Panel is split into two columns:
- Left Inspector: readouts and controls for the currently selected tab/subtab.
- Right Visual Deck: cards, visualizers, workbenches, and action rows.
The top row of controls defines the active editing target, then each tab changes what you can inspect and edit for that target.
4.3 Top Target Controls
At the top of the right column, these controls are always visible:
| Control | Purpose | Example |
|---|---|---|
| Profile | Select which engine color slot you are editing. | Set to Red to tune red slot values. |
| Core | Select the algorithm package for the active slot/mode. | Set to tape for Red HQ tape behavior. |
| HQ | Choose NQ or HQ side for that slot. | HQ off + Red usually maps to BBD in legacy map. |
4.4 Overview Tab
Subtabs
- Signal Flow
- Delay Visual
What you see
- Left inspector sections:
Active Parameters (start here),Derived State. - Right cards: signal chain view and delay trajectory view.
How to use it
- Confirm target (Profile/Core/HQ).
- Read raw to mapped values in inspector.
- Use Delay Visual to confirm smooth movement before deep tuning.
4.5 Modulation Tab
Modulation is unified (no second row subtabs).
What you see
- Left inspector:
LFO Readouts (passive monitor). - Right cards in one stack:
- LFO Left
- LFO Right
- Delay Trajectory
- LFO Control Workbench
LFO Control Workbench controls
LFO Rate (Hz)LFO Depth (%)Stereo Offset (deg)Stereo Width (x)
4.6 Tone Tab
Subtabs
- Spectrum
- Engine Response
Spectrum subtab
- Left inspector sections:
Analyzer Controls (for cards above),Tone Readouts (passive monitor). - Right card: spectrum and HP/LP overlay.
Engine Response subtab
Cards are engine and HQ specific. The panel chooses cards based on active Profile and HQ mode.
| Profile/Mode | Curve Card | Controls Card |
|---|---|---|
| Green (NQ/HQ) | Green Bloom Response Curve | Green Bloom Tone Controls |
| Blue (NQ/HQ) | Blue Focus Response Curve | Blue Focus Tone Controls |
| Red NQ | Red NQ Saturation Transfer Curve | Red NQ Saturation Controls |
| Red HQ | Red HQ Tape Transfer Curve | Red HQ Tape Controls |
| Purple NQ | Purple NQ Warp Response Curve | Purple Warp Tone Controls |
| Purple HQ | Purple HQ Orbit Response Curve | Purple Orbit Tone Controls |
| Black NQ | Black NQ Intensity Response Curve | Black Intensity Tone Controls |
| Black HQ | Black HQ Ensemble Response Curve | Black Ensemble Tone Controls |
4.7 Engine Tab
Subtabs
- Signal Flow
- Engine Identity
- Dynamic macro label from selected core (for example Bloom Macros, Tape Macros, Orbit Macros, Ensemble Macros)
Signal Flow subtab
- Shows engine signal flow card.
- Core row uses active core descriptor label (not fixed per color anymore in modular mode).
Engine Identity subtab
- Engine Identity Guide card.
- Core Assignment card:
Enable Modular Cores (DevPanel)NQ CorechooserHQ Corechooser
- Core Assignment Warnings card (duplicates are allowed, but listed).
- Engine Macro Workbench for main macros (Rate/Depth/Offset/Width/Color/Mix).
Third Engine subtab (dynamic label)
- Contains engine-specific macro controls tied to active core package.
- Cards are filtered by engine and HQ mode where needed (for example BBD only for Red NQ, Tape only for Red HQ).
Internals panels below Engine visual deck
In Engine tab, active internals panels are laid out below the deck on the right side. These include the active per-engine internals panel and conditional Red BBD/Tape sections when visible.
Core tokens
lagrange3, lagrange5, cubic, thiran, bbd, tape, phase_warp, orbit, linear, ensemble.
Legacy assignment map (when modular cores disabled)
| Slot | NQ | HQ |
|---|---|---|
| Green | lagrange3 | lagrange5 |
| Blue | cubic | thiran |
| Red | bbd | tape |
| Purple | phase_warp | orbit |
| Black | linear | ensemble |
4.8 Look and Feel Tab
Subtabs
- Mapping
- UI Feel
- Engine Layout
- Global Layout
- Text Animations
Engine Layout propagation menu
Many Engine Layout numeric controls support right-click propagation with two actions:
Apply to all engine coloursApply to all HQ profilesorApply to all NQ profiles(label adapts to current HQ state)
4.9 Validation Tab
Subtabs
- Telemetry
- Trace Matrix
- Console
Telemetry
Telemetry readouts include:
- Audio thread process time (last and peak)
- Input and output peak hold
- Callbacks and parameter write counters
- Engine/HQ switch counters
- Host sample rate and block size
- Analyzer frame and delay probe data
Trace Matrix
Shows control flow from UI to runtime using rows like Rate/Depth/Offset/Width/Color/Mix with columns for raw, mapped, snapshot, and effective.
Console
Interactive command console with watch HUD, history, and direct state editing. Full command guide is in section 6 below.
4.10 Settings Tab
Top action rows (right side)
- FX presets:
FX Off,FX Subtle,FX Medium - Actions:
Lock Controls,Reset to Factory,Set Current as Defaults,Copy JSON
Inspector sections in Settings tab
| Section | What It Controls |
|---|---|
| Tutorial | Topic picker, run/skip controls, focus-hint preference. |
| UI Text | Text size and text color mode. |
| Theme | Theme preset, accent source, manual accent color. |
| Core Routing | Enable modular cores and restore legacy map action. |
| Accessibility | Color vision assist, reduced motion, large hit targets, strong focus ring, scope hint visibility. |
| Performance | Lazy UI Refresh toggle. |
| Validation Console | Auto-scroll, timestamps, wrap, max lines (300/600/1000/2000). |
| Safety | Confirm reset and confirm defaults actions. |
| Help and Feedback | Open console help, website, feedback form, support email. |
5. Interactive Tutorials
Tutorials are available from Settings and from console commands.
How to launch
- Settings -> Tutorial -> choose topic ->
Run - Console command:
tutorialortutorial <topic>
Available topics
core, overview, modulation, tone, engine, validation, bbd, tape, phase, bimodulation, saturation, envelope
Controls while tutorial is active
- Overlay buttons:
Next,Next Section,Skip Tutorial - Console:
tutorial next,tutorial next section,tutorial skip,tutorial exit
tutorial next section when you already know basics and only need tab-by-tab orientation.6. Interactive Console Manual
6.1 Syntax and Input Rules
- Commands are space-separated tokens.
- Use
helpany time for in-console command list. - Many commands return
ERROR:messages when usage is wrong. - Alias support exists via
alias <name> <command>.
6.2 Engine and State Commands
engine <green|blue|red|purple|black> hq <on|off> view <overview|modulation|tone|engine|layout|validation|settings> bypass <on|off> solo <node> unsolo
Notes
viewaccepts aliases:internals,bbd,tape,look,lookfeel.bypass onforces wet mix to 0 and remembers previous mix for restore onbypass off.
6.3 Parameter Tuning Commands
set <target> <value> add <target> <delta> sub <target> <delta> get <target> reset <target> reset all lock <target> unlock <target> toggle <target> macro <rate|depth|offset|width|color|mix> <0..100> sweep <target> <start> <end> <time_ms>
Usage tips
getprints current value and previous value when available.sweepcreates a timed parameter ramp.lockandunlockaffect panel interaction lock state for target controls.
6.4 History and Undo
undo [n] redo [n] history
Use these while listening to quickly A/B sequences of changes.
6.5 Introspection and Utilities
watch <target> unwatch <target> dump <color> diff factory search <term> stats list <color> [all] [full] list globals [full] fx <0|1|2> clear
How list works
- Default output is deduped and capped for speed/readability.
fullshows all variant slugs.all(with color) includes globals plus engine-scoped entries.
6.6 Core and Slot Commands
core list core show <id> slot show slot set <green|blue|red|purple|black> <nq|hq> <core_id>
Behavior details
core list: prints all core IDs with token and display name.core show: accepts token or numeric index.slot show: prints slot assignment table and duplicate warning count.slot set: applies assignment immediately; duplicates return warning but still apply.
6.7 Import Export and Defaults
export script import script [file_path] cp json save defaults alias <name> <command> help
I/O behavior
export script: copies generatedset ...command list to clipboard.import script: reads clipboard by default; if file path provided, reads that file.cp json: copies full state JSON to clipboard.save defaults: writes current state to user defaults file.
6.8 Practical Command Examples
Example A: Switch profile and tweak movement
engine purple hq off set rate 0.75 set depth 0.42 set width 1.40 stats
Example B: Core routing test
slot show slot set red nq bbd slot set red hq tape slot show
Example C: Safe tune workflow with rollback
search bloom watch green_bloom_gain set green_bloom_gain 0.42 diff factory undo redo export script
7. File Locations and Persistence
State and recovery files are stored in the user application data directory under Choroboros/.
defaults_user.jsondefaults_factory.jsondefaults_user_recovery_last_attempt.jsondefaults_user_recovery_failed_<timestamp>.jsondefaults_save_failures.logdevpanel_recent_touches.log
defaults.json is handled by migration logic when present.8. Performance and Troubleshooting
Performance checklist
- Enable
Lazy UI Refreshin Settings -> Performance for lower UI overhead. - Use Validation -> Telemetry to watch process time and write activity.
- Keep Console output line cap reasonable (300 or 600) during long sessions.
- Use
list ...in deduped mode unless you specifically needfull.
Common issues and fixes
| Issue | What to check | Fix |
|---|---|---|
| A control seems to edit the wrong sound | Profile/Core/HQ context | Re-check top row context, then retry edit. |
| Console list output feels too long | Command options | Use deduped list first, then full only when needed. |
| Unexpected startup state | User defaults and save action history | Use Reset to Factory, then re-apply desired state and save defaults again. |
| Duplicate core assignments warning | Slot table | Run slot show, then reassign conflicting slots if unwanted. |
9. Glossary
- LFO: Low Frequency Oscillator used to modulate delay motion.
- Trajectory: time path of moving delay target values.
- Zipper noise: audible stepping from abrupt parameter jumps.
- HPF / LPF: high-pass filter / low-pass filter.
- Raw: normalized control value from host/UI layer.
- Mapped: engineering-unit value after mapping/scaling.
- Snapshot: stored profile value in state.
- Effective: live runtime value currently used by DSP.
- NQ / HQ: Normal Quality / High Quality mode per slot.
- Core package: selected algorithm identity token for a slot/mode.
- Macro: high-level control that steers multiple lower-level behaviors.
10. Licenses and Attribution
This section documents what third-party frameworks and SDKs are used, where their licenses live in this repository, and what should ship with binaries for transparency.
10.1 Project Ownership and Primary License Files
| Item | Path | Notes |
|---|---|---|
| Project copyright notice | CMakeLists.txt | Build metadata identifies Kaizen Strategic AI Inc. and 2026 copyright string. |
| GPL text bundle | LICENSE, COPYING | Repository currently contains GPLv3 license text files. |
| EULA text | EULA.md | End-user agreement file is also present and embedded in plugin binary data. |
10.2 Frameworks and SDKs Used in Build
| Framework / SDK | Used For | License / Notice Location |
|---|---|---|
| JUCE Framework | Plugin runtime, UI, DSP plumbing, format clients | JUCE/LICENSE.md (dual-license model described there) |
| Steinberg VST3 SDK (via JUCE) | VST3 format support | JUCE/modules/juce_audio_processors_headless/format_types/VST3_SDK/LICENSE.txt (MIT) |
| Avid AAX SDK (via JUCE) | AAX format support | JUCE/modules/juce_audio_plugin_client/AAX/SDK/LICENSE.txt (Avid license terms / GPL option as stated by SDK) |
| Apple AudioUnit SDK (via JUCE) | AU format support | JUCE/modules/juce_audio_plugin_client/AU/AudioUnitSDK/LICENSE.txt (Apache 2.0) |
10.3 Fonts, Branding, and UI Assets
| Asset | Path | Attribution Status |
|---|---|---|
| Choroboros brand font | Assets/fonts/choroboros.ttf | Project-specific branding font. |
| JetBrains Mono variants | Assets/fonts/labels/, Assets/fonts/titles/, Assets/fonts/tooltips/ | Font files are present; ensure upstream license text is included in distribution packages. |
| Plugin art and icons | Assets/, Assets/gui_icons/ | Owned project art unless separately licensed. |
10.4 Third-Party Notice Bundles in Repository
Additional vendor notices are archived under Licenses/, including:
Licenses/Avid/Licenses/Third Party/
These folders contain notices from SDK/toolchain bundles and historical packaging work. Not every file in those folders is necessarily linked into the current shipping binary.
10.5 Public Project Links
End of manual.