[All] To build a better music player

Pander pander at users.sourceforge.net
Wed Mar 4 19:18:22 CET 2009


Yaroslav Halchenko wrote:
>> As I mentioned before, I am planning to add some sort of session
>> management. It might be too IO intensive to cache all the tag data (as
>> opposed to simply remembering file name), but it is a possibility.
> actually I think that storing them along with filenames in those
> 'sessions' would speed this up since separate files would not need to be
> processed for id3 extraction upon loading of the session file.  id3 tags
> within a loaded session might be updated upon user request or whenever a
> corresponding file is played/queued/whatever ;)
> 

Possible implementation for sorting on ID3:

contents of .pythmrc:

ID3Sort={%artist - }{%year - }{%album - }{%discnumber}{%tracknumber
}{%title}{ (%length)}{ %genre}{ %rating}

or also possible

ID3Sort={%a - }{%y - }{%b - }{%d}{%n}{%t}{ (%l)}{ %g}{ %r}

The ID3 tag with extra surrounding characters in between the {} will not
be displayed when the value is not set (Null of empty string). This
entire ID3Sort definition will be read on startup of pythm and will be
used for sorting tracks.

The tags used in the definition also dictate the order and contents of
the columns in the overview. In this case begin:

Artist, Year, Album, DiscNmbr, TrackNmbr, Title, Length, Genre, Rating

Possibly a second definition in .pythmrc can be used for custom column
order. e.g.:

ID3OverviewColumns=%a,%y,%b,%d%n,%t,%l,%g,%r
or also possible
ID3OverviewColumns=%artist,%year,%album,%discnumber%tracknumber,%title,%length,%genre,%rating

In this example disc number and track number are combined in the same
column and will simply be concatenated. The header will be emtpy of on
detection of this special case be simply 'Number' of '#'

Also to customist this, a third definition can be specified. e.g.:

ID3OverviewHeaders=Artiest,Jaar,Album,#,Titel,mm:ss,Genre,Rating

And at the same time this third definition allows for localisation.

So the use of the following optional definitions in .pythmrc:
  ID3Sort
  ID3OverviewColumns
  ID3OverviewHeaders
which are customised by the user will allow for ID3 sorting and
presentation catering everyone's wildest ID3 needs.

More people interested in implementing this?

Regards,

Pander




More information about the community mailing list