Shadows of Doubt
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
Downloads
88
Size
150KB

Jazz Radio

Smooth jazz for your late-night investigations. Jazz Radio plays the 24/7 Relaxing Jazz Piano Radio live stream right inside Shadows of Doubt, with a small noir CRT-style player in the corner of the screen.

┌╴                                        ╶┐
  JAZZ RADIO ▂▅▃▆▄                  ● LIVE
  ──────────────────────────────────────
  Relaxing Jazz Piano Radio - Slow Jazz…
  Cafe Music BGM channel  ·  12:31
  [■ STOP]  ▮▮▮▮▮▮▮▮▯▯▯▯▯▯▯▯▯▯▯▯     40%
└╴                                        ╶┘

Features

  • Live jazz stream that plays while you play, with no game audio files replaced
  • Its own volume control, separate from the game's sound and saved between sessions
  • Mini player showing stream title, channel, status (LIVE, BUFFERING..., RECONNECTING...) and listening time
  • Hotkeys that work without opening any menu
  • Automatic reconnect if the stream or your connection drops
  • Streaming and decoding run in the background, so the game never stalls waiting for the network

Controls

Key Action
F7 Play / stop
F8 Show / hide the panel (while hidden, it pops up for 3 seconds on any hotkey)
PageUp / PageDown Volume up / down

Panel buttons and the volume bar also work with the mouse while the cursor is free (menus, pause). All keys can be changed in the config.

Installation

1. Install the mod

With r2modman / Thunderstore Mod Manager (recommended): click Install. BepInEx is installed automatically.

Manually: install BepInExPack IL2CPP, launch the game once, then extract this archive into <game folder>\BepInEx\plugins\JazzRadio\.

2. Download the streaming tools (one time)

The mod uses three free command-line tools to play the stream: yt-dlp, ffmpeg and deno. They are not bundled with the mod. Open the mod folder and double-click install-tools.cmd: it downloads the official builds from their GitHub releases into %LOCALAPPDATA%\JazzRadio\tools.

  • r2modman: Settings → Browse profile folder, then BepInEx\plugins\<author>-JazzRadio\.
  • Manual install: <game folder>\BepInEx\plugins\JazzRadio\.

The tools live outside the mod folder, so mod updates and new mod-manager profiles don't need them again. Already have the tools? Put them on your PATH or set their paths in the config instead.

3. Play

Start the game. The radio starts by itself after a few seconds of buffering.

Configuration

BepInEx\config\jazzradio.shadowsofdoubt.cfg is created on first launch (r2modman: Config editor).

Section Key Default Description
Stream Url the jazz stream Any page yt-dlp understands, e.g. another YouTube live stream
Stream AutoPlay true Start playing when the game loads
Audio Volume 0.4 Music volume, 0..1 (saved automatically)
Audio VolumeStep 0.05 Volume change per hotkey press
Tools YtDlpPath / FfmpegPath empty Explicit paths to the tools; empty = automatic
UI ShowPanel true Show the panel on start
UI Anchor TopRight TopLeft / TopRight / BottomLeft / BottomRight
UI Margin / Scale 16 / 1.0 Distance from the screen edge and panel size
Keys TogglePlay / TogglePanel / VolumeUp / VolumeDown F7 / F8 / PageUp / PageDown F1–F24, A–Z, 0–9, Keypad0–9, Home, End, Insert, Delete, Minus, Equals, None…

Troubleshooting

Check BepInEx\LogOutput.log for lines starting with Jazz Radio.

  • yt-dlp not found / ffmpeg not found: run install-tools.cmd (step 2).
  • yt-dlp failed: ...: YouTube regularly breaks older yt-dlp versions. Run install-tools.cmd again to update the tools.
  • Panel buttons don't react: the game captures the cursor during gameplay. Use the hotkeys or open the pause menu.
  • No sound but the panel says LIVE: check that the music volume isn't at 0% and that Windows hasn't muted the game in the volume mixer.

Notes

  • This is a live stream with no track list, so the panel shows the broadcast title and channel instead of song names.
  • Stopping and starting again rejoins the broadcast at the current live moment.
  • Windows only.
  • The mod plays a public stream for personal listening. All music belongs to its owners; please respect YouTube's terms of service.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.