Audio fixes:
- Multiply all synth volumes by 3x in playSynth() — previous gains
(0.25-0.65) were 10-30x quieter than drum sounds (gain 1.5-4)
- Add explicit ac.resume() in beginClassical(), startGame(), and
preview to fix Linux/Chrome AudioContext suspension
- Add 0.15s scheduling offset so AudioContext fully resumes before
first oscillator fires
Piece duration increases:
- Beethoven's 5th: 28s → 54s (113 melody notes). Added soft string
echo, extended scalar passages, sustained choir chords, 5 final
chords, and a fff motif restatement
- Hall of the Mountain King: 18s → 38s (117 melody notes). Expanded
from 5 to 8 acceleration passes (0.55s → 0.095s per note), added
repeated finale chords and final sustained chord
- O Fortuna: 22s → 43s (78 melody notes). Added second chant phrase,
quiet string interlude, second ascending passage, extended 12-note
climactic reprise, and double finale chords
https://claude.ai/code/session_01GdFrFqAe9e2DaJ86jZPEZE
Implements the Classical mode with a Web Audio synthesizer engine
supporting strings (sawtooth+lowpass), brass (square+lowpass),
woodwind (triangle), bass (sine), timpani (sine sweep), and choir
(detuned sines). Adds three playable pieces:
- Beethoven's 5th (Opening): The iconic G-G-G-Eb motif with full
orchestral backing, scalar passages, and power chords (~28s)
- Hall of the Mountain King (Grieg): 5-pass accelerating theme that
starts slow with woodwinds and builds to a frantic brass finale
- O Fortuna (Orff): Dramatic choral piece with choir synth, ascending
and descending passages, and climactic D-minor finale
Background synth plays automatically while melody notes scroll as
hittable targets. Scoring, pad toggles, preview, and multiplayer
all work with classical pieces.
https://claude.ai/code/session_01GdFrFqAe9e2DaJ86jZPEZE