v0.4.0
Two-layer "this is playing right now" visual:
(1) CSS dancing bars — four tiny vertical bars next to the "Now Playing"
label, staggered `@keyframes` pulse while audio plays. Pure CSS, no
JS dependency, tints to the user's WP admin colour scheme via
var(--wp-admin-theme-color). Driven by a single `.is-playing` class
on `.radio-player` toggled from the existing play/pause/error
handlers. Always works.
(2) Web Audio frequency visualizer (progressive upgrade) — on first play,
builds AudioContext + AnalyserNode + canvas drawing pipeline. When
the analyser starts returning real (non-zero) data, hides the bars
and shows the canvas with live frequency bars. Falls back to bars
if AudioContext is unavailable, createMediaElementSource throws, or
the analyser returns all-zeros for >2s (CORS silently blocking).
State machine on player._vizState: no-webaudio / init-failed /
cors-blocked / ok.
`<audio>` element gained `crossorigin="anonymous"` so Web Audio can read
the stream data (SomaFM serves the CORS headers).
Files: radio.php (version), inc/admin-page.php + inc/dashboard-widget.php
(.radio-player__indicator with .radio-player__bars + canvas; crossorigin
on audio), assets/css/radio.css (indicator, bars, radio-bars-dance
keyframes, canvas size), assets/js/radio.js (tryVisualizer,
startVizLoop, stopVizLoop; play/pause/error handlers wire the loop and
toggle is-playing), inc/about.php (history entry).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Radio — SomaFM player for your WordPress dashboard
A small, focused, free WordPress plugin that drops a SomaFM radio player into your admin dashboard. 44 hand-curated stations across 10 genres — ambient, electronic, lounge, rock, metal, jazz, world, reggae, holiday, and specials.
What it does
- Mini-player on WP Admin → Dashboard (opt-out via Settings)
- Dedicated page at WP Admin → Radio → My Radio
- Plays via HTML5
<audio>— no proxy server, no third-party tracking - Per-user state: each admin remembers their own station + volume
- Self-hosted update checker against the Gitea repo
Installation
- Download the latest release
.zipfrom git.davidtkeane.com/ranger/a-radio/releases - WP Admin → Plugins → Add New → Upload Plugin
- Activate
- Look at WP Admin → Dashboard for the mini-player, or WP Admin → Radio
Requirements
- WordPress 5.0+
- PHP 7.4+
- A modern browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
Credits
All stations and streams are provided by SomaFM, an independent, listener-supported, commercial-free internet radio network broadcasting from San Francisco since 2000. If you enjoy this plugin, please consider donating to SomaFM directly.
License
GPL v2 or later. See LICENSE (the same GPL v2+ terms as WordPress itself).
Author
David Keane — part of the RangerHQ plugin family. rangersmyth.xyz
Languages
PHP
59.3%
JavaScript
21.6%
CSS
19.1%