emms-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: looking forward to Emms 6.0


From: Yoni Rabkin
Subject: Re: looking forward to Emms 6.0
Date: Fri, 01 May 2020 13:32:20 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)

"Fran Burstall (Gmail)" <address@hidden> writes:

>     * Find a suitable replacement for emms-print-metadata as a way to
>     access
>       taglib. A current candidate is installing pytaglib.
>
>
> I am happy to be involved in this.  If pytaglib is to be used, it
> comes with a small python script called pyprinttags which outputs
> something like this:

Thank you for stepping up.

>     *************************************************************************
>     TAGS OF '02. Peter Gunn (live) _ Where's Your Head At
>     (Head-a-Pella).mp3'
>     *************************************************************************
>     ALBUM                             = As Heard on Radio Soulwax,
>     Part 2
>     ALBUM ARTIST CREDIT               = 2 Many DJ’s
>     ALBUMARTIST                       = 2 Many DJ’s
>     ALBUMARTISTSORT                   = 2 Many DJ’s
>     ARTIST                            = Emerson, Lake & Palmer /
>     Basement Jaxx
>     ARTIST CREDIT                     = Emerson, Lake & Palmer /

[snip]

I got something like this:

************************************
TAGS OF '01 - Prelude - Prelude.mp3'
************************************
ALBUM       = Verdi: La Traviata
COMMENT     = Amazon.com Song ID: 204947184
COPYRIGHT   = (C) 2005 Deutsche Grammophon GmbH, Hamburg
CONDUCTOR   = Carlo Rizzi
ARTIST      = Wiener Philharmoniker
TITLE       = Prelude - Prelude
GENRE       = Classical
ALBUMARTIST = Anna Netrebko
COMPOSER    = Giuseppe Verdi
DATE        = 2005
TRACKNUMBER = 1/22
DISCNUMBER  = 1/2
Unsupported tag elements: PRIV; APIC

...which looks easy enough to parse.

Unfortunately, installing pytaglib on my Trisquel machine was as much
work as emms-print-metadata. It involved manually downloading
pytaglib-0.3.4, then installing cython, then:

$ python setup.py build
$ python setup.py install --user

But I assume that it is easier on systems with pip, so this isn't a
show-stopper. Moreover, it shows that this can run on a completely free
system. If it couldn't then that would be another show-stopper.

As an aside: looking at the command line of pyprinttags I note that
we'll have to add the "-b" (batch) option so that pyprinttags doesn't
try to ask the user questions and hang the elisp process call.

> Clearly a little parsing would be necessary to get this into a shape
> that emms could work with.
>
> I see two ways to go with this:
>
> 1.  write emms-info-pytaglib.el which does the parsing.
>
> 2.  write a python version of emms-print-metadata that is a drop-in
> replacement for the C version.
>
> Both are easy though option 2 is probably easier.  The downside of
> option 2 is that we still have a piece of non-elisp to install in the
> user's path.
>
> Preferences?

Absolutely option 1, since otherwise we would be shipping C, C++, Perl,
and Python; no thank you. The idea is to let the OS provide the
packages, and let elisp do the rest. This is as opposed to what we do
now, which is: let the OS provide a package, provide some glue code, and
then let elisp do the rest. We are trying to get rid of the glue.

I can write an implementation of emms-info-pytaglib and ping you to test
it once I'm done, or you can do that. It really depends on whether you
feel like writing that would be fun for you; your choice. Thank you
nevertheless.

-- 
   "Cut your own wood and it will warm you twice"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]