From dd301fb325ec71afc74e7b5d8c5915d256c5e6d9 Mon Sep 17 00:00:00 2001 From: Yoni Rabkin Date: Thu, 7 Jan 2021 12:08:55 -0500 Subject: * doc/developer-release.txt: --- doc/developer-release.txt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/doc/developer-release.txt b/doc/developer-release.txt index a09081b..f197742 100644 --- a/doc/developer-release.txt +++ b/doc/developer-release.txt @@ -1,23 +1,19 @@ This is an explanation of how to make a release for Emms. Emms is -currently distributed in three different ways: via the Git repo on -Savannah, as a tarball from GNU, and via GNU ELPA. +developed at Savannah (https://savannah.gnu.org/projects/emms/) and +distributed via Emacs ELPA (https://elpa.gnu.org/). * Increase the version number in emms.el (variable, elpa header), Makefile * Update NEWS -* Push version updates to git repo +* Update the manual, then copy compiled emms.info to root directory + +* Push version updates to VCS * Tag release in VCS, for example `git tag -a 4.2 -m "4.2"' * Push tag to VCS if needed, for example `git push --tags origin "4.2"' -* Run make release - -* Run make upload - -* Update copy of emms.info in root directory - * Update online manual (cvs commit -m "update manual" manual/index.html) * Update website (cvs commit -m "update website" index.html) -- cgit v1.2.3 From 28acd31383471ebd013bd28668e5f62106b184fa Mon Sep 17 00:00:00 2001 From: Yoni Rabkin Date: Thu, 7 Jan 2021 19:04:51 -0500 Subject: * doc/emms.texinfo: update quickstart --- doc/emms.texinfo | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/doc/emms.texinfo b/doc/emms.texinfo index 1480eba..840e38c 100644 --- a/doc/emms.texinfo +++ b/doc/emms.texinfo @@ -143,22 +143,22 @@ Emms, an online version of the manual is available at: The basic functionality of Emms consists of three parts: The core, the sources, and the players. -The core resides in @file{emms.el}, and provides a simple playlist and the -basic functionality to use all the other features of Emms. It provides -the common user commands and interfaces for other parts. It thinks in -tracks, where a track is the combination of a type and a name - e.g. -the track type 'file has a name that is the file name. Other track -types are possible. +The core resides in @file{emms.el}, provides a simple playlist, and +the basic functionality to use all the other features of Emms. It +provides the common user commands and interfaces for other parts. It +thinks in tracks, where a track is the combination of a type and a +name - e.g. the track type 'file has a name that is the file +name. Other track types are possible. To get to tracks, the core needs sources. The file @file{emms-source-file.el} provides simple sources to interact with the file system. 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. +to play them. @file{emms-player-simple.el} defines a few useful +players and provides a straightforward way of providing your own. -The Emms core comes with many additional features to extend its -functionality. +The Emms comes with many additional features to extend the +functionality beyond the core. The way Emms works is easy to customize with your own code or by using `M-x customize' or by changing the variables directly. @@ -172,7 +172,8 @@ 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 +The first thing you do is to load Emms via GNU ELPA. But if you are +installing manually, then start by telling Emacs where Emms is located. Let's say you have it in @file{~/elisp/emms/}. So add this line to your @file{.emacs}: @@ -185,7 +186,7 @@ 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}. +to your Emacs initialization file. @lisp (require 'emms-setup) @@ -208,16 +209,16 @@ the name of the file) of the music you listen to. Emms can use a number of pieces of software and libraries as sources for track info, see @xref{Track Information} for more. -The last thing to do is to tell Emms where your music is; the root +The last thing to do is to tell Emms where is your music; the root directory of our music collection. Let's say all your music is in -@file{~/Music} or in subdirectories thereof. +@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. +OK, now we've set up Emms. Reload your Emacs initialization file 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 @@ -226,9 +227,9 @@ 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 may see that some -tracks are displayed with their file name, but as Emms populates its -tag cache, track by track, the filenames get replaced with the artist -and track name of the file's tag. +tracks are displayed with their file name, but as Emms asynchronously +populates its tag cache, track by track, the filenames get 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. -- cgit v1.2.3 From 82a90866f4c62aea92355197af9007be8e03c16c Mon Sep 17 00:00:00 2001 From: Yoni Rabkin Date: Thu, 7 Jan 2021 21:41:12 -0500 Subject: * doc/emms.texinfo: add setup example --- doc/emms.texinfo | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/doc/emms.texinfo b/doc/emms.texinfo index 840e38c..70662d4 100644 --- a/doc/emms.texinfo +++ b/doc/emms.texinfo @@ -372,6 +372,7 @@ Another way to change Emms variables is to use the M-x @menu * Finding files and speed:: Finding files quickly or portably. +* Setup Examples:: Examples of ways to setup Emms. @end menu @@ -399,6 +400,47 @@ The method Emms will use is defined in the customisable variable @var{emms-source-file-directory-tree-function}. +@node Setup Examples +@section Setup Examples + +@cindex example +@cindex configuration + +What follow are samples from real-world Emms configurations which show +the variety and breadth of modifications people make to the default +Emms setup. + +This excerpt includes dbus integration, defining a "recent" filter for +the @xref{The Browser}, persistent playlist via +@file{emms-history.el}, and enabling sending track information with +@file{emms-librefm-stream.el}: + +@lisp + ;; notifications + (require 'emms-dbus) + (emms-dbus-enable) + ;; covers + (setq emms-browser-covers #'emms-browser-cache-thumbnail-async) + (setq emms-browser-thumbnail-small-size 64) + (setq emms-browser-thumbnail-medium-size 128) + ;; filters + (emms-browser-make-filter "all" #'ignore) + (emms-browser-make-filter "recent" + (lambda (track) (< 30 + (time-to-number-of-days + (time-subtract (current-time) + (emms-info-track-file-mtime track)))))) + (emms-browser-set-filter (assoc "all" emms-browser-filters)) + ;; history + (emms-history-load) + ;; libre-fm + (emms-librefm-scrobbler-enable) +@end lisp + + + + + @c ------------------------------------------------------------------- @node Getting Help @chapter Getting Help -- cgit v1.2.3 From 17e5c6a81bdb7ae7240e235a46b42cd23a520146 Mon Sep 17 00:00:00 2001 From: Yoni Rabkin Date: Fri, 8 Jan 2021 14:55:54 -0500 Subject: * doc/emms.texinfo: setup examples --- doc/emms.texinfo | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/emms.texinfo b/doc/emms.texinfo index 70662d4..063cb75 100644 --- a/doc/emms.texinfo +++ b/doc/emms.texinfo @@ -437,8 +437,22 @@ the @xref{The Browser}, persistent playlist via (emms-librefm-scrobbler-enable) @end lisp +... +@lisp + (setq-default + emms-source-file-default-directory "/mnt/db/mediaCore/sound_music/" + + emms-source-playlist-default-format 'm3u + emms-playlist-mode-center-when-go t + emms-playlist-default-major-mode 'emms-playlist-mode + emms-player-list '(emms-player-mpv) + emms-player-mpv-environment '("PULSE_PROP_media.role=music") + emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null") + + emms-show-format "NP: %s") +@end lisp @c ------------------------------------------------------------------- -- cgit v1.2.3 From 209077e22e36f692abc2b8fd7af9d215f597a188 Mon Sep 17 00:00:00 2001 From: Yoni Rabkin Date: Sun, 10 Jan 2021 21:37:18 -0500 Subject: * doc/emms.texinfo: update manual --- doc/emms.texinfo | 18 ++--- emms.info | 198 +++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 137 insertions(+), 79 deletions(-) diff --git a/doc/emms.texinfo b/doc/emms.texinfo index 063cb75..43c5fc3 100644 --- a/doc/emms.texinfo +++ b/doc/emms.texinfo @@ -407,11 +407,11 @@ The method Emms will use is defined in the customisable variable @cindex configuration What follow are samples from real-world Emms configurations which show -the variety and breadth of modifications people make to the default -Emms setup. +some of the variety and breadth of modifications people make to the +default Emms setup. -This excerpt includes dbus integration, defining a "recent" filter for -the @xref{The Browser}, persistent playlist via +The following excerpt includes dbus integration, defining a "recent" +filter for the @xref{The Browser}, persistent playlist via @file{emms-history.el}, and enabling sending track information with @file{emms-librefm-stream.el}: @@ -437,7 +437,10 @@ the @xref{The Browser}, persistent playlist via (emms-librefm-scrobbler-enable) @end lisp -... + +In the following it is possible to see how some of defaults are set +regarding saving playlists, playlist interaction, as well as adding +special arguments to a specific player backend. @lisp (setq-default @@ -446,12 +449,11 @@ the @xref{The Browser}, persistent playlist via emms-source-playlist-default-format 'm3u emms-playlist-mode-center-when-go t emms-playlist-default-major-mode 'emms-playlist-mode + emms-show-format "NP: %s" emms-player-list '(emms-player-mpv) emms-player-mpv-environment '("PULSE_PROP_media.role=music") - emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null") - - emms-show-format "NP: %s") + emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null")) @end lisp diff --git a/emms.info b/emms.info index fc1ecfe..d18b9a7 100644 --- a/emms.info +++ b/emms.info @@ -123,7 +123,7 @@ Emms, an online version of the manual is available at: The basic functionality of Emms consists of three parts: The core, the sources, and the players. - The core resides in 'emms.el', and provides a simple playlist and the + The core resides in 'emms.el', provides a simple playlist, and the basic functionality to use all the other features of Emms. It provides the common user commands and interfaces for other parts. It thinks in tracks, where a track is the combination of a type and a name - e.g. @@ -135,11 +135,11 @@ types are possible. system. When Emms finally has the sources in the playlist, it needs a player -to play them. 'emms-player-simple.el' defines a few useful players, and -allows you to define your own in a very simple way. +to play them. 'emms-player-simple.el' defines a few useful players and +provides a straightforward way of providing your own. - The Emms core comes with many additional features to extend its -functionality. + The Emms comes with many additional features to extend the +functionality beyond the core. The way Emms works is easy to customize with your own code or by using 'M-x customize' or by changing the variables directly. @@ -154,9 +154,10 @@ 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 '~/elisp/emms/'. So add this line to -your '.emacs': + The first thing you do is to load Emms via GNU ELPA. But if you are +installing manually, then start by telling Emacs where Emms is located. +Let's say you have it in '~/elisp/emms/'. So add this line to your +'.emacs': (add-to-list 'load-path "~/elisp/emms/lisp/") @@ -165,7 +166,7 @@ installation chapter, *Note Installation::. You'll then want to load Emms into Emacs. To achieve this you invoke the 'emms-all' setup function by adding the following three lines to -your '.emacs'. +your Emacs initialization file. (require 'emms-setup) (emms-all) @@ -185,14 +186,14 @@ the name of the file) of the music you listen to. Emms can use a number of pieces of software and libraries as sources for track info, see *Note Track Information:: for more. - The last thing to do is to tell Emms where your music is; the root + The last thing to do is to tell Emms where is your music; the root directory of our music collection. Let's say all your music is in -'~/Music' or in subdirectories thereof. +'~/Music' or in subdirectories thereof: (setq emms-source-file-default-directory "~/Music/") - OK, now we've set up Emms. Reload your '.emacs' or restart Emacs to -let the changes have an effect. + OK, now we've set up Emms. Reload your Emacs initialization file or +restart Emacs to let the changes have an effect. Now we will add all our music to a playlist by invoking 'M-x emms-add-directory-tree RET ~/Music/ RET'. We do this because then Emms @@ -201,9 +202,9 @@ required for the Emms browser, *Note The Browser::.) To switch to the playlist buffer, invoke 'M-x emms-playlist-mode-go' or simply 'M-x emms'. You may see that some tracks are displayed with -their file name, but as Emms populates its tag cache, track by track, -the filenames get replaced with the artist and track name of the file's -tag. +their file name, but as Emms asynchronously populates its tag cache, +track by track, the filenames get replaced with the artist and track +name of the file's tag. Go ahead and navigate to a track and hit 'RET' on it to start playback. @@ -329,9 +330,10 @@ mechanism provided by Emacs. * Menu: * Finding files and speed:: Finding files quickly or portably. +* Setup Examples:: Examples of ways to setup Emms.  -File: emms.info, Node: Finding files and speed, Up: Configuration +File: emms.info, Node: Finding files and speed, Next: Setup Examples, Up: Configuration 5.1 Finding files and speed =========================== @@ -352,6 +354,57 @@ installed. The method Emms will use is defined in the customisable variable EMMS-SOURCE-FILE-DIRECTORY-TREE-FUNCTION. + +File: emms.info, Node: Setup Examples, Prev: Finding files and speed, Up: Configuration + +5.2 Setup Examples +================== + +What follow are samples from real-world Emms configurations which show +some of the variety and breadth of modifications people make to the +default Emms setup. + + The following excerpt includes dbus integration, defining a "recent" +filter for the *Note The Browser::, persistent playlist via +'emms-history.el', and enabling sending track information with +'emms-librefm-stream.el': + + ;; notifications + (require 'emms-dbus) + (emms-dbus-enable) + ;; covers + (setq emms-browser-covers #'emms-browser-cache-thumbnail-async) + (setq emms-browser-thumbnail-small-size 64) + (setq emms-browser-thumbnail-medium-size 128) + ;; filters + (emms-browser-make-filter "all" #'ignore) + (emms-browser-make-filter "recent" + (lambda (track) (< 30 + (time-to-number-of-days + (time-subtract (current-time) + (emms-info-track-file-mtime track)))))) + (emms-browser-set-filter (assoc "all" emms-browser-filters)) + ;; history + (emms-history-load) + ;; libre-fm + (emms-librefm-scrobbler-enable) + + In the following it is possible to see how some of defaults are set +regarding saving playlists, playlist interaction, as well as adding +special arguments to a specific player backend. + + (setq-default + emms-source-file-default-directory "/mnt/db/mediaCore/sound_music/" + + emms-source-playlist-default-format 'm3u + emms-playlist-mode-center-when-go t + emms-playlist-default-major-mode 'emms-playlist-mode + emms-show-format "NP: %s" + + emms-player-list '(emms-player-mpv) + emms-player-mpv-environment '("PULSE_PROP_media.role=music") + emms-player-mpv-parameters '("--quiet" "--really-quiet" "--no-audio-display" "--force-window=no" "--vo=null")) +  File: emms.info, Node: Getting Help, Next: Formats and Freedom, Prev: Configuration, Up: Top @@ -3370,12 +3423,14 @@ Concept Index * compiling: Compiling Emms. (line 6) * complex player: More Complex Player. (line 6) * Configuration: Configuration. (line 6) +* configuration: Setup Examples. (line 6) * core file: The Core File. (line 6) * core functions: Core Functions. (line 6) * defining info methods: Defining Info Methods. (line 6) * defining new players: New Player. (line 6) * defining players: Extending Emms. (line 6) * display emms information: Emms Mode Line. (line 6) +* example: Setup Examples. (line 6) * FDL, GNU Free Documentation License: The GNU FDL. (line 6) * files: Finding files and speed. (line 6) @@ -3757,59 +3812,60 @@ Keybinding Index Tag Table: Node: Top695 Node: Introduction4442 -Node: Quickstart Guide5901 -Node: Installation8652 -Node: Compiling Emms9201 -Node: Setup9889 -Node: Configuration10875 -Node: Finding files and speed12286 -Node: Getting Help13132 -Node: Formats and Freedom13710 -Node: Basic Commands14915 -Node: The Core File18296 -Node: User Variables18730 -Node: Hooks19706 -Node: Core Functions21132 -Node: Sources24132 -Node: Simple Players26265 -Node: Playlists27322 -Node: Track Information28603 -Node: Using tinytag31490 -Node: Using exiftool31919 -Node: Using TagLib32291 -Node: Defining Info Methods33400 -Node: Interactive Playlists34182 -Node: Markable Playlists37224 -Node: Extending Emms39695 -Node: New Player40131 -Node: Simple Player for `play'40520 -Node: More Complex Player42248 -Node: The Browser45255 -Node: Browser Interface46231 -Node: Filtering Tracks48645 -Node: Displaying Covers50423 -Node: Changing Looks52437 -Node: Sorting Playlists55415 -Node: Persistent Playlists56884 -Node: Editing Tracks58043 -Node: Emms Mode Line61717 -Node: Limiting62885 -Node: Music Player Daemon65224 -Node: Lyrics68737 -Node: Volume70785 -Node: Streaming Audio72573 -Ref: Streaming Audio-Footnote-173165 -Node: APE / FLAC Commands73516 -Node: Bookmarks74223 -Node: Managing Playlists74934 -Node: GNU FM75957 -Node: Uploading Track Information77311 -Node: GNU FM Streaming78193 -Node: Copying78693 -Node: The GNU FDL116210 -Node: Concept Index138598 -Node: Function Index143529 -Node: Variable Index159221 -Node: Keybinding Index161564 +Node: Quickstart Guide5910 +Node: Installation8778 +Node: Compiling Emms9327 +Node: Setup10015 +Node: Configuration11001 +Node: Finding files and speed12476 +Node: Setup Examples13345 +Node: Getting Help15278 +Node: Formats and Freedom15856 +Node: Basic Commands17061 +Node: The Core File20442 +Node: User Variables20876 +Node: Hooks21852 +Node: Core Functions23278 +Node: Sources26278 +Node: Simple Players28411 +Node: Playlists29468 +Node: Track Information30749 +Node: Using tinytag33636 +Node: Using exiftool34065 +Node: Using TagLib34437 +Node: Defining Info Methods35546 +Node: Interactive Playlists36328 +Node: Markable Playlists39370 +Node: Extending Emms41841 +Node: New Player42277 +Node: Simple Player for `play'42666 +Node: More Complex Player44394 +Node: The Browser47401 +Node: Browser Interface48377 +Node: Filtering Tracks50791 +Node: Displaying Covers52569 +Node: Changing Looks54583 +Node: Sorting Playlists57561 +Node: Persistent Playlists59030 +Node: Editing Tracks60189 +Node: Emms Mode Line63863 +Node: Limiting65031 +Node: Music Player Daemon67370 +Node: Lyrics70883 +Node: Volume72931 +Node: Streaming Audio74719 +Ref: Streaming Audio-Footnote-175311 +Node: APE / FLAC Commands75662 +Node: Bookmarks76369 +Node: Managing Playlists77080 +Node: GNU FM78103 +Node: Uploading Track Information79457 +Node: GNU FM Streaming80339 +Node: Copying80839 +Node: The GNU FDL118356 +Node: Concept Index140744 +Node: Function Index145821 +Node: Variable Index161513 +Node: Keybinding Index163856  End Tag Table -- cgit v1.2.3