Overview
A second-pass audio design pass after the base audio integration ships. Goal: a cohesive, cinematic audio layer tightly coupled to the visual escalation system.
Status: Post-MiniPay launch roadmap. Depends on Audio integration issue #9.
Improvements
Dynamic music system
- Three intensity layers: ambient (sparse) → active (driving beat) → intense (max BPM + percussion)
- Layers crossfade based on current score tier (Tier 0 = ambient, Tier 2 = active, Tier 3+ = intense)
- Implemented via Web Audio API
AudioBufferSourceNode with crossfade gain nodes
Positional audio
- Piece placement pitch varies by column (left = lower, right = higher) — creates a xylophone effect
- Line clear pans from the direction of the cleared row/col (left pan for vertical clears, stereo for horizontal)
Haptic + audio sync (MiniPay)
- Every
navigator.vibrate() call gets a matching audio cue at the same frame
- Short vibration = short click SFX; long vibration = longer swoosh SFX
Combo crescendo
- Pitch of the clear sound rises one semitone per streak level
- At UNSTOPPABLE tier: +7 semitones above base pitch
- Implemented via
AudioBufferSourceNode.playbackRate (1.0 + streak × 0.06)
Game over swell
- Background music fades to silence over 2 seconds while a descending tone plays
- New personal best: triumphant fanfare replaces the descending tone
Contract change required: No
Overview
A second-pass audio design pass after the base audio integration ships. Goal: a cohesive, cinematic audio layer tightly coupled to the visual escalation system.
Improvements
Dynamic music system
AudioBufferSourceNodewith crossfade gain nodesPositional audio
Haptic + audio sync (MiniPay)
navigator.vibrate()call gets a matching audio cue at the same frameCombo crescendo
AudioBufferSourceNode.playbackRate(1.0 + streak × 0.06)Game over swell
Contract change required: No