> For the complete documentation index, see [llms.txt](https://btt-labs.gitbook.io/btt-labs-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://btt-labs.gitbook.io/btt-labs-docs/lab-radio.md).

# Lab radio

Listen to the 93-track browser radio, troubleshoot playback, or integrate the Web Audio music pack.

**Use this player in your own project:** [download the music player and read the quick-start instructions](https://bttlabs.fun/music-player/). The ZIP includes all 93 tracks, the source modules, a working browser demo, and the README. No GitHub login is needed.

Bob The Turtle's Super Ultra Mega Banger Remixes Of Fire runs in your browser on the [BTT Labs homepage](https://bttlabs.fun/).

## Listen

1. Open BTT Labs and find the radio panel.
2. Click or tap **Play**. Browsers require a user gesture before sound starts.
3. Choose a track with **Tune**, or use **Prev** and **Next**.
4. Use **Random** or **Replay** to change playback behavior.
5. Adjust **Volume** and use the **Song** slider to move through the track. Expand the controls if they are collapsed.

## If you hear nothing

Click Play after interacting with the page, raise the radio volume, and check the tab and device mute settings. If the page was interrupted or the device slept, return to the page and press Play again.

## What you are hearing

The BalloonPump Dance and Chip Music Pack contains 93 original tracks: 69 dance tracks followed by 24 chip themes. Tracks use 32-bar arrangements with variation, contrasting sections, and a return. The full catalog spans 88–144 BPM.

The dance tracks draw on Eurodance, techno, rave, and trance. Twelve chip themes use an NES-inspired pulse, triangle, and noise palette; twelve use SNES-inspired synthesized flute, bell, reed, and string colors. The melodies are original.

The music is synthesized with Web Audio. It does not require MP3, Ogg, WAV, sampled game music, or an external audio streaming service.

## Run the source demo

These instructions apply to the music pack source folder. From the pack root, start a local web server:

```
python3 -m http.server 8080
```

Open `http://localhost:8080/music/` and click Play. See [Uncle Matt's GitHub directory](https://github.com/uncmatteth) for the maintained projects and source instructions.

## Integrate the player

Keep all five modules together: `pocketBossEngine.js`, `pocketBossPlayer.js`, `tunes.js`, `arrangeTunes.js`, and `newTunes.js`. They live in `music/src/` in the pack. If your app serves a mirrored public copy, update its matching modules too.

This example assumes you copied those modules into `audio/pocket-boss/` relative to your integration module:

```
import { PocketBossEngine } from './audio/pocket-boss/pocketBossEngine.js';
import { PocketBossPlayer } from './audio/pocket-boss/pocketBossPlayer.js';
import { TUNES } from './audio/pocket-boss/tunes.js';

const engine = new PocketBossEngine({ volume: 0.55 });
const player = new PocketBossPlayer({
  engine,
  tunes: TUNES,
  storageKey: 'balloonPumpEurodanceTechnoPack1'
});

playButton.addEventListener('click', () => player.play());
```

In your app, `playButton` should refer to the actual Play button. Start audio from the click or tap handler.

## Validate an integration

* The catalog has 93 tracks, with IDs from `boss_001` through `boss_093`.
* Keep the first 69 IDs, titles, and order unchanged.
* Run `npm run validate` and `node --test scripts/validate.test.mjs` from the pack root.
* Check browser playback, volume, previous/next, random, replay, and seek after the user clicks Play.

The source README remains the reference for packaging and validation when the pack changes.
