Skip to content
tie app

tie-audio

Your library, on shelves.

A tag-driven music player for tie. Home shelves, a cover wall, playlists and a play history that remembers what you actually listened to.

Stable LinuxAndroid GitHub ↗
tie-audio cover wall · 1440×900
tie-audio's cover wall: a grid of album artwork with the tag sidebar on the left and the transport bar at the bottom

The cover wall, with the tag sidebar, the Covers/Table/Now Playing tabs and the transport pinned to the bottom.

Highlights

The parts that matter.

Shelves, not spreadsheets
Jump back in, recently added, on this day, haven’t heard in a while.
Covers or columns
A cover wall and a sortable table share the same filters and search.
Gapless local playback
FLAC, MP3, WAV, OGG and Opus through PipeWire, or a remote pwplay server.
The queue you wanted
Shuffle, reorder, save as playlist. The next track is already loaded.
History as data
Plays are recorded in tie, so recommendations and ‘on this day’ are queries.
Media keys and phones
MPRIS on Linux, a media session and lock-screen controls on Android.
Home

A home that remembers.

Jump back in, recently played, recently added, because you played something else, haven't heard in a while, on this day. The shelves are queries over the play history that tie-audio records in tie, not a separate recommendation service.

  • Play history is data. Each play is an idempotent event with a count and a timestamp.
  • On this day is a date query, not a playlist you maintain by hand.
  • Favourites come from the same tags tie-view uses.
tie-audio tie-audio
tie-audio's compact phone home: shelves of album covers above a mini transport bar and a bottom navigation bar

The compact layout is the same app: shelves, a mini player and a bottom nav.

Albums

The wall, the table, the queue.

Covers for browsing, a sortable table for finding, and a queue that is visible while you are anywhere else. Choose columns, reorder, shuffle, save the queue as a playlist — then find it under Playlists tomorrow.

  • Gapless local playback over PipeWire, or a remote pwplay-server.
  • CUE sheets and zipped albums are first-class albums, not a folder of tracks.
  • Search covers albums, artists and tracks with the same field selector as the rest of the app.
tie-audio tie-audio
An album page in tie-audio: title, artist, year, Play album and Add to playlist buttons, and a track table with duration

An album is a page, with Play album, Add to playlist, and a track table you can sort.

Everywhere

Media keys, lock screens, no surprises.

MPRIS 2 on Linux means your keyboard's play button and playerctl just work. On Android, playback sits in the media session with lock-screen controls and audio focus. The history recorder is the only thing that writes back, and it writes to tie.

  • Flac, MP3, WAV, OGG, Opus — decoded by your system, not bundled codecs.
  • Remote control via tie-audio -control play-pause for a script or a key binding.
  • No account. No scrobbling, no cloud library, no listening profile.
hotkeys
desktop · rebindable in [Hotkeys]
Space  play / pause        N  next
X      stop                P  previous
→ ←    seek ±10s           = - volume
Esc    back

android · media session + lock screen swipe between home, albums, tags, playlist

Under the hood

tie-audio is a tag-aware player, not a music database with a UI. Albums come from audio-dir imports in tie; covers are resolved through the media model; play events are recorded as play-event subjects. If you already have the files, you already have the library — tie-audio just gives it a front end.

PieceWhat it does
audio-dirA directory that is an album: tracks, disc numbers, cover art.
member-ofThe album contract that groups tracks without moving them.
play-eventAn idempotent play with play-count and last-played.
playlistAn ordered playlist-track list, stored in the same collection.
pwplayThe playback engine, in-process or over HTTP.

The manual covers the connection setup, the two playback backends, the config file and the Android build. The shortcut reference is generated from the app’s defaults by the site tooling.

Where it is

  • Status: stable enough to use every day
  • Versioning: tie-gui is released from the repo; the apps are built from source.
  • Android builds need the libmpv cross-compile toolchain.
  • Playback history is opt-out, never uploaded anywhere.

Works with

  • tie — Tag it. Find it. Mount it.
  • tie-fm — Two panes. Both worlds.
  • tie-view — Tag at the speed of sight.
  • imgview — Point it at a folder.
  • tie-browser — Pages made of your library.
  • anneal — The coding agent that anneals.

Try it with your own files.

A single binary, a local library and no account. Keep the originals where they are.