ThUNER icon: a vinyl record whose label is a tuner dial

ThUNER

Knows what's playing, from the turntable or anywhere else, and puts the cover on your Tuneshine.

Download ThUNER 1.2.0 Source on GitHub macOS 15 or later · Apple silicon and Intel · updates itself · open source (MIT)

Now playing, wherever it's playing from

ThUNER lives in the menu bar. When Apple Music or Spotify is playing, it takes the track straight from the app. When the music comes from a record, the room, or a browser playing YouTube Music, it identifies it with Shazam, carefully: it waits for two results that agree before it changes anything, and it stays quiet when there's nothing to hear.

Then it shows the cover on your Tuneshine, in a floating window or on any screen in the house, and scrobbles the play to Last.fm or a service you host yourself.

The ThUNER menu bar panel showing Mastodon's Blood and Thunder, identified by Shazam

Listening

Any input

A turntable's line-in, a microphone, or a channel pair on a multichannel interface. Hide the inputs you never use.

System Audio

Identify what the Mac itself is playing, like YouTube Music in a browser, with no microphone. Limit it to certain apps, or leave some out.

Apple Music and Spotify

Reads what those apps are playing directly. The mic switches off and Shazam isn't used at all.

Smart about silence

An adjustable threshold sits above vinyl surface noise, and each confirmed track is checked again near its predicted end, so queries stay few.

Auto-pause

Turns the mic off after a stretch without music, and wakes when something starts playing. Just using the Mac doesn't wake it.

No mic at all, if you like

Switch microphone listening off and ThUNER follows Apple Music and Spotify only. Or pause it any time from the menu.

Display

Tuneshine

Finds your Tuneshine on the network, uploads each cover to it, and clears it after a while of quiet.

Web display

Any screen with a browser can show what's playing: a pretend Tuneshine with 64×64 glowing LEDs, or a large cover with the track details.

Floating cover and a pinnable panel

An always-on-top cover window, and a menu bar panel you can drag off the menu bar to keep open.

Two Macs, one display

Run it on the turntable Mac and your desk Mac. While the turntable plays, the desk Mac turns its mic off and shows what the turntable Mac is playing.

Scrobbling

Last.fm, without doubles

Scrobbles at the usual halfway-or-four-minutes mark, keeps an offline queue, and skips plays another scrobbler already sent.

Self-hosted too

ListenBrainz, Maloja, Koito and multi-scrobbler, alongside Last.fm or instead of it.

Radio mode

Keep showing covers without scrobbling, for when it's not your music.

Listening history

Every play, from every source, by day. Copy it as a list or export a CSV with Apple Music and Spotify links.

Control

Twist Commando

Put ThUNER's controls on any knob or pad: listening, silence level, a live input meter, track progress, radio mode, Tuneshine brightness and more.

A control API

Home Assistant, Stream Deck, scripts and dashboards can read ThUNER's state, follow it live, and change it with a token.

How it listens

  1. IdleBelow the silence threshold, nothing is sent anywhere.
  2. IdentifyingAudio is present: it asks Shazam every 12 seconds or so until two answers agree.
  3. PlayingThe cover goes up, the play is scrobbled, and the next check is timed for when the track should end.

Installing

  1. Download and unzipDrag ThUNER to your Applications folder and open it. It lives in the menu bar, not the Dock.
  2. Take the welcome tourA short tour asks for each permission at the step that needs it (the microphone, the local network), finds your Tuneshine, and connects Last.fm if you want.
  3. Pick an inputA turntable's line-in, a microphone or System Audio, and a silence level just above the noise.

ThUNER keeps itself up to date, installing updates quietly when nothing's playing (Settings → Updates).

Requirements

macOS
15 Sequoia or later, Apple silicon or Intel
Display
A Tuneshine on the same network (optional: the menu, floating cover and web display work without one)
Scrobbling
A Last.fm account or a ListenBrainz-compatible server (optional)
Permissions
Microphone to listen, System Audio Recording for System Audio, and Local Network for the Tuneshine and other Macs, each only if you use them

Why the name?

It comes from an old nickname, after the surname Bethune, and it's a tuner. The bold letters spell TUNER, with the h along for the ride.