Drumline Radio
A browser jukebox for full songs written as text scores: public-domain melodies arranged by
SZ and AI, and their own originals. It is the sibling of
Drumline Studio.
Play it: https://radio.ogsapps.cc/ (mirror: https://stansz.github.io/drumline-radio/)
It looks like a hi-fi radio tuner and plays the songs with a Web Audio synth:
- A tuner dial of stations, one per song, with a fixed needle that snaps to the nearest one.
- Category presets (All, Classics, Originals, Carols) above the dial show just that group of stations (remembered between visits).
- Within each category the dial is grouped by home style, with a caption at the start of each style. The style button next to the presets opens a Filter menu of the styles that category has (G cycles through them), showing only that style's songs; the playlist's library list has the same button.
- A Playlist view (Radio | Jukebox | Playlist switch in the header): add any song in any of the 8 styles, the same song more than once, reorder or remove entries, and play the list in order, with a Loop toggle. The playlist is saved on this device.
- A Jukebox view: the original songs as a wall of coded title strips, grouped by style or by composer. Tap a strip to play that song in its home style, and + adds it to the playlist.
- Share links: in the song card (tap the song title), "Share song" shares the song in the style you are hearing, and "Share from m:ss" adds the current time; the playlist view's Share button shares the whole list. Opening a link tunes the app, ready to play; a shared playlist asks before replacing or adding to yours. Uses the share sheet where the browser has one, otherwise copies the link. The song card also has "Save as WAV", which renders the song in the style you are hearing and downloads it (about 10 MB a minute; rendering takes roughly a quarter of the song's length, longer on a phone; the button shows the percent done, or the seconds so far in browsers that can't report progress).
- Instrument page:
instruments.html (not linked from the radio) lists every instrument in the synth bank; click one to hear a short phrase in a style that uses it, or pick another style's room.
- Installable and works offline: install it from the browser (or the Install button where offered; on iPhone, Share → Add to Home Screen). It checks for an update each time it opens or comes back to the front, and a new version takes over right away (if music is playing, the next time you switch away from it). The bottom of the ⓘ panel shows the build's commit and time, so you can check which version is running.
- A living score that scrolls each track's notes past a playhead. Drag it sideways to scrub through the song.
- VU meters, a glowing readout, and a volume slider with mute (remembered between visits).
- A repeat button that loops the current song (remembered between visits).
- Long titles scroll in the readout. Tap the readout for a song card: credits, key, tempo, length, and a short story for each public-domain song.
- An ⓘ panel with dim view and a black screensaver (auto-starts after 1 or 5 minutes without a touch) to save battery. The screen stays awake whenever music plays. Phones pause the live synth when the app is minimized, so keep it open.
- Nine styles (Synthwave, Chiptune, Orchestral, Techno, Lo-fi, Cinematic, Alt rock, Ambient, Studio) with remix by band button: switch the band
and the same notes play with that style's instruments. Ambient is a washed pad, a music box and a soft sub in a long dark reverb, over a bed of air. Studio is the open style: every instrument in the bank, through a clean mix. The styles fold into one button at the end of the transport, labelled with the style you are hearing (plus "remix" when it isn't the song's own); it opens them as a panel headed Style, three by three, with the song's own style starred and the selected one lit in its colour. The 1–9 keys still switch directly. On a phone the seek bar has its own full-width row above the transport.
- Each style has its own full-screen scene behind the player: a neon sunset and grid (Synthwave), an 8-bit night with pixel mountains (Chiptune), an evening concert hall with organ pipes, velvet drapes and drifting dust in the stage light (Orchestral), a warehouse with swaying lasers (Techno), a rainy window over city lights (Lo-fi), a widescreen sunrise over mountains with a lens flare (Cinematic), a brick-walled basement show under one spotlight (Alt rock), and a control room with acoustic panels and an on-air lamp (Studio). The lasers, rain and dust stop with reduced motion.
- Techno flashes the screen gently on the kick, within the WCAG flash limits (at most 3 a second, a soft fade). It is off with reduced motion, and the ⓘ panel has a switch to turn it off.
- Keyboard shortcuts: Space play/pause, ←/→ previous/next station, 1–9 styles, C category, G style filter, M mute, R repeat, S screensaver, J jukebox, P playlist view.
The sound engine, including the instrument bank and its plucked-string guitars, and how to add a
patch or a style, are described in docs/sound.md. To ask another AI model for a new
song, fill in the prompt template in docs/song-prompt.md.
Songs
Christmas carols, arranged by Claude and SZ:
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗