EMMS seems to be completely unaware of any tag / metadata in my music files. I tried configuring it with mp3info (I no longer want this anyway), and now with libtag, checking that they work in command line, and I have deleted and recreated the cache at "~/.emacs.d/emms/cache" to no avail. The emms-browser categorises everything as misc and seems to know nothing more than the file names.

I'll detail my configuration.

My init.el has

;;emms configuration
(require 'emms)
(require 'emms-setup)
(setq emms-source-file-default-directory "/Volumes/Seabeam HD/Music/")
(require 'emms-info-libtag)
(setq emms-info-functions '(emms-info-libtag))
(autoload 'emms-smart-browse "emms-browser.el" "Browse with EMMS" t)
(global-set-key [(f7)] 'emms-smart-browse)

and I installed emms from elpa. I also cloned the emms git repo and did

make emms-print-metadata

and put the binary in my path and tested it (I also did sudo make install from here, and hopefully did not mess things up now that I'm running off the elpa version). It prints id3 tags and other metadata as expected. In installed mp3info from macports and tested that too. Reads id3v1 tags, as expected.

Now, I'm using GUI Emacs.app, so I have exec-path-from-shell to ensure that emacs finds commands it needs.

EMMS makes a directory, "~/.emacs.d/emms/" where it stores history, cache, etc. I deleted this after setting things up for libtag and have also restarted emacs.

I've read the manual and this other emacs.SE on it...

1 Answer 1


I fixed this by removing ~/.emacs.d/elpa/emms-* and ~/.emacs.d/elpa/emms and installing from the git repo instead of elpa. I don't know why the method in my original question didn't work but here is a tutorial for how I got the metadata to work. It basically follows instructions from the Manual's Quickstart Guide.

With the same contents of init.el I did git clone git://git.sv.gnu.org/emms.git in ~/.emacs.d/lisp/' and ranmakeandsudo make install. Previously I had compiled and put the binary foremms-print-metadata` in my executable path variable, and ensured that emacs knows about the same path variable. I also installed mplayer to play files.

Since this is not an elpa package I had to tell emacs where to find it by adding (add-to-list 'load-path "~/.emacs.d/lisp/emms/lisp/") to my init file. I'll repeat the other part of the configuration with comments to help the next person:

;;emms configuration ;;; elisp comment ;)
(require 'emms)      ;;; load emms from "~/.emacs.d/lisp/emms/lisp/"
                     ;;; i.e., the core functionality
(require 'emms-setup);;; load some functions that will set some preferences
                     ;;; it's worth looking at this file
(emms-all)           ;;; load all stable features of emms, defined in emms-setup
(emms-default-players);; load a list of default players (like mplayer) installed defined in emms-setup
(setq emms-source-file-default-directory "/Volumes/Seabeam HD/Music/")
(require 'emms-info-libtag) ;;; load functions that will talk to emms-print-metadata which in turn talks to libtag and gets metadata
(setq emms-info-functions '(emms-info-libtag)) ;;; make sure libtag is the only thing delivering metadata
;;; below is a nice key command for toggling the music browser
(autoload 'emms-smart-browse "emms-browser.el" "Browse with EMMS" t)
(global-set-key [(f7)] 'emms-smart-browse) 

I then reloaded init.el / restarted emacs and did M-x emms-add-directory-tree RET RET (I didn't need to change the default because of emms-source-file-default-directory). I waited a while and emms playlist buffer started updating tracks as it found the metadata. Finally I opened emms-browser (f7) and could browse by artist, album, title, etc, and my metadata was all there.

I hope this helps someone!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.