Network Music

Play MP3s straight off a NAS, a spare box with nginx on it, or any other HTTP server the radio can reach — browse its folders on the radio's screen or in the web player, with the track length read out of the file itself. No cloud, no account, nothing uploaded anywhere. The config below is the whole of it. Serving it costs almost nothing: this was tested under nginx, and on an ESP32-P4 handing out files from its own SD card, where it runs without trouble.

What the server has to do

One thing, and it is the thing people trip on: answer a directory request with JSON. AtlasCube does not scrape HTML index pages — it parses the listing nginx produces with autoindex_format json. Point it at a plain HTML index and it will tell you so rather than pretending the folder is empty.

Plain http:// only — the radio refuses https:// here and does not follow redirects, so a host that pushes everything to HTTPS will not work at all. That is also the reason a server on your own network is the easy answer: there is no TLS on this path and no authentication, so anything you put on a public host is readable by anyone who finds it, and the traffic crosses the internet in the clear. It will work from anywhere the radio can reach — whether it should is your call, not a limitation.

A complete nginx server

server {
    listen 8090;
    server_name _;

    root /srv/music;
    charset utf-8;
    sendfile on;

    location / {
        autoindex on;
        autoindex_format json;
    }
}

Why each line is there

autoindex on;
autoindex_format json;
The listing itself. Without the second directive nginx serves an HTML page and the radio reports “Enable nginx autoindex_format json”.
charset utf-8; Track and folder names outside ASCII. The device keeps names as raw UTF-8 and percent-encodes them when it builds a URL, so the listing has to be UTF-8 to begin with.
root /srv/music; The folder tree you want to browse. Sub-folders become the hierarchy you walk on the device.
listen 8090; Any port you like — it goes into the address you give the radio.
sendfile on; Plain throughput. Not required.

Pointing the radio at it

  1. Open the radio's web panel → Settings → Network → Network Music, or the Network Music page itself.
  2. Enter the server root — for the block above that is http://your-nas:8090/. Keep the trailing slash.
  3. Save. The address is kept on the device, so it survives a reboot; a fresh device has none.
  4. Browse to a folder and pick a track. That folder becomes the queue, and playback carries on through it.

What to expect

Once a server is set, Network Music joins the screens you swipe through on the device, with its own folder browser. Picking a track in the web player and picking one on the radio do the same thing — both build the same queue, so the elapsed time, the length and Previous / Next agree wherever you look.

The length comes from the file's own header, so it is exact for VBR as well as CBR — and an album whose tag carries cover art, pushing the audio a few hundred kilobytes in, is read just the same: the radio works out where the audio starts and fetches a kilobyte from there.

MP3 only for now, at most 128 entries per folder, and the end of a folder stops playback — there is no shuffle or repeat here yet.

Try the player in the demo Flash a device Back to the overview