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: Sat, 02 May 2020 23:08:43 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)

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

> python-mutagen looks like a possibility but it gives different output
> for different filetypes.  This is what it looks like on a .ogg file
>
> -- /home/timeshift/snapshots/2018-08-31_16-56-03/localhost/usr/share/
> cinnamon/sounds/bell.ogg
> - Ogg Vorbis, 0.23 seconds, 96000 bps (audio/vorbis)
> TITLE=bell
> COMMENTS= 

> I do not have any other filetypes to experiment on (flac?...) but we
> would have to at least internally manage ID3 frame names vs vobis
> comments etc

Indeed, an ogg file looks like:

- Ogg Vorbis, 184.40 seconds, 112000 bps (audio/vorbis)
TITLE=Messiah: Part I, no. 1: Sinfonia
ARTIST=George Frideric Handel
TRACKNUMBER=1
TRACKTOTAL=21
ALBUM=CD1
COMPOSER=George Frideric Handel
MUSICBRAINZ_ALBUMID=404f83ab-c0e5-48d9-a1e5-60e41f16882b
ALBUMARTIST=George Frideric Handel; Academy of Ancient Music, Choir of New 
College Oxford, Edward Higginbottom
MUSICBRAINZ_ARTISTID=27870d47-bb98-42d1-bf2b-c7e972e6befc
MUSICBRAINZ_TRACKID=f1d339ef-ec0a-4f35-b087-0fd5fd588341
ARTISTSORT=Handel, George Frideric
DATE=2006-10-02
DISCNUMBER=1
DISCID=20103815
MUSICBRAINZ_DISCID=RQtY8w9xCa7gnc3Hifc2WAS1vkA-

...and flac:

- FLAC, 216.48 seconds, 44100 Hz (audio/x-flac)
ARTIST=Anne-Sophie Mutter [Violin] & Trondheim Soloists [Ensemble] & 
Anne-Sophie Mutter [Director]
TITLE=1. (Allegro moderato)
ALBUM=In tempus praesens - Bach, J.S.: Violin Concertos BWV1041 & BWV1042; 
Gubaidulina: Violin Concerto In tempus praesens
TRACKNUMBER=1

... so mutagen doesn't do any mapping, but outputs the fields as-is, and
we would need to map the different fields from the different formats to
our own internal representation.


> ---Fran
>
> On Sat, 2 May 2020 at 04:41, Yoni Rabkin <address@hidden> wrote:
>
>     "Fran Burstall (Gmail)" <address@hidden> writes:
>    
>     > pyprinttags fails to provide playing-time which
>     emms-print-metadata
>     > does get by querying TagLib::AudioProperties.
>     >
>     > Is this a show-stopper?
>    
>     I've just had a look at python-mutagen, which installs
>     mutagen-inspect. It's output on my machine looks like this
>     (ignoring the
>     non-standard PRIV tag):
>    
>     -- /home/yrk/audio/classical/Verdi__La_Traviata__Netrebko/01 -
>     Prelude - Prelude.mp3
>     - MPEG 1 layer 3, 256000 bps (CBR?), 44100 Hz, 2 chn, 216.93
>     seconds (audio/mp3)
>     APIC= (image/jpeg, 205990 bytes)
>     COMM==eng=Amazon.com Song ID: 204947184
>     TALB=Verdi: La Traviata
>     TCOM=Giuseppe Verdi
>     TCON=Classical
>     TCOP=(C) 2005 Deutsche Grammophon GmbH, Hamburg
>     TDRC=2005
>     TIT2=Prelude - Prelude
>     TPE1=Wiener Philharmoniker
>     TPE2=Anna Netrebko
>     TPE3=Carlo Rizzi
>     TPOS=1/2
>     TRCK=1/22
>    
>     Do you see mutagen-inspect from python-mutagen as a candidate?
>    
>     >     >   
>     >   
>       
> *************************************************************************
>     >     >     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"
>     >
>     >
>     >
>    
>     --
>        "Cut your own wood and it will warm you twice"
>
>
>

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



reply via email to

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