New patches: [quickstart-guide.dpatch Tassilo Horn **20070304124948] { hunk ./emms.texinfo 55 +* Quickstart Guide:: First steps with EMMS for new users. hunk ./emms.texinfo 110 -Volume +Last.fm hunk ./emms.texinfo 339 address@hidden Quickstart Guide address@hidden Quickstart Guide + +This chapter demonstrates how to setup EMMS so that you can start +listening to your music without having to read the whole docs 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}. + address@hidden +(add-to-list 'load-path "~/elisp/emms") address@hidden 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 those three lines to your @file{.emacs}. + address@hidden +(require 'emms-setup) +(emms-all) +(emms-default-players) address@hidden 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', 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. + address@hidden +(setq emms-source-file-default-directory "~/Music/") address@hidden 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}. 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}). + } Context: [emms-player-mpd: Stylize Lisp code in documentation Michael Olson **20070304075903] [emms-lyrics: Fix compiler warnings Michael Olson **20070302152148] [emms-lyrics.el: Rename `emms-lyrics-find-current-lyric' to William Xu **20070302103240 `emms-lyrics-visit-lyric', and enhance it by adding searching from internet support. ] [emms-lyrics: Fix several compiler warnings Michael Olson **20070302065810] [emms-lyrics.el: Add lyrics auto-scrolling support. William Xu **20070302055649] [emms.texinfo: Update lyrics section. William Xu **20070301091537] [NEWS: Mention changes in emms-playing-time. William Xu **20070225061342] [emms-player-mpd: Miscellaneous docfixes Michael Olson **20070227180444] [manual: Mention how to set the default EMMS playlist mode Michael Olson **20070223040831] [Move dictionary definitions higher to avoid compiler warning Michael Olson **20070223040135] [improve-emms-mark-and-write-docs.dpatch Tassilo Horn **20070222165136 Fixed emms-mark-track so that you can (un)mark backwards with `C-u -3 m'. Wrote texinfo docs for emms-mark.el. ] [Speed up emms-play-directory-tree by about factor 10 address@hidden Most of the speedup comes from using nconc in later-do instead of append (and therefore, not excessively copying lists). I see a factor of 10 speedup when generating the playlist for 37000 audio files. ] [Fix several XEmacs compatibility issues Michael Olson **20070215231146] [emms-texinfo: Add stubs for emms-mark and emms-tag-editor Michael Olson **20070215171211 I've added "write me" chapters to the manual for emms-mark.el and emms-tag-editor.el, because they need to be written before the release. Hopefully others will volunteer to write them :^) . ] [Add `emms-lyrics-catchup' for dealing with external lyrics crawler. William Xu **20070208033306] [NEWS: Update Michael Olson **20070207142227] [emms-tag-editor: Make editing of ogg vorbis comments work properly Michael Olson **20070129154657 It turns out we have to have the "-t" option before each bit of track information, not just the first. Also, avoid sending empty track information to vorbiscomment. ] [emms-mark: Save the keymap properly Michael Olson **20070129150940] [emms-mark: Overhaul and turn into a derived mode Michael Olson **20070129091833 Make emms-mark integrate better with the rest of EMMS by turning it into a derived mode of emms-playlist-mode. This allows it to have its own keymap derived from emms-playlist-mode, and be easily enabled and disabled without messing up the output from emms-show. It will operate on a buffer-by-buffer basis, but can easily be made the default playlist mode if desired. We have to avoid calling emms-playlist-mode a second time when starting emms-mark-mode, so that the selection does not disappear. Thus, it must be its own function, rather than using define-derived-mode. ] [emms-playlist: Pay attention to selection when updating Michael Olson **20070129091716 Make sure that we preserve the current selection if updating the currently-selected track.. ] [Distinguish `emms-track-description' and `emms-track-force-description' Michael Olson **20070129091330 The idea is that emms-track-force-description is only allowed to be used when inserting descriptions into a playlist buffer. This lets us distinguish between the content and layout of the text, for add-ons like emms-mark that want to do something decorative with the text. ] [New macro emms-walk-tracks Michael Olson **20070129091141 This macro makes it easy to write code which steps forward through the tracks of the current buffer iteratively. ] [Manual: Add periods to end of menu entry descriptions, update menus, minor grammar and style fixes Michael Olson **20070113234824] [restart-lastfm-plugin-when-md5challenge-expired.dpatch Tassilo Horn **20070116202013] [fix-ampersands-and-question-marks-in-lastfm.dpatch Tassilo Horn **20070113104902 Roman Lagunov reported a bug: the last.fm plugin failed scrobbling tracks with & in artist/title/album. The same applies to streams containing an ampersand. So I added ?& and ?? to `emms-url-specials'. But because both are needed to submit values via HTTP GET now you have to `emms-escape-url' only the arguments that may contain special chars instead the complete url, e.g.: (url-retrieve (concat emms-lastfm-server "?hs=true&p=1.1" "&c=" emms-lastfm-client-id "&v=" (number-to-string emms-lastfm-client-version) "&u=" (emms-escape-url emms-lastfm-username)) instead of (url-retrieve (emms-escape-url (concat emms-lastfm-server "?hs=true&p=1.1" "&c=" emms-lastfm-client-id "&v=" (number-to-string emms-lastfm-client-version) "&u=" emms-lastfm-username)) ] [emms-streams: Make sure type is a symbol, not a string Michael Olson **20070108191308] [relative-seeking-for-xine.dpatch Tassilo Horn **20070108205923] [emms-volume-texinfo.dpatch Tassilo Horn **20070107104105 Adds docs for emms-volume-minor-mode and replaces defvars with defopts in the last.fm chapter. ] [emms-player-xine.dpatch Tassilo Horn **20070106173701] [emms-lastfm: Remove periods from end of messages Michael Olson **20070106011559] [emms-lastfm: Add emms-lastfm-np, which displays the current song information as a message or inserts it at point Michael Olson **20070105235058] [Add support for playing Last.fm streams using emms-streams interface Michael Olson **20070105230616] [emms-lastfm: Use emms-cancel-timer, fix FIXME section, make emms-lastfm-radio-request-metadata more flexible Michael Olson **20070105073906] [emms-url: Only escape spaces and newlines, on second thought Michael Olson **20070105073821] [Make jack.el use emms-compat.el rather than cl.el, and tidy up emms-compat.el Michael Olson **20070105042701] [emms-playlist-sort: Add compile-time dependency on cl.el to avoid a warning Michael Olson **20070105040231] [emms-lastfm: Use emms-url.el, fix compiler warnings, and be kind to the namespace Michael Olson **20070105035342] [emms-player-mpd: Use functions in emms-url.el Michael Olson **20070105035233] [emms-url: New file containing the url.el interaction routines from emms-lastfm.el. I plan to use these in other parts of EMMS as well. Michael Olson **20070105034035] [emms-compat: New file that contains compatibility functions for emms; this make emms.el a bit cleaner-looking Michael Olson **20070105032247] [emms-streams: Try to reconnect to station if briefly disconnected Michael Olson **20070105000942] [Remove emms-volume-mpd-raise/lower, make chapter in manual for emms-volume.el Michael Olson **20070105000820] [artist-fan-radio-and-texinfo-docs-for-lastfm.dpatch Tassilo Horn **20070103205523 This patch adds a new function to emms-lastfm.el: `emms-lastfm-radio-artist-fan' I also added a chapter about Last.fm in emms.texinfo. It compiles for me and looks good, but it wold be nice if someone could have a short look at it. It's my first work with texinfo. ] [fix-broken-multibyte-chars-in-http-responses.dpatch Tassilo Horn **20070103140726 If a `url-retrieve' returns a buffer containing multibyte strings, they were displayed as \123\456. The bug occured mostly when listening to Last.fm radio playing a track with non-ascii title or artist. Thanks to fledermaus at #emacs for investigating what went wrong and putting together the function `http-decode-buffer'. The bug seems to be fixed with it. ] [metadata-for-lastfm-streams.dpatch Tassilo Horn **20070102222433 Now the Artist and Title of the current song are displayed in the mode-line when listening to a last.fm stream. Additionally I made all user options customizable. ] [lastfm-skip-love-ban-plus-renaming.dpatch Tassilo Horn **20061230115944 First, I renamed all things "emms-lastfm-playback" to "emms-lastfm-radio", which fits much better. Then I added the functionality of loving/skipping/banning the song you're listening to on Last.fm Radio. ] [fix-lastfm-streams-with-spaces.dpatch Tassilo Horn **20061229155921] [emms-playlist-sort.el: Reorganize codes && add `emms-playlist-sort-by-list'. William Xu **20061225054559] [play-lastfm-streams.dpatch Tassilo Horn **20061227205745 This patch has two major parts: 1. Make emms-lastfm.el conforming to other emms plugins, meaning that there are those three user functions: `emms-lastfm' -- The usual prefix arg toggle `emms-lastfm-enable' `emms-lastfm-disable' 2. It adds the ability to play lastfm:// streams. New user functions: `emms-lastfm-playback' `emms-lastfm-playback-similar-artists' `emms-lastfm-playback-global-tag' Sadly there are 2 FIXMEs in the code: 1. Major problem: It doesn't work for lastfm urls which contain blanks. If someone is familiar with the url library, he could tell me how to fix it. (retrieving urls with whitespaces) 2. Minor problem: There's some ugly (but working) code to ensure the execution doesn't continue before a sentinel has been run. ] [replace-next-line-with-forward-line.dpatch Tassilo Horn **20061220205010 The docstring of `next-line' suggest to use `forward-line' instead, so use that... ] [warn-if-playing-time-deactivated.dpatch Tassilo Horn **20061219085443 New emms-lastfm-activate warns the user if he disabled emms-playing-time completely and points him to the right docs. ] [emms.texinfo: Update emms-playing-time info. address@hidden [emms-playing-time: Add stuffs for controlling displaying on mode line address@hidden while still enabling emms-playing-time module at backgrond. ] [emms-mode-line: Rename `emms-playing-time-toggle' to `emms-mode-line-toggle'. address@hidden [fix-regression-in-lastfm.dpatch Tassilo Horn **20061216132209 My last path enabled emms-lastfm.el to submit tracks even if you paused them. I tested this extensively! But I didn't test if it still submits them if you don't pause it. Of course it didn't. ;-) The problem was that I rely on `emms-playing-time' to calculate when a track has to be submitted. But in `emms-player-started-hook' my new track function was run *before* `emms-playing-time' was set to 0 again. ] [submitting-when-paused.dpatch Tassilo Horn **20061212200324 This patch enables emms-lastfm.el to submit the current track even if the playback has been paused and resumed. It's done by canceling the `emms-lastfm-timer' when pausing and reenabling it on resume. ] [emms-lyrics: Make `emms-lyrics-find-lyric-function' customizable and add address@hidden `emms-lyrics-find-current-lyric'. ] [change raise/lower-function to change-functon, add change-amount Ye Wenbin **20061208052114] [Remove emms-volume-amixer-raise/lower commands, use emms-volume-change-function Ye Wenbin **20061208052019] [emms-i18n: Rename functions to match file name. address@hidden [emms-setup: Add `emms-i18n' to `emms-devel'. address@hidden [emms-info-mp3info: Make use of `emms-i18n-call-process-simple'. address@hidden [emms-player-mpd: Document how to use MusicPD to change the volume via emms-volume.el Michael Olson **20061208223509] [Fix various byte-compiler warnings throughout Michael Olson **20061207143511] [emms-tag-editor: Rename functions to match file name Michael Olson **20061207142310] [Rename emms-mp3tag.el to emms-tag-editor.el Michael Olson **20061207141945] [emms.el: Improve `emms-uniq-list' to not use cl.el. address@hidden [emms-i18n changes, add playlist navigate command, uniq playlist command Ye Wenbin **20061207063510] [emms-mp3tag support ogg, add more documentation. fix some error Ye Wenbin **20061206153528] [emms-lastfm.dpatch Tassilo Horn **20061206112823 This patch adds emms-lastfm.el, its setup to emms-setup.el and myself to AUTHORS. ] [Fix a silly bug in emms-mp3tag. Remove timestamp. Ye Wenbin **20061206020710] [AUTHORS: Added Ye Wenbin address@hidden [Fix lyrics minibuffer display. Amixer display playback and more useful commands Wenbin Ye **20061127154113] [Edit all track, set tag to file for mp3 Wenbin Ye **20061205112209] [Add emms-mp3tag and emms-i18n Wenbin Ye **20061205065407] [Add emms-mark and emms-history address@hidden [emms-info-mp3info.el: Replace `emms-iconv' with decode-coding-string and address@hidden encode-coding-string. ] [emms.el: Fix bug introduced by recent changes to emms-playlist-set-playlist-buffer Michael Olson **20061119204738] [Default to current buffer when setting the current EMMS playlist buffer. Michael Olson **20061119053410] [manual: Add documentation for new emms-playlist-mode keybindings Michael Olson **20061119052935] [emms-playlist-mode: Bind "b" key to emms-playlist-set-playlist-buffer. Michael Olson **20061119052907] [emms-playlist-mode: Implement adding the thing at point to the current playlist. If it is a playlist, add its contents instead. Map this to the "a" key. Michael Olson **20061119052254] [emms.el: In emms-playlist-set-playlist-buffer, prompt user from available EMMS playlist buffers rather than all buffers, and display feedback upon setting the current buffer, since this is not an easy change to see Michael Olson **20061119052023] [emms.el: Fix compiler warning Michael Olson **20061119051946] [Don't add subdirectories for directory and playlist-directory source insert methods Michael Olson **20061119041900] [emms-playing-time.el: New variable `emms-playing-time-style', it address@hidden supports two styles at present, `time' and `bar'. ] [bind SPC to `scroll-up' in emms-playlist-mode and update manual. address@hidden [emms-player-mpd: Deal with change in output when getting supported file types Michael Olson **20061028042119] [emms.el: Move macros to the top of the file. address@hidden [NEWS: Add entry for recent emms-player-mpd change Michael Olson **20061023125738] [emms-player-mpd: Handle errors that occur when we begin playback Michael Olson **20061022215310] [NEWS: Version 2 is version 2.0 address@hidden [emms-playlist-mode: Handle case where selection has not been set but user wants to delete a region Michael Olson **20061022201724] [emms-playlist-mode: Fix typo in hook name Michael Olson **20061022022812] [emms-player-mpd: Update version recommendation Michael Olson **20061022012223] [emms-player-mpd: Work properly with tracks inserted by emms-browser Michael Olson **20061022011050] [Add NEWS items since version 2.1 Michael Olson **20061017222117] [emms-player-mplayer.el: Mplayer also supports .vob files. address@hidden [emms-player-mpd: When using the emms-volume interface, allow the user to specify the amount of change in the volume Michael Olson **20061017220404] [Documentation cleanups in emms-player-mpd and emms-source-playlist Michael Olson **20061017215345] [Since emms-player-seeked-to-functions and emms-player-time-set-functions hooks do the same thing, replace the former with the latter Michael Olson **20061017210238] [emms-browser: Fix compiler warning Michael Olson **20061017205310] [emms-player-mpd: Implement seek-to support Michael Olson **20061017205106] [FluidSynth midi file player address@hidden [Added delYsid address@hidden [jackd-support-for-emacs address@hidden jackd is a pro-audio server which can be used as a backend for alsaplayer, mplayer, and lots of other linux audio apps. This module allows to start jackd from within emacs, and connect/disconnect jack client ports. ] [browser: ensure the RNG is seeded before use Damien Elmes **20061011151535] [browser: require sort (fixes bug with sort-fold-case being void) Damien Elmes **20061010125718] [fix faulty emms-playlist-mode keybinding, fix due to William and Damien. address@hidden [Added seeking to the playlist keymap, and updated the manual. address@hidden [emms-player-mpd: Only display error if we are certain that url.el is not up-to-date Michael Olson **20061004032213] [seek-for-alsaplayer address@hidden Add relative seek support for alsaplayer ] [midi-files-via-timidity address@hidden A simple-player definition for timidity ] [emms-playing-time.el: Minor cleanups. address@hidden [emms-lyrics.el: Minor Cleanups. address@hidden [pause-for-alsaplayer address@hidden Get pause/resume working for alsaplayer ] [mms-for-mplayer address@hidden mplayer also supports mms:// URLs ] [DoTheRightThing with player pausing and emms-bookmarks.el address@hidden [Added emms-bookmarks.el address@hidden [Added `emms-pause' to emms-playlist-mode.el bound to to ``P''. address@hidden [browser: add deletion started/finished message Damien Elmes **20060923051128] [Added a link to the online version of the manual. address@hidden [emms-playing-time.el now works with `seek-to'. address@hidden [Added `seek-to' to emms.el and emms-player-mplayer.el. address@hidden [browser/cache: support deleting files, make emms-cache-dirty a defsubst Damien Elmes **20060922090553] [TAG 2.1 address@hidden Patch bundle hash: c715642552a32338657e7aa3b28a131358d41147