Skip to content

IdleEndeavor/sift_music_sorter

Repository files navigation

Sift

Tinder for your Music Library

Sift is a keyboard-driven music library weeder for GNOME. It plays the chorus of each track in your library and lets you quickly decide to keep it, trash it, or skip it — all without lifting your hands from the keyboard.

app-running-example.mp4

How it works

Sift scans a folder you choose, then plays the most recognisable part of each track — the chorus — so you can make a fast judgement call:

Key Action
Keep the song
Trash it
Skip for now
Space Play / pause
Ctrl+Z Undo last action
I View song info
Ctrl+D Open library dashboard

Chorus detection uses LRCLIB synced lyrics where available, falling back to librosa RMS energy analysis. Results are shown as a live mel-spectrogram visualiser.

Your kept and trashed songs are saved to a workspace folder (~/Music/sift-workspace by default), so your decisions persist across sessions.


Features

  • Automatic chorus detection via LRCLIB synced lyrics or librosa energy analysis
  • Live mel-spectrogram visualiser with playhead
  • Dashboard to review liked and trashed songs, restore from trash, or delete files
  • Configurable workspace folder for storing your lists
  • Session memory — resumes where you left off
  • Full song metadata viewer
  • Keyboard-first design — judge an entire library without touching the mouse

Installation

Option 1 — Flatpak bundle (recommended)

Download sift.flatpak from the latest release and install it:

flatpak install sift.flatpak

Then launch it from your GNOME app launcher or run:

flatpak run io.github.IdleEndeavor.Sift

To uninstall:

flatpak uninstall io.github.IdleEndeavor.Sift

Option 2 — Run directly from source

Dependencies:

pip install librosa soundfile mutagen requests send2trash numba --break-system-packages

Install local icons and desktop entry:

bash install-local.sh

Run:

python3 sift.py

Building the Flatpak from source

You'll need flatpak-builder and the GNOME Platform/SDK runtime:

sudo dnf install flatpak-builder
flatpak install flathub org.gnome.Platform//47 org.gnome.Sdk//47

Then build and install:

flatpak-builder --force-clean --install --user build-dir io.github.IdleEndeavor.Sift.json

Note: All Python dependency wheels are fetched automatically from PyPI during the build. No manual downloads required.


Workspace

By default Sift stores your liked list, trash list, and session state in:

~/Music/sift-workspace/

You can change this in Menu → Preferences → Workspace. The workspace path itself is saved to ~/.config/sift/config.json.


Tech stack


License

GPL-3.0 — see LICENSE for details.

About

Tinder for Your Music Library

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors