emmental/README.md
Anna Schumaker 14c153733d listenbrainz: Add an initial ListenBrainz object
I created the foundation of what I'll need for working with
ListenBrainz. This includes a ListenBrainz GObject, a threading.Thread
implementation that will do the actual work for communicating with
ListenBrainz, and what will become a priority queue to make sure we do
certain operations (such as setting the user's auth token) first.

These are mostly placeholder classes right now, and future patches will
expand on what they can do.

Implements: #69 ("Add ListenBrainz support")
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
2024-03-20 13:35:13 -04:00

67 lines
2.4 KiB
Markdown

# 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
* liblistenbrainz
* 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](https://aur.archlinux.org/packages/emmental)
## Q & A
### 1. What's with the name? Why 'emmental'?
Emmental was the cheese used in a
[late-2018 experiment](https://www.smithsonianmag.com/smart-news/hip-hop-and-mozart-improve-flavor-swiss-cheese-180971721/)
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](https://picard.musicbrainz.org/), 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".