1
1
Fork
You've already forked muu
0
muu - A music player built on GNU Emacs and EMMS
  • Emacs Lisp 99.7%
  • Shell 0.3%
Find a file
2024年07月27日 10:21:55 +02:00
.muu Customize mode line, remove unnecessary components. 2024年07月27日 10:00:13 +02:00
LICENSE Initial commit 2024年05月07日 11:56:11 +02:00
muu Initial commit 2024年05月07日 11:56:11 +02:00
muu_screenshot.png Update screenshot. 2024年07月27日 10:13:07 +02:00
README.org Update Readme Changelog. 2024年07月27日 10:21:55 +02:00

muu

muu is a music player built on GNU Emacs and EMMS (Emacs Multimedia System). This is my configuration of EMMS that I have put together. I'm putting it up in the hope that it will be helpful for other users, raise interest in EMMS ... and maybe one or two persons might use muu as-is!

It is a keyboard-driven, filesystem-oriented* music player. It is heavily inspired by the music player MOC (essentially, the goal of muu is to be a clone of MOC). muu is intended to be a standalone program (a separate Emacs-process). The rationale for this is to achieve a tightly integrated music player program, with quick single-key keyboard shortcuts among other things.

muu is a fairly extensive modification of Emacs, many common keybindings have been changed/removed.

Some features of muu are:

  • Application volume-control.
  • Multiple playlists.

"File/filesystem oriented music player" can be understood as that the music player interacts directly with the filesystem (adding files et.c.), as opposed to a "library"-paradigm where it instead interacts with an internal library constructed from metadata of your music collection.

Contents

Screenshots

/Heathcliff/muu/media/branch/master/muu_screenshot.png

Installation

Requirements:

  • A fairly modern version of Emacs.
  • mpv: The software actually playing media.

Emacs packages used:

  • use-package
  • EMMS
  • dired-narrow
  • loccur

(These packages installs automatically.)

  1. Make sure you have Emacs and mpv installed.
  2. Place the directory .muu, containing init.el, settings.el and keybindings.el in your home folder.
  3. Start muu by executing the file muu, which simply is the command emacs --init-directory=~/.muu/, or run this command directly, or setup an alias for your shell.
  4. The very first time you start muu, Emacs packages will be downloaded, installed and compiled. Some compilation warnings could pop up, the easiest thing is to simply quit muu and start it again.

Note: It is assumed that --init-directory=~/.muu/ is sufficient to separate muu from your usual Emacs.

Configuration

See the files settings.el and keybindings.el for settings and keyboard shortcuts. In settings.el you can set the startup directory and also "bookmarks" for up to 10 directories that you want to quickly switch between (see 'File browser' for more information).

Some settings are done in init.el (mostly the use-package declaration of EMMS) but shouldn't normally be of any interest. Playlist track description is done in init.el and could be one thing some want to change.

Usage

muu is simply a file browser view (on the left side) and playlist view (on the right side). Many common Emacs keybindings have been changed/removed, but essential ones are the same: C-g, M-x, C-x C-c.

Global keybindings:

Key Action
Escape Quit command (equivalent to C-g)
Tab Switch window
f / \ Search
Space Pause
up/down Line up/down
left Seek backward
right Seek forward
+ . Raise volume
- , Lower volume
s Stop
n Next track
b Previous track
C Clear playlist
S Toggle Random
C-w Write out/save playlist

Search will narrow down the view to any content matching the search string. It behaves a bit differently in the file browser and playlist views, hit 'g' in file browser to undo the narrowing, in playlist hit either 'Enter' or the Search-key again to undo.

File browser

File browser keybindings:

Key Action
Enter Enter directory
a Add to playlist
g Refresh, undo narrowing
u Up directory
J Go to (Jump) to directory
[1-0] Go to bookmark directory #1-10

Add will add the file, directory or playlist file (.pls .m3u) the cursor is currently placed on. The keys 1,2..0 are shortcuts for quickly jumping to directories you often want to visit.

Playlists

muu supports multiple playlists, the one currently shown is "current". Example: If a track is playing in one playlist, and you switch over to another playlist, when the track finishes, the next track will be selected from the playlist currently shown.

Playlist keybindings:

Key Action
Enter Play track
c Center view on current track
d Remove track
C-d Kill playlist
P Create playlist
[ Previous playlist
] Next playlist
} Rename playlist

Be careful not to hit C-d when you only have one playlist! The order for "next/previous" playlist can potentially be a bit weird.

Changelog

v1.4

Minor improvement.

v1.3

Add search functionality for playlist view. Enable the basic cue-support in EMMS. Minor improvements.

v1.2

Display playlist track number. Progress bar: Fix occasional error.

v1.1

Minor improvement.

v1.0

Initial release.

Development & Issues

I am not an elisp programmer, there is probably code that is horrible and could be improved. keybindings.el is pretty messy, and the keymap was put together somewhat ad-lib.

This is just a hobbyist project, I will probably not put a lot of effort or time into it.

Some EMMS notes

From my experimentation with EMMS, I find that mpv seems like the best choice of player backend. With mpv it is possible to have application-specific volume-control, and seeking works well. (I only also tried vlc which had issues with seeking and volume-control doesn't seem possible)

Copyright assignment

muu is distributed under GPL license version 3 or any later version. See LICENSE file.