# Karaoke Rhythm Mode

Section 132 is implemented as the `FV2KaraokeRhythmModeCatalog` in `V2Audio`.
The catalog is initialized by
`UV2AudioBlueprintLibrary::BuildDefaultKaraokeRhythmModeCatalog`, exposed
through `UV2AudioConfigAsset`, and registered by `UV2AudioSubsystem`.

## Karaoke Mode

- Each launch karaoke entry is a per-fighter signature song with two
  alt-character song links, localized selections, and licensed-music metadata
  where contracted.
- Rhythm inputs cover timed taps, sustained held notes, and drift-tilt vibrato.
- Scoring is deterministic and off rollback: pitch accuracy is 40 percent,
  timing precision is 40 percent, and style flair is 20 percent.
- Perfect scores require 99+ total score plus all timed, held, and vibrato
  inputs; the subsystem returns the per-song cosmetic unlock id.

## Rhythm Combat

- `FV2RhythmCombatRuleSpec` binds stage music BPM to a beat grid.
- Combo inputs inside the authored timing window receive the on-time multiplier.
- Combo inputs outside the window receive the off-beat penalty scalar.
- HUD beat indicator support is part of the runtime contract so stage UI can
  render the beat lane without guessing.

## DJ Booth Mode

- `FV2DJBoothModeSpec` covers the Def Jam DJ Booth ruleset, Battle Hub arcade
  cabinet, and online DJ tournament.
- Launch record count is 52, meeting the 50+ requirement with 52 authored
  `FV2DJRecordSpec` entries.
- Each record includes record id, title, BPM, genre tag, crossfade metadata, and
  a `/Audio/Music/DJBooth/` asset path.
- Turntable input affects crowd reaction, meter regeneration, and combo timing
  bonus.

## Gallery, Jukebox, And Visualizer

- `FV2JukeboxPlaylistSpec` supports per-account unlocked playlists in Battle
  Hub, Garage, and Apartment hub surfaces.
- Playlist sharing uses the `ShareCode.KaraokePlaylist` namespace.
- `FV2SoundtrackVisualizerSpec` drives music-only listening mode with audio FFT
  analysis and reactive Niagara VFX.

## Broadcast And Crossplay

- `FV2KaraokeBroadcastSpec` streams karaoke matches to `BattleHub.Stage.Karaoke`
  with audience emote reactions.
- `FV2CrossplayKaraokeRankedSpec` defines the cross-platform ranked queue,
  per-song leaderboards, and per-fighter karaoke rank tiers.

## Verification

- Contract: `V2/ue/Content/V2/Audio/KaraokeRhythmMode_V2_Contract.json`
- Balance data: `V2/balance/audio/karaoke-rhythm-mode.json`
- Checker: `V2/ue/Tools/check-v2-karaoke-rhythm-mode.py`
- Automation: `V2.Audio.KaraokeRhythmMode.AssetContract`, `V2.Audio.Module`
