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

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>
This commit is contained in:
Vance Ingalls
2026-08-20 16:39:25 -07:00
co-authored by Claude Sonnet 5
parent fa05d3a7c6
commit ee6486c7f2
4 changed files with 50 additions and 2 deletions
+3
View File
@@ -339,6 +339,9 @@ export const PRESET_PROBLEM: Record<string, string> = {
"pa-system": "Make it sound like a station announcement",
intercom: "Make it sound like a door intercom",
"doofus-worble": "Make it wobble like it is seasick",
chipmunk: "Make it small and squeaky",
giant: "Make it huge and deep",
monster: "Make it a monster",
"room-tight": "It sounds dry and stuck to the speaker",
"room-natural": "It should sound like a real place",
hall: "It should sound far away and big",
+22
View File
@@ -333,6 +333,28 @@ export const HF_AUDIO_FX_PRESETS: readonly HfAudioFxPreset[] = [
},
],
),
preset("chipmunk", "character", "Chipmunk", "Small, fast and squeaky.", [
{ type: "pitchshift", label: "Up High", params: { semitones: 7, mix: 1 } },
{ type: "highshelf", label: "Extra Sparkle", params: { frequency: 4000, gain: 3 } },
]),
preset("giant", "character", "Giant", "Huge, slow and deep.", [
{ type: "pitchshift", label: "Down Low", params: { semitones: -5, mix: 1 } },
{ type: "lowshelf", label: "Add Weight", params: { frequency: 150, gain: 4 } },
{
type: "compressor",
label: "Hold It Together",
params: { threshold: -18, ratio: 3, attack: 10, release: 120, knee: 6, makeup: 2, mix: 1 },
},
]),
preset("monster", "character", "Monster", "Deep, rough and too close.", [
{ type: "pitchshift", label: "Down Low", params: { semitones: -8, mix: 1 } },
{ type: "saturate", label: "Growl", params: { type: "tanh", threshold: -12, output: -1 } },
{
type: "reverb",
label: "Right Behind You",
params: { size: 0.3, damping: 0.5, wet: 0.22, dry: 0.85 },
},
]),
// ---------------------------------------------------------------- space --
preset("room-tight", "space", "Tight Room", "A small hard room — presence without wash.", [