A new music player built around Python and GTK
Go to file
Anna Schumaker c3818a2b18 Emmental 3.2 AUR commit
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2024-03-20 13:55:33 -04:00
aur@543220f359 Emmental 3.2 AUR commit 2024-03-20 13:55:33 -04:00
emmental Emmental 3.2 2024-03-20 13:38:09 -04:00
icons/scalable header: Add a PasswordEntry for inputting the ListenBrainz token 2024-03-18 11:17:31 -04:00
mpris-spec@51e5848f9f mpris2: Add an Mpris2 DBus Connection 2023-04-12 10:41:42 -04:00
tests Emmental 3.2 2024-03-20 13:38:09 -04:00
tools install: Update the install target for Emmental 3.x 2023-05-23 09:16:52 -04:00
.debug Rename the debug file to .debug 2021-07-26 14:29:40 -04:00
.gitignore Emmental 3.0 AUR commit 2023-05-24 14:48:15 -04:00
.gitmodules submodules: Update the git url of the mpris spec 2024-01-20 10:47:55 -05:00
LICENSE Initial commit 2019-01-24 09:35:41 -05:00
Makefile Emmental: Add a MICRO_VERSION 2023-05-25 10:19:51 -04:00
README.md listenbrainz: Add an initial ListenBrainz object 2024-03-20 13:35:13 -04:00
com.nowheycreamery.emmental.desktop Rename emmental.desktop 2023-06-01 11:46:10 -04:00
emmental.py Rename emmental3.py --> emmental.py 2023-05-10 17:42:42 -04:00
pytest.ini emmental3.py: Start Emmental 3.0 2023-03-07 11:18:46 -05:00



Emmental is a music player built using Python, GStreamer, and GTK. It tries to make it really easy to listen to your music, the default "Collection" playlist contains all your music files and is a fallback when other playlists run out of tracks.


  • MPRIS2
  • ReplayGain
  • Gapless playback
  • Background listening mode
  • Automatically pause after a user-configured number of tracks
  • Playlist creation and management
  • Automatic playlists based on Artists, Albums, Genres, Decades, and Years
  • Multiple library path support
  • Plays all audio formats supported by GStreamer
  • Renamed and updated tracks detection (using MusicBrainzIDs)


  • Python3
    • dateutil
    • gobject
    • liblistenbrainz
    • musicbrainzngs
    • mutagen
    • pyxdg
  • GStreamer
    • GStreamer good plugins (optional)
    • GStreamer bad plugins (optional)
    • GStreamer ugly plugins (optional)
  • GTK4
    • xdg-user-dirs-gtk
    • Libadwaita


Running make install will install Emmental to /usr/local by default. This can be changed during install:

PREFIX=/usr make install

ArchLinux users can also install Emmental though the AUR

Q & A

1. What's with the name? Why 'emmental'?

Emmental was the cheese used in a late-2018 experiment to learn if playing music while a cheese ages has an impact on flavor (spoiler alert: it did). I have a habit of naming projects and computers after cheeses, so when I started this project I named it after the cheese used in this experiment.

2. How do I edit my tracks?

Emmental doesn't have a built-in tag editor but it can detect when track files have been edited in an external program. I highly recommend using a dedicated tag editing program like MusicBrainz Picard, it does a much better job at tag editing than I ever will.

3. What is the ReplayGain "Decide automatically" option?

ReplayGain has two operating modes, "track" and "album", that the user can select between. Emmental builds on this and can automatically choose between the two based on the source playlist for a given track. This means if the current track comes from an Album playlist, ReplayGain will use "album mode" and if it comes from other playlists it will use "track mode".