Skip to content

[Roadmap] Audio polish #16

@Otaiki1

Description

@Otaiki1

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions