aboutsummaryrefslogtreecommitdiff
path: root/doc/emms.texinfo
diff options
context:
space:
mode:
authorYoni Rabkin <yrk@gnu.org>2015-12-10 18:22:37 -0500
committerYoni Rabkin <yrk@gnu.org>2015-12-10 18:22:37 -0500
commitd3ef182013df50b411d9927715444401b4c64504 (patch)
tree529a1f1e826f126053041cb16e0d679f56ced199 /doc/emms.texinfo
parent0cd9cd79678c3bb21d97764bf1d75fabd4dd75c5 (diff)
* doc/emms.texinfo: Reorganize.
Move the Quickstart Guide chapter to the very beginning and re-write it to be the tl;dr of the manual.
Diffstat (limited to 'doc/emms.texinfo')
-rw-r--r--doc/emms.texinfo509
1 files changed, 259 insertions, 250 deletions
diff --git a/doc/emms.texinfo b/doc/emms.texinfo
index 8de7649..a50265e 100644
--- a/doc/emms.texinfo
+++ b/doc/emms.texinfo
@@ -49,10 +49,10 @@ This is the Manual for the Emacs Multimedia System.
@menu
Starting out
* Introduction:: Introduction to Emms.
+* Quickstart Guide:: First steps with Emms for new users.
* Installation:: How to install Emms on your System.
-* Simple Setup:: Quick, basic default Emms setup.
+* Setup:: How to setup Emms.
* Configuration:: More detailed setup and configuration.
-* Quickstart Guide:: First steps with EMMS for new users.
* Getting Help:: Where to get help with Emms and make suggestions.
* Formats and Freedom:: File formats without restrictions.
@@ -67,6 +67,7 @@ Advanced Features
* Track Information:: More narrative track descriptions.
* Interactive Playlists:: Interactive Playlists.
* Markable Playlists:: Allow tracks to be marked.
+* Extending Emms:: How to define new players and modules.
Modules and Extensions
* The Browser:: Advanced metadata browsing.
@@ -75,13 +76,12 @@ Modules and Extensions
* Editing Tracks:: Editing track information from within Emms.
* Emms Mode Line:: Emms information on the mode line.
* Music Player Daemon:: Interface to Music Player Daemon.
-* Streaming Audio:: Interface to streaming audio.
* Lyrics:: Displaying lyrics synchronously.
* Volume:: Changing the volume.
+* Streaming Audio:: Interface to streaming audio.
* APE / FLAC Commands:: How to play next or previous track in these files.
* Bookmarks:: Saving a place in a media file.
* GNU FM:: Connect to music community websites.
-* Extending Emms:: How to define new players and modules.
Copying and license
* Copying:: The GNU General Public License gives you permission to
@@ -122,7 +122,7 @@ Extending Emms
@end ifnottex
-
+@c -------------------------------------------------------------------
@node Introduction
@chapter Introduction
@@ -155,11 +155,86 @@ When Emms finally has the sources in the playlist, it needs a player
to play them. @file{emms-player-simple.el} defines a few useful players, and
allows you to define your own in a very simple way.
+The Emms core comes with many additional features to extend its
+functionality.
+
The way Emms works is easy to customize with your own code or by using
-`M-x customize'.
+`M-x customize' or by changing the variables directly.
+
+
+@c -------------------------------------------------------------------
+@node Quickstart Guide
+@chapter Quickstart Guide
+
+This chapter demonstrates how to setup Emms so that you can start
+listening to your music without having to read all of the
+documentation first. This is the tl;dr version of the manual.
+
+The first thing you have to do is telling Emacs where Emms is
+located. Let's say you have it in @file{~/elisp/emms/}. So add this
+line to your @file{.emacs}:
+@lisp
+(add-to-list 'load-path "~/elisp/emms/lisp/")
+@end lisp
+
+More detailed information about installing Emms can be found in the
+installation chapter, @xref{Installation}.
+
+You'll then want to load Emms into Emacs. To achieve this you invoke
+the @code{emms-all} setup function by adding the following three lines
+to your @file{.emacs}.
+
+@lisp
+(require 'emms-setup)
+(emms-all)
+(emms-default-players)
+@end lisp
+
+The function @code{emms-default-players} in the last line sets up the
+list of default players. The list contains lightweight specialized
+players like ogg123 or mpg321 and we-play-everything-players such as
+mplayer, vlc, etc.. To be sure that emms can play all your music you
+should check that your preferred players are installed on the machine.
+
+More detail about setting up Emms can be found in the setup chapter,
+@xref{Setup}.
+
+Emms tries to display the tags (the name of the song, as opposed to
+the name of the file) of the music you listen to. Emms can use libtag,
+see @xref{Using TagLib}, or a combination of `mp3info' and `ogginfo'
+(make sure that they are installed if you want Emms to use them.)
+
+The last thing to do is to tell Emms where your music is; the root
+directory of our music collection. Let's say all your music is in
+@file{~/Music} or in subdirectories thereof.
+
+@lisp
+(setq emms-source-file-default-directory "~/Music/")
+@end lisp
+
+OK, now we've set up Emms. Reload your @file{.emacs} or restart Emacs to
+let the changes have an effect.
+
+Now we will add all our music to a playlist by invoking @kbd{M-x
+emms-add-directory-tree RET ~/Music/ RET}. We do this because then
+Emms will read the tags of all your music files and caches them (this
+is also required for the Emms browser, @xref{The Browser}.)
+
+To switch to the playlist buffer, invoke @kbd{M-x emms-playlist-mode-go}
+or simply @kbd{M-x emms}. You can see that most tracks are displayed
+with their file name, but track by track the filename gets replaced with
+the artist and track name of the file's tag.
+
+Go ahead and navigate to a track and hit @kbd{RET} on it to start
+playback.
+
+Now you can start exploring Emms. It's probably best to begin with the
+basic commands (@pxref{Basic Commands}), the interactive playlists
+(@pxref{Interactive Playlists}), and the browser (@pxref{The Browser}).
+@c -------------------------------------------------------------------
@node Installation
@chapter Installation
@@ -209,11 +284,11 @@ Note that Emms is a light-weight and agile program, you can therefore
run Emms just fine without byte compiling it.
+@c -------------------------------------------------------------------
+@node Setup
+@chapter Setup
-@node Simple Setup
-@chapter Simple Setup
-
-@cindex simple setup
+@cindex setup
@cindex setting up Emms
@cindex quick setup
@@ -279,7 +354,7 @@ functions like the above by looking at the existing function
definitions in @file{emms-setup.el}.
-
+@c -------------------------------------------------------------------
@node Configuration
@chapter Configuration
@@ -349,78 +424,7 @@ The method Emms will use is defined in the customisable variable
@var{emms-source-file-directory-tree-function}.
-
-@node Quickstart Guide
-@chapter Quickstart Guide
-
-This chapter demonstrates how to setup EMMS so that you can start
-listening to your music without having to read all of the documentation
-first.
-
-The first thing you have to do is telling Emacs where the sources of
-EMMS are located. Let's say you have them in @file{~/elisp/emms/}. So
-add this line to your @file{.emacs}.
-
-@lisp
-(add-to-list 'load-path "~/elisp/emms/lisp/")
-@end lisp
-
-Further informations about installing EMMS can be found in the
-installation chapter, @xref{Installation}.
-
-Let's say you want to enable all features which are considered stable by
-the EMMS developers. To achieve this you invoke the @code{emms-all}
-setup function by adding the following three lines to your @file{.emacs}.
-
-@lisp
-(require 'emms-setup)
-(emms-all)
-(emms-default-players)
-@end lisp
-
-The function @code{emms-default-players} in the last line sets up the
-list of default players. The list contains lightweight specialized
-players like ogg123 or mpg321 and we-play-everything-players like
-mplayer or xine. To be sure that emms can play all your music you should
-check that the needed players are installed.
-
-Further informations about the several setup scripts can be found in the
-simple setup chapter, @xref{Simple Setup}.
-
-Of course EMMS tries to display the tags of the music files you listen
-to. For this to work you have to make sure that the appropriate programs
-are installed. For mp3 files you need `mp3info', and for ogg files you
-need `ogginfo'.
-
-The last thing to do is to tell EMMS the root directory of our music
-collection. Let's say all your music is in @file{~/Music} or in
-subdirectories thereof.
-
-@lisp
-(setq emms-source-file-default-directory "~/Music/")
-@end lisp
-
-OK, now we've set up EMMS. Reload your @file{.emacs} or restart Emacs to
-let the changes have an effect.
-
-Now we will add all our music to a playlist by invoking @kbd{M-x
-emms-add-directory-tree RET ~/Music/ RET}. We do this because then EMMS
-will read the tags of all your music files and cache them. This is
-required for the browser, @xref{The Browser}.
-
-To switch to the playlist buffer, invoke @kbd{M-x emms-playlist-mode-go}
-or simply @kbd{M-x emms}. You can see that most tracks are displayed
-with their file name, but track by track the filename gets replaced with
-the artist and track name of the file's tag.
-
-Hit @kbd{RET} on a track to start playback.
-
-Now you can start exploring EMMS. It's probably best to begin with the
-basic commands (@pxref{Basic Commands}), the interactive playlists
-(@pxref{Interactive Playlists}), and the browser (@pxref{The Browser}).
-
-
-
+@c -------------------------------------------------------------------
@node Getting Help
@chapter Getting Help
@@ -438,7 +442,7 @@ which mirrors this mailing address at gmane.emacs.emms.user.
Emms also has a website at @url{http://www.gnu.org/software/emms/}.
-
+@c -------------------------------------------------------------------
@node Formats and Freedom
@chapter Formats and Freedom
@@ -467,7 +471,7 @@ code for a reference implementation freely available. For more
information about FLAC, go to @url{http://flac.sourceforge.net/}.
-
+@c -------------------------------------------------------------------
@node Basic Commands
@chapter Basic Commands
@@ -563,7 +567,7 @@ function uses @var{emms-show-format} to format the current track.
@end defun
-
+@c -------------------------------------------------------------------
@node The Core File
@chapter The Core File
@@ -753,7 +757,7 @@ For more basic commands defined in the core file see @xref{Basic
Commands}.
-
+@c -------------------------------------------------------------------
@node Sources
@chapter Sources
@@ -789,17 +793,17 @@ An Emms source for multiple directory trees - either @var{dir}, or the
value of @var{emms-source-file-default-directory}.
@end defun
@defun emms-source-playlist file
-An EMMS source for playlists. See @var{emms-source-playlist-formats}
+An Emms source for playlists. See @var{emms-source-playlist-formats}
for a list of supported formats.
@end defun
@defun emms-source-playlist-native file
-An EMMS source for a native EMMS playlist file.
+An Emms source for a native Emms playlist file.
@end defun
@defun emms-source-playlist-m3u file
-An EMMS source for an m3u playlist file.
+An Emms source for an m3u playlist file.
@end defun
@defun emms-source-playlist-pls file
-An EMMS source for a pls playlist file.
+An Emms source for a pls playlist file.
@end defun
@defun emms-source-find &optional dir regex
An Emms source that will find files in @var{dir} or
@@ -820,7 +824,7 @@ Search for @var{regexp} and display the results in a locate buffer
@end defun
-
+@c -------------------------------------------------------------------
@node Simple Players
@chapter Simple Players
@@ -851,7 +855,7 @@ and the sentinel string @var{str}.
@end defun
-
+@c -------------------------------------------------------------------
@node Playlists
@chapter Playlists
@@ -887,7 +891,7 @@ The current Emms playlist buffer is stored in the variable
@var{emms-playlist-buffer}.
-
+@c -------------------------------------------------------------------
@node Track Information
@chapter Track Information
@@ -910,7 +914,7 @@ of @uref{http://taglib.github.io/, TagLib}.
Automatic track information retrieval is enabled by default in the
`emms-standard', `emms-all' and `emms-devel' setup levels provided by
@file{emms-setup.el}. For more information about @file{emms-setup.el}
-see @xref{Simple Setup}.
+see @xref{Setup}.
If you would like to know how Emms track retreival works and how we
can define new methods for track retrieval see @xref{Defining Info
@@ -994,7 +998,7 @@ the right time to provide track info.
@end lisp
-
+@c -------------------------------------------------------------------
@node Interactive Playlists
@chapter Interactive Playlists
@@ -1007,13 +1011,13 @@ interactive mode is called the `emms-playlist-mode' and is defined in
The interactive playlist mode is enabled by default in the
`emms-standard', `emms-all' and `emms-devel' setup levels. For more
-information about Emms setup levels see @xref{Simple Setup}.
+information about Emms setup levels see @xref{Setup}.
@defun emms-playlist-mode-go
Switch to the current emms-playlist buffer and use emms-playlist-mode.
@end defun
-If you wish to make this the default EMMS playlist mode, add the
+If you wish to make this the default Emms playlist mode, add the
following to your @file{.emacs}.
@lisp
@@ -1120,7 +1124,7 @@ program and can therefore be used to include titles and annotations
within the playlist.
-
+@c -------------------------------------------------------------------
@node Markable Playlists
@chapter Markable Playlists
@@ -1142,7 +1146,7 @@ executing @command{M-x emms-mark-mode} in a playlist buffer. You can
return to the default interactive playlist mode with @command{M-x
emms-mark-mode-disable}.
-If you wish to make this the default EMMS playlist mode, add the
+If you wish to make this the default Emms playlist mode, add the
following to your @file{.emacs}.
@lisp
@@ -1207,139 +1211,7 @@ except it collects result of given function (that's why named with
-@node APE / FLAC Commands
-@chapter APE / FLAC Commands
-
-Often, a single APE or FLAC file contains a complete ablum. We can still
-play next or previous track in the ablum with the help of
-@file{emms-cue.el} package, provided there is a corresponding cue sheet
-file. This package also defines @code{emms-info-cueinfo} for retreiving
-the track information for APE / FLAC itself.
-
-To load @file{emms-cue.el}:
-
-@lisp
-(require 'emms-cue)
-(add-to-list 'emms-info-functions 'emms-info-cueinfo)
-@end lisp
-
-@defun emms-cue-next
-Play next track from .cue file
-@end defun
-@defun emms-cue-previous
-Play previous track from .cue file
-@end defun
-
-
-
-@node Bookmarks
-@chapter Bookmarks
-
-Emms can save a ``temporal bookmark'' in a media file via
-emms-bookmarks. The file @file{emms-bookmarks.el} provides the package
-emms-bookmarks.
-
-While some media is playing, invoking @kbd{M-x emms-bookmarks-add}
-will first pause the playback and then prompt for a name describing
-the bookmark. Tracks can have multiple bookmarks associated with them.
-
-To jump to the next and previous bookmarks in the current track invoke
-@kbd{M-x emms-bookmarks-next} and @kbd{M-x emms-bookmarks-prev}
-respectively.
-
-To clear all of the bookmarks for the current track invoke @kbd{M-x
-emms-bookmarks-clear}.
-
-
-
-@node GNU FM
-@chapter GNU FM
-
-@cindex GNU FM
-
-@url{https://www.gnu.org/software/gnufm/, GNU FM} is free software for
-running music community websites. It was created for the music
-community site, @url{http://libre.fm/, Libre.fm}.
-
-Emms can send track information, and stream music from GNU FM servers
-using @file{emms-librefm-scrobbler.el} and
-@file{emms-librefm-stream.el}, respectively.
-
-Emms is configured by default to use @url{http://libre.fm/, Libre.fm},
-but can work with any GNU FM server by configuring the variable
-@var{emms-librefm-scrobbler-handshake-url} to the URL of the GNU FM
-server.
-
-The recommended way of providing your credentials to the GNU FM server
-is by using an authinfo file. Add authentication to your auth-info
-file, typically @file{~/.authinfo.gpg}, as:
-@smallexample
-machine libre.fm login USERNAME password PASSWORD
-@end smallexample
-If you are using some other server than libre.fm, change
-``@samp{libre.fm}'' to match
-@var{emms-librefm-scrobbler-handshake-url}.
-
-Alternatively, you can save the password in plaintext in your init-file
-by setting these variables:
-
-@lisp
-(setq emms-librefm-scrobbler-username "USERNAME"
- emms-librefm-scrobbler-password "PASSWORD")
-@end lisp
-
-@menu
-* Uploading Track Information:: How to submit listened track information.
-* GNU FM Streaming:: Streaming music from a GNU FM server.
-@end menu
-
-
-
-@node Uploading Track Information
-@section Uploading Track Information
-
-GNU FM servers, such as Libre.fm can optionally store a user's
-listening habits using information sent to the website's server from
-the Emms. By utilizing the records of users' listening habits, the
-website aims to be able to recommend music to users by analyzing their
-musical taste.
-
-Load the feature into Emms with:
-
-@lisp
-(require 'emms-librefm-scrobbler)
-@end lisp
-
-This feature can also be enabled via @xref{Simple Setup}, in the
-`emms-devel' setup level.
-
-Enable uploading the details of the tracks Emms plays to the GNU FM
-server with @kbd{emms-librefm-scrobbler-enable}. The track's details
-will be uploaded to the server when the track's playback ends. You can
-disable this behavior with @kbd{emms-librefm-scrobbler-disable}.
-
-
-
-
-@node GNU FM Streaming
-@section GNU FM Streaming
-
-If the GNU FM server provides a streaming music service you can take
-advantage of it by loading:
-
-@lisp
-(require 'emms-librefm-stream)
-@end lisp
-
-This feature can also be enabled via @xref{Simple Setup}, in the
-`emms-devel' setup level.
-
-Then invoke @kbd{emms-librefm-stream} and enter the URL of the station
-you wish to listen to, for example ``librefm://globaltags/Classical''.
-
-
-
-
+@c -------------------------------------------------------------------
@node Extending Emms
@chapter Extending Emms
@@ -1512,6 +1384,7 @@ Now we have a ready player and we could add commands like
+@c -------------------------------------------------------------------
@node The Browser
@chapter The Browser
@@ -1520,7 +1393,7 @@ your playlist. It includes a powerful interactive mode.
The Browser is defined in @file{emms-browser.el} and is included in
the @command{emms-all} setup level. For more information about Emms
-setup levels see @xref{Simple Setup}.
+setup levels see @xref{Setup}.
You can also manually add the Browser to your Emms setup by loading it
explicitly with:
@@ -1920,7 +1793,7 @@ initial "info-" part. For example, to change the artist face, type M-x
@command{customize-face} @command{emms-browser-artist-face}.
-
+@c -------------------------------------------------------------------
@node Sorting Playlists
@chapter Sorting Playlists
@@ -1960,7 +1833,7 @@ Sort playlist by notes in ascending order.
@end defun
-
+@c -------------------------------------------------------------------
@node Persistent Playlists
@chapter Persistent Playlists
@@ -2004,7 +1877,7 @@ If non-nil emms starts playing the current track after
@end defopt
-
+@c -------------------------------------------------------------------
@node Editing Tracks
@chapter Editing Tracks
@@ -2017,13 +1890,13 @@ as `mp3info', `vorbiscomment'.
Use the keybinding @kbd{E} to edit the tags of track under point in the
playlist or all marked tracks (@pxref{Markable Playlists} for how to
mark tracks). The track's tag informations are listed in a special
-buffer `*EMMS-TAGS*' in text format. Field names are marked in bold
+buffer `*Emms-TAGS*' in text format. Field names are marked in bold
face and are not editable. Any tag information is placed behind an
equal sign and is changable. A special field `name' is the track's file
name. If any change is made in this field, the track's file will be
renamed to the new name. When you finished editing the tag infos use
@kbd{C-c C-c} (which calls @code{emms-tag-editor-submit-and-exit}) to
-submit the changes and close the `*EMMS-TAGS*' buffer.
+submit the changes and close the `*Emms-TAGS*' buffer.
There are a few commands to perform changes on all tracks.
@@ -2108,7 +1981,7 @@ according to the value of @code{emms-tag-editor-rename-format}.
@end defun
-
+@c -------------------------------------------------------------------
@node Emms Mode Line
@chapter Emms Mode Line
@@ -2154,7 +2027,7 @@ Remove playing time from mode line.
@end defun
-
+@c -------------------------------------------------------------------
@node Music Player Daemon
@chapter Music Player Daemon
@@ -2166,7 +2039,7 @@ Emms provides an interface to the @uref{http://www.musicpd.org/, Music
Player Daemon}(MusicPD) software. The package is called `emms-player-mpd' and
is provided by the file @file{emms-player-mpd.el}.
-The advantages of using MusicPD as an EMMS backend include the
+The advantages of using MusicPD as an Emms backend include the
following.
@itemize @bullet
@@ -2221,7 +2094,7 @@ sufficient for most uses.
Once you've done the above, run the @kbd{M-x
emms-cache-set-from-mpd-all} command to fill the Emms cache with the
contents of your MusicPD database. The music in your MusicPD database
-should then be accessible via the EMMS browser.
+should then be accessible via the Emms browser.
You can set @var{emms-player-mpd-sync-playlist} to nil if your master
Emms playlist contains only stored playlists.
@@ -2238,7 +2111,7 @@ Terminate the MusicPD client process and disconnect from MusicPD.
@end defun
@defun emms-player-mpd-show &optional insertp
-Describe the current EMMS track in the minibuffer. If INSERTP is
+Describe the current Emms track in the minibuffer. If INSERTP is
non-nil, insert the description into the current buffer instead. This
function uses @var{emms-show-format} to format the current track. It
differs from @command{emms-show} in that it asks MusicPD for the
@@ -2259,12 +2132,12 @@ the MusicPD database.
@subsubheading emms-cache.el integration
@defun emms-cache-set-from-mpd-directory dir
-Dump all MusicPD data from DIR into the EMMS cache.
+Dump all MusicPD data from DIR into the Emms cache.
This is useful to do when you have recently acquired new music.
@end defun
@defun emms-cache-set-from-mpd-all
-Dump all MusicPD data into the EMMS cache.
+Dump all MusicPD data into the Emms cache.
This is useful to do once, just before using emms-browser.el, in
order to prime the cache.
@end defun
@@ -2279,7 +2152,7 @@ To activate this, add the following to your .emacs.
@end lisp
-
+@c -------------------------------------------------------------------
@node Lyrics
@chapter Lyrics
@@ -2365,7 +2238,7 @@ Toggle displaying Emms lyrics.
@end defun
-
+@c -------------------------------------------------------------------
@node Volume
@chapter Volume
@@ -2422,9 +2295,11 @@ value. So instead of pressing @kbd{C-c +} six times to increase volume
by six steps of @code{emms-volume-change-amount}, you would simply type
@kbd{C-c + + + + + +}.
-EMMS can change volume with amixer, mpd, PulseAudio out of the box, see
+Emms can change volume with amixer, mpd, PulseAudio out of the box, see
@var{emms-volume-change-function}.
+
+@c -------------------------------------------------------------------
@node Streaming Audio
@chapter Streaming Audio
@@ -2442,7 +2317,7 @@ invoking:
The Emms interface for streaming audio is enabled by default in the
`emms-all' and `emms-devel' setup levels. For more information about
-Emms setup levels see @xref{Simple Setup}.
+Emms setup levels see @xref{Setup}.
Enter the emms-streams interface by invoking @kbd{M-x}
@command{emms-streams}. The emms-streams interface comes with a
@@ -2507,6 +2382,140 @@ bookmark under point. Note that this will only work if the
`emms-stream-info' has already been loaded.
@end table
+@c -------------------------------------------------------------------
+@node APE / FLAC Commands
+@chapter APE / FLAC Commands
+
+Often, a single APE or FLAC file contains a complete ablum. We can still
+play next or previous track in the ablum with the help of
+@file{emms-cue.el} package, provided there is a corresponding cue sheet
+file. This package also defines @code{emms-info-cueinfo} for retreiving
+the track information for APE / FLAC itself.
+
+To load @file{emms-cue.el}:
+
+@lisp
+(require 'emms-cue)
+(add-to-list 'emms-info-functions 'emms-info-cueinfo)
+@end lisp
+
+@defun emms-cue-next
+Play next track from .cue file
+@end defun
+@defun emms-cue-previous
+Play previous track from .cue file
+@end defun
+
+
+
+@c -------------------------------------------------------------------
+@node Bookmarks
+@chapter Bookmarks
+
+Emms can save a ``temporal bookmark'' in a media file via
+emms-bookmarks. The file @file{emms-bookmarks.el} provides the package
+emms-bookmarks.
+
+While some media is playing, invoking @kbd{M-x emms-bookmarks-add}
+will first pause the playback and then prompt for a name describing
+the bookmark. Tracks can have multiple bookmarks associated with them.
+
+To jump to the next and previous bookmarks in the current track invoke
+@kbd{M-x emms-bookmarks-next} and @kbd{M-x emms-bookmarks-prev}
+respectively.
+
+To clear all of the bookmarks for the current track invoke @kbd{M-x
+emms-bookmarks-clear}.
+
+
+@c -------------------------------------------------------------------
+@node GNU FM
+@chapter GNU FM
+
+@cindex GNU FM
+
+@url{https://www.gnu.org/software/gnufm/, GNU FM} is free software for
+running music community websites. It was created for the music
+community site, @url{http://libre.fm/, Libre.fm}.
+
+Emms can send track information, and stream music from GNU FM servers
+using @file{emms-librefm-scrobbler.el} and
+@file{emms-librefm-stream.el}, respectively.
+
+Emms is configured by default to use @url{http://libre.fm/, Libre.fm},
+but can work with any GNU FM server by configuring the variable
+@var{emms-librefm-scrobbler-handshake-url} to the URL of the GNU FM
+server.
+
+The recommended way of providing your credentials to the GNU FM server
+is by using an authinfo file. Add authentication to your auth-info
+file, typically @file{~/.authinfo.gpg}, as:
+@smallexample
+machine libre.fm login USERNAME password PASSWORD
+@end smallexample
+If you are using some other server than libre.fm, change
+``@samp{libre.fm}'' to match
+@var{emms-librefm-scrobbler-handshake-url}.
+
+Alternatively, you can save the password in plaintext in your init-file
+by setting these variables:
+
+@lisp
+(setq emms-librefm-scrobbler-username "USERNAME"
+ emms-librefm-scrobbler-password "PASSWORD")
+@end lisp
+
+@menu
+* Uploading Track Information:: How to submit listened track information.
+* GNU FM Streaming:: Streaming music from a GNU FM server.
+@end menu
+
+
+
+@node Uploading Track Information
+@section Uploading Track Information
+
+GNU FM servers, such as Libre.fm can optionally store a user's
+listening habits using information sent to the website's server from
+the Emms. By utilizing the records of users' listening habits, the
+website aims to be able to recommend music to users by analyzing their
+musical taste.
+
+Load the feature into Emms with:
+
+@lisp
+(require 'emms-librefm-scrobbler)
+@end lisp
+
+This feature can also be enabled via @xref{Setup}, in the
+`emms-devel' setup level.
+
+Enable uploading the details of the tracks Emms plays to the GNU FM
+server with @kbd{emms-librefm-scrobbler-enable}. The track's details
+will be uploaded to the server when the track's playback ends. You can
+disable this behavior with @kbd{emms-librefm-scrobbler-disable}.
+
+
+
+
+@node GNU FM Streaming
+@section GNU FM Streaming
+
+If the GNU FM server provides a streaming music service you can take
+advantage of it by loading:
+
+@lisp
+(require 'emms-librefm-stream)
+@end lisp
+
+This feature can also be enabled via @xref{Setup}, in the
+`emms-devel' setup level.
+
+Then invoke @kbd{emms-librefm-stream} and enter the URL of the station
+you wish to listen to, for example ``librefm://globaltags/Classical''.
+
+
+
@c including the relevant licenses
@include gpl.texi
@include fdl.texi