A new music player built around Python and GTK
Go to file
Anna Schumaker 2b5cdaa197 action: Add an ActionEntry class
This is inspried by the Gio.ActionEntry struct, which I can't figure out
how to get working in Python. I add on a few extra helpful features,
such as:

  - Automatically creating a Gio.SimpleAction
  - Tracking the desired accelerator keys
  - Binding the "enabled" state to a specificed property at construction

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2023-06-09 09:45:58 -04:00
aur@c6648433c3 Emmental 3.0.1 AUR commit 2023-06-01 11:34:24 -04:00
emmental action: Add an ActionEntry class 2023-06-09 09:45:58 -04:00
icons/scalable header: Add an icon for background mode to the Header 2023-06-01 11:13:44 -04:00
mpris-spec@51e5848f9f mpris2: Add an Mpris2 DBus Connection 2023-04-12 10:41:42 -04:00
tests action: Add an ActionEntry class 2023-06-09 09:45:58 -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 mpris2: Add an Mpris2 DBus Connection 2023-04-12 10:41:42 -04: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 Emmental 3.0.1 2023-06-01 11:14:40 -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

README.md

Emmental

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.

Features

  • 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)

Dependencies

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

Installing

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".