'cmus.el' - A Simple Emacs Mode To (Remotely) Control The Cmus Audio Player (MacOS, Linux)
The mode is completely documented in the 'cmus.el' elisp file, from which I cite the relevant part here:
Overview -------- cmus.el provides a simple interface for cmus, the C* music player. It allows to control the basics, i.e. start, stop, pause, previous track, next track, status of cmus player, lyrics for the currently playing track and a possibility to look up the lyrics of a song, given artist and title of the song. It provides this basic functionality either on the local machine with cmus and Emacs running, or on a remote machine issuing the cmus commands via ssh. The main scenario is to remote control cmus from within a virtual machine running on the local machine. You don't have to leave the virtual machine in order to control cmus. No distractions only to mute the sound or to go on to the next track. Prerequisites -------------- * Local machine ** cmus installed, any version will do ** sshd installed if you plan to use it remotely, i.e. from a virtual machine ** Script to retrieve the lyrics from the internet, say ~/bin/lyrics-cmus.sh * Remote machine ** ssh public-key authentication to localhost configured Configuration of cmus --------------------- On cmus command line: :set status_display_program=/path/to/program/cmus-artist-title.sh To make this permanent, add the line above to your ~/.cmus/rc cmus-artist-title.sh writes the current cmus status (artist, track title, etc.) to a defined file, say ~/cmus-status.txt. Configuration of cmus.el ------------------------ cmus.el support the Emacs Custom interface invoked with 'M-x customize'. cmus is located in the subgroups 'Application/cmus' and 'Multimedia/cmus', respectively. The entries there are self-explanatory, really, believe me 8-) . The parameter 'Cmus Lyrics Command' is the full path to a script/program which retrieves the lyrics of the currently playing track. It reads this information from cmus-status.txt. Alternatively, the script accepts two parameters, 'artist' and 'title', for example 'Beatles yesterday'. cmus.el buffer -------------- Messages returned to Emacs are logged into buffer *CMUS-Shell-Output*. If things go awry, look there for a clue what went wrong. Configuration of ~/.emacs ------------------------- In order to load cmus.el at startup, add the following line to ~/.emacs: (load-file "~/bin/emacs/cmus.el")
The Emacs mode can be downloaded here. Make sure you are going to check its authenticity with gpg using its signature. You can find an example for a script retrieving the lyrics of a song, i.e. 'lyrics-cmus.sh' here.