Skip to content

model: split the audio-thread types out of Cue.h into CueTypes.h - #7

Merged
stoatworks-labs merged 1 commit into
mainfrom
claude/cuetypes
Sep 3, 2026
Merged

stoatworks-labs merged 1 commit into
mainfrom
claude/cuetypes

Conversation

@stoatworks-labs

Copy link
Copy Markdown
Owner

CueVoice.h included the whole editable model to get three things from it: RoutePoint, VampRelease and the limits ceilings. Cue.h is the cue as the editor and the file format see it — file paths, juce::var persistence, control messages, streaming settings — none of which the audio thread should be able to reach, and all of which forced an audio-thread rebuild when an unrelated part of the model changed.

CueTypes.h holds those three and includes nothing at all, JUCE included. The juce::String conversions for VampRelease stay in Cue.h, beside the strings they exist for.

Measured rather than asserted — CueVoice.h's project-header closure is now:

Audio/SampleSource.h
Model/CueTypes.h
Model/FadeCurve.h

Cue.h, StreamingSettings.h and ControlMessage.h are no longer reachable from it. Cue.h goes 236 → 211 lines.

No behaviour changes. Desktop build and the 380 engine checks pass unchanged locally.

The webcue spike (#6) found this while shimming, but it stands on its own merits and this PR has nothing to do with the browser build — it touches no CMake and adds no dependency.

🤖 Generated with Claude Code

CueVoice.h included the whole editable model to get three things from it:
RoutePoint, VampRelease and the limits ceilings. Cue.h is the cue as the editor
and the file format see it — file paths, juce::var persistence, control
messages, streaming settings — none of which the audio thread has any business
reaching, and all of which forced an audio-thread rebuild whenever an unrelated
part of the model changed.

CueTypes.h holds those three and includes nothing at all, JUCE included. The
juce::String conversions for VampRelease stay in Cue.h, beside the strings they
exist for, so the new header stays plain data.

Measured rather than asserted: CueVoice.h's project-header closure is now
Audio/SampleSource.h, Model/CueTypes.h and Model/FadeCurve.h. Cue.h,
StreamingSettings.h and ControlMessage.h are no longer reachable from it.

Cue.h is 236 lines to 211. Nothing else moves, no behaviour changes, and the
desktop build and its 380 engine checks pass unchanged.

Suggested by the webcue spike (#6), which found this while shimming, but it
stands on its own and this commit has nothing to do with the browser build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@stoatworks-labs
stoatworks-labs merged commit 9803fa6 into main Sep 3, 2026
3 checks passed
@stoatworks-labs
stoatworks-labs deleted the claude/cuetypes branch September 3, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant