Skip to content

feat(core,studio): the character presets pitch shift unlocks - #3277

Merged
vanceingalls merged 1 commit into
mainfrom
wa-22b-character-presets
Aug 21, 2026
Merged

feat(core,studio): the character presets pitch shift unlocks#3277
vanceingalls merged 1 commit into
mainfrom
wa-22b-character-presets

Conversation

@vanceingalls

Copy link
Copy Markdown
Collaborator

Summary

  • Ships Chipmunk, Giant, and Monster as presets on the pitchshift worklet effect P1 added — pure data + copy, no new plumbing.
  • Every param verified against the live effect registry (audioFx.ts) rather than trusted from the step doc's sketch — pitchshift/saturate/reverb/compressor/shelf keys all matched exactly.
  • Per-preset title treatment (font, size, tracking, hue) for all three, satisfying the style-coverage, hue-distance-from-accent, and per-character-background-uniqueness tests.
  • Complaint-line copy stays in the non-voice vocabulary the audit test enforces — giant, not a speech word like CapCut's "Deep Voice" (per the design doc's own near-miss).
  • Updates plans/audio-fx-presets.md's two limits paragraphs to record that pitch shift landed and note Robot/Alien are still out (ring modulation, unbuilt).

Stack

Depends on and stacks on:

Should merge after all three.

Test plan

  • bun run build clean
  • packages/core full suite: 2344/2344 pass
  • packages/core/src/audioFxCopy.test.ts (vocabulary audit): 28/28 pass
  • packages/studio propertyPanelFxSection.test.tsx + propertyPanelFxPresetStyle.test.ts: 108/108 pass
  • oxfmt/oxlint clean
  • pre-commit hooks (lint/format/fallow/typecheck/commitlint) all green

🤖 Generated with Claude Code

miga-heygen
miga-heygen previously approved these changes Aug 21, 2026

@miga-heygen miga-heygen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

Approve. Independent read at exact head.

Three character presets — chipmunk (+7st + high shelf sparkle), giant (-5st + low shelf weight + compressor glue), monster (-8st + tanh saturate growl + close reverb). Each builds a chain with the new pitchshift plus supporting FX, following the existing preset pattern exactly.

PRESET_PROBLEM strings, FX_PRESET_STYLE entries, and plans doc all updated. The plans doc honestly notes what's still out of scope (robot/alien need ring mod).

No issues. Ship it.

— Miga

@terencecho terencecho left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent read at head cd95622

Concurring with @miga-heygen's approve on the shared verification: three additive character presets, no existing preset touched, style + copy + plan updates in lockstep.

Additional checks I ran on top of that:

  • Defense-in-depth on the pitch clamp. The three semitone values (7 / -5 / -8) sit inside both bounds: the effect registry (audioFx.ts min/max [-12, 12]) AND the worklet's own runtime clamp (Math.max(-12, Math.min(12, p.semitones ?? 0)) in the HfPitchshift processor from #3276). So even if a future spec-only widening let a param through, the worklet still caps it — musically comfortable + safe.
  • Non-pitch params also in-range against audioFx.ts: highshelf freq 4000Hz / +3dB, lowshelf freq 150Hz / +4dB, compressor threshold -18dB / ratio 3, saturate tanh, reverb size 0.3 / wet 0.22. All within registered mins/maxes.
  • Structural non-regression. The three new preset(...) calls are appended after doofus-worble and before the space block's room-tight. pa-system / intercom / doofus-worble (immediately before) and room-tight (immediately after) are byte-identical to prior. No sibling drift.
  • No new plumbing — presets are pure data written into data-fx-chain. The "scoped gate" question reduces to "did the author touch anyone else's chain?" — they didn't.

CI: all required checks green; regression / player-perf / preview-regression all SUCCESS; no cascade gotchas triggered.

— Review by tai (pr-review)

Base automatically changed from wa-22a-pitchshift to main August 21, 2026 09:05
@vanceingalls
vanceingalls dismissed miga-heygen’s stale review August 21, 2026 09:05

The base branch was changed.

@vanceingalls
vanceingalls force-pushed the wa-22b-character-presets branch from cd95622 to e470beb Compare August 21, 2026 09:06
Chipmunk, Giant, and Monster ship as presets on the pitchshift worklet
P1 added: Chipmunk pitches up and adds sparkle, Giant pitches down with
weight and a compressor to hold the extra low end together, Monster pitches
down further with saturation growl and a close, tight reverb. Every param
verified against the live effect registry rather than sketched — the
compressor/reverb/saturate/shelf keys all match exactly.

Each gets its own title treatment (font, size, tracking, hue) so the FX
rack's per-preset styling coverage and hue-distance/background-uniqueness
tests extend cleanly to the three new entries, and complaint-line copy in
the non-voice vocabulary the audit test enforces (no speech words — "Giant"
over CapCut's "Deep Voice", as the design doc records).

Updates plans/audio-fx-presets.md's two limits paragraphs to record that
pitch shift landed and this half of the character list now ships; Robot and
Alien stay out of scope (ring modulation, still unbuilt).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vanceingalls
vanceingalls force-pushed the wa-22b-character-presets branch from e470beb to ba7500a Compare August 21, 2026 09:07
@vanceingalls
vanceingalls merged commit 5e0cc75 into main Aug 21, 2026
58 checks passed
@vanceingalls
vanceingalls deleted the wa-22b-character-presets branch August 21, 2026 16:08
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.

3 participants