AMBIENT ⬢
MUSIC FOR BUS STOPS
BOOTLEGGED BY BOBBY MEYER
2026.09.12 updated 2026.09.16
algorithmic ambience on the cheap
algorithmic ambience on the cheap
Bootlegged by Bobby Meyer, 2023.
Static. Open index.html, or serve the folder:
python3 -m http.serverp5 and p5.sound load from a CDN. The samples and the cover are in the repo.
| Do this | Get this |
|---|---|
| Click the album art | Start generating |
| Click again | Stop, letting the playing voices finish |
| Resize the window | Canvas follows, to a maximum of 600px |
| Samples | Eight mp3s, samples/p1–p8, picked at random with replacement |
| Voices | At most 3 at once |
| Playback rate | 2/3 — a perfect fifth down |
| Gap between entries | 3–10s while there is room for another voice |
| Last voice | The next enters 0.25–1s before it ends, so the sound never drops out |
| At the cap | Waits 1–3s, then re-decides |
Samples are trimmed to just their sound, so the space between entries is made at playback, not baked into the files.
An FFT per sample is drawn over the cover while it plays.
| File | Holds |
|---|---|
index.html |
The page: loads p5, the styles and the sketch |
sound.js |
The sketch — preload loads the samples and cover, draw renders the FFT, playMusic is the loop |
sound.css |
Album-art layout |
map.png |
The cover: a halftone topographic map |
samples/ |
Eight mp3 samples |
p5.js 1.11.3 and p5.sound, from jsDelivr. No build, no dependencies, no package manager.