DIAL
POWER
ON AIR
BUFFER
HIGH FIDELITY
TUNE A STATION TO START THE READOUT
VOLUME
75
TUNING
0
HISS
0
SCROLL
55
BAND
READY. Press SEARCH to scan the distance you picked, or look up a name below.
    Turn it around for the manual, the serial plate, and the source code.
    DIAL MODEL D1
    REAR ACCESS
    TAP THE WHIP TO EXTEND
    ANT 75 OHM
    BATTERY DOOR   4 x D CELL   PUSH TO OPEN
    PHONES
    AUX IN
    AC 120V
    EXT SPKR

    OPERATING INSTRUCTIONS

    Finding stations

    • SEARCH uses your browser location and the distance box beside it, then sorts by how close each station is.
    • LOOK UP, at the bottom, takes a station name, a call sign, or a city. The state list beside it comes from the catalog.
    • Press any row in the green log to tune it. Press the star to save it. SAVED lists what you kept.
    • Duplicate entries are merged by stream address and by name.

    Bands

    • LOCAL is the catalog search: SEARCH by distance, or LOOK UP by name, call sign, city, or state.
    • WORLD has an ALL EUROPE button, which pulls the most popular stations from nineteen European countries and groups them by country, plus city buttons from London and Paris to Mexico City, Tokyo, and Kingston. A city search covers roughly 30 miles around its center, plus stations the catalog files under that city or region. ICELAND searches the whole country.
    • GENRES pulls the most popular stations for a style straight from the catalog. The amber chip switches between US stations and the whole world, which is where the wider selection lives.

    Categories

    Every result is sorted into groups such as Public Radio, News and Talk, Jazz, Rock, Country and Folk, and Electronic and Ambient, with a heading in the log for each. The green chips above the log filter to one group, and the TUNING knob, PREV, and NEXT then stay inside that group. Grouping is worked out from each station's own tags and name, so a station with poor tags may land in Eclectic and Other.

    Scanning

    SCAN checks every station in the current list from this device, four at a time, and marks each with a green dot if its server answers or strikes it through if nothing answers at any of its addresses. HIDE DEAD drops the struck ones, and TUNING, PREV, and NEXT skip them too. When a station answers at a different address than the catalog lists, that address is remembered and used when you tune. Results keep for 12 hours.

    Answering is a strong sign, not a guarantee: a server can reply and still refuse to play outside its own website. The catalog also checks every station once a day and DIAL already leaves out the ones that failed, so a scan mostly catches stations that went down since then, or that your network blocks.

    SomaFM

    SomaFM's channels play on SomaFM's own site but may refuse to play inside another web page. If a SomaFM channel will not start, DIAL offers two links after a few tries: PLAY SOMAFM'S MP3 LINK, which opens the stream in the browser's own player the same way the MP3 link on SomaFM's page does, and OPEN SOMAFM'S CHANNEL PAGE, which has their web player. SomaFM is listener supported; consider supporting them at somafm.com.

    The readout window

    Once a station is tuned, the window under the dial scrolls its call sign, name, city and state, band and frequency, and bitrate, continuously from right to left.

    If the station publishes what is playing in a way a web page is allowed to read, the song title joins the scroll as NOW PLAYING and refreshes every 30 seconds. DIAL quietly tries five sources derived from the stream address: Radio.co, laut.fm, AzuraCast, Icecast status, and Shoutcast stats. Whichever answers first wins.

    Many stations will still show nothing, and that is not a fault. The title normally rides inside the stream as ICY metadata, which the browser keeps to itself and never hands to the page. Reading the station's own website instead is blocked by the same cross origin rule that killed the tone controls: a page cannot fetch another site's pages unless that site says it may, and station websites almost never do. Getting around it needs a small server of your own standing between this page and the station, which a single file has no way to provide. Nothing here is ever invented, so the readout stays quiet rather than guessing.

    The VU meter

    The meter above the speaker is a show piece, and it is labeled honestly here: the browser will not let the page read a stream's actual levels, so the needle is animated rather than measured. It only moves while audio is really playing, drops when the stream buffers or stops, follows the VOLUME knob, rises a little for the HISS knob, kicks when you change stations, and swings with the weight of a real VU movement. The red PEAK light flashes when it pushes past zero. The scale is laid out like a real VU face, spaced by signal voltage, which is why the numbers crowd together at the top end.

    Knobs

    • VOLUME sets the level. Drag up and down, or focus it and use the arrow keys.
    • TUNING sweeps the needle across the whole list and tunes the station it lands on, the way a real tuning knob walks the band. PREV and NEXT step one station at a time.
    • HISS mixes in the radio's own noise bed, generated inside the page. Turn it up for a weak signal feel underneath the music.
    • SCROLL sets how fast the readout travels, from a crawl to a sprint.

    Why there are no tone controls

    An earlier build had bass, treble, echo, and a spectrum analyzer. They are gone on purpose. A web page may only process or measure audio that the stream's server explicitly allows it to read, and most stations do not. On those, the browser still plays the sound but hands the page silence, so the knobs moved and nothing happened and the meter sat dead. Rather than ship controls that work on a minority of stations, DIAL now plays every stream the simple way, which is also the most reliable way, and keeps only the controls that always work. The noise bed and the tuning clicks are made inside the page, which is why those are real.

    About the data

    Stations come from the Radio Browser community catalog, which is free and needs no key. Entries are submitted by the public, so coverage of small local stations is uneven, and the distance search only returns stations whose submitter added coordinates. Frequencies are parsed out of station names, so a row reading STREAM means the entry carried no frequency. These are internet streams, not over the air signals.

    BAND FM 87.5 TO 108.0 MHZ BAND AM 530 TO 1700 KHZ SER. 0001
    CAUTION: opening this file from an https page will block streams served over plain http. Open it straight from disk for the widest station support. Nothing leaves the page except catalog queries and the stream itself.

    Take the source

    DIAL is one HTML file with no build step and no dependencies. Copy it, download it, edit it, host it.