Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Solved: Multiple Genres Bug?
#1
Bug 
Moode 6.7.1

I tagged my complete library with my own genre categories, where each track can belong to multiple genres.

The multiple genres are stored in the Flac/Vorbis tag GENRE separated by semicola, etc. GENRE: A;B;C. (I double-checked this with ffprobe.)

The taggers I use on Linux (gmusicbrowser, puddltag, kid3) obviously do not save the list of genres for the tracks of on album always in the same order, i.e., one track has GENRE: A;B;C, the next GENRE: B;C;A, and others maybe GENRE: C;B;A.

The effect is that in Moode, when selecting a genre, say A, only the tracks are displayed where the genre list starts with A. The same for all other tags, i.e., each genre lists only a subset of the tracks of an album.

This drived me crazy, because I thought it is my fault or the taggers.

Then I found by means of ffprobe that the tracks are tagged correctly bar the order.

As next I queried the mpd database using the cli client command "mpc search genre ..." and found that for each genre A, B, or C allways all tracks of the respective albums are listed completely.
So this is not a bug in mpd during import when scanning the Vorbis tags.


So I came to the conclusion that this must be a bug in Moode.

Could you please look into this issue?
Reply
#2
@Atair

In general, the subject of multiple genres is very controversial. (Ref: try "multiple genre tags" in your favorite search engine)

I don't believe this is a bug in moOde, per se.

If you go deeper in your testing, I believe that you'll find that MPD itself is schizophrenic about genre values. The trouble is routed in the awful hack invented to work around ID3's notion that every track is characterized by a single genre. Once ID3v2 changed the genre entry from an integer code to a string, folks got creative with stuffing the string with multiple genres separated by some user-defined delimiter such as semicolon ( ; ) or double reverse-solidus (\\). 

It is provable that MPD still sees considers the string to be a single genre. Here's what I just did:

I downloaded a handy test collection of a sample music track variously in aac, aiff, flac, mp3, ogg, opus format. Using the correct metadata schema for each type, I tagged every track as genre="Electronic;Movie" because the track was synthesized for YouTube video creators (and I used it because it is explicitly in the Creative Commons).

Once I added these tracks to my SDCARD and updated the Library, I can see Electronic;Movie as one of the genres listed by moOde. I do not see separate "Electronic" or "Movie" entries and the command line query "mpc list genre" also returns only the concatenated "Electronic;Movie".

However, if I do what you did, "mpc search genre movie", then mpc returns the tracks.

Why? Apparently "mpc search" searches for the substring "movie" in the genre strings.

IMO, unless MPD itself splits the concatenated genre strings and returns the atomic values for moOde  to use in its list of genres, moOde has no way to know what values it can search on.

HOWEVER!

You are in luck.You're tagging FLAC files. The FLAC specification says that their metadata shall be contained in Vorbis Comment blocks.

The Vorbis Comment block consists of a series of fields with name=value pairs. The spec doesn't prescribe names but there's is a gentleman's agreement to use common metadata names. The spec does say names can repeat in the block.

Hence, you can add multiple genre tags to a FLAC file without any hackery. Here is what metaflac reports for my test example FLAC file after I retagged it:

Code:
 comments: 8
   comment[0]: TITLE=Furious Freak-FLAC
   comment[1]: ARTIST=Kevin MacLeod
   comment[2]: ALBUM=Incompetech.com
   comment[3]: DATE=2016
   comment[4]: TRACKNUMBER=02
   comment[5]: DESCRIPTION=docs.expressif.com
   comment[6]: GENRE=Electronic
   comment[7]: GENRE=Movie


and mediainfo reports

Code:
pi@moode3a:/mnt/SDCARD/FuriousFreak $ mediainfo ff-16b-2c-44100hz.flac
General
Complete name                            : ff-16b-2c-44100hz.flac
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
File size                                : 21.4 MiB
Duration                                 : 3 min 7 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 958 kb/s
Album                                    : Incompetech.com
Track name                               : Furious Freak-FLAC
Track name/Position                      : 02
Performer                                : Kevin MacLeod
Genre                                    : Electronic / Movie
Description                              : docs.expressif.com
Recorded date                            : 2016
...

 
Now comes the magic! The give away is this quote from the MPD user 

Quote:There can be multiple values for some of these tags. For example, MPD may return multiple lines with a performer tag.

When MPD scans my retagged file I now see both "Electronic" and "Movie" as tags in the list and I can select on either.

Done and dusted.

Regards,
Kent

PS - Now, of course, you have a different problem. You have to find a tag editor which will deal properly with the FLAC/Vorbis scheme rather than force it to look like a ID3 scheme.

PPS - [added later] The same ought to be true for OGG Vorbis and for Opus files too, since as far as I know they also use the Vorbis Comment metadata format but I don't have enough experience with these file types to be comfortable making pronouncements about them.
Reply
#3
Thanks, Kent, for your explanations.

But please have a look at the two screeshots of two arbitrary track infos from my collection:
           

Regardless of the audio format, mp3 or flac, the genres are separated correctly. And Mood displays these separate genres correctly in track info.
Also with 'mpc list genre', the resulting list shows the values cleanly separated. No A;B;C semicola concatenated values at all.
You have a point regarding 'mpc search genre <value>' searches for substrings. But also the exact search with 'mpc find genre <value>' results in the complete list of an album, not only a subset.

So obviously mpd AND Moode can deal with multiple genre values.

But in tag view, when selecting a genre, only a subset of the album tracks are returned, for each genre value a different subset.

The three following screenshots show this effect:

                   

All tracks of this album are tagged with the same three genre values. So regardless which value is selected, the result should always comprise all tracks.
Reply
#4
@Atair

Wow. 

This is not what I'm seeing with my moOde 6.7.1 player and using semicolons to separate the multiple genres.  For the pop-up track information I get what I described. A single Genre: Electronic;Movie for the .aiff, .mp3, .mp4, .ogg, and .opus versions and two separate Genre: lines for the Electronic and Movie values with which I retagged the .flac file.

I'm experiencing what a psychologist would call cognitive dissonance!

Could you please post the output from mediainfo for the same mp3 and flac files?  Thanks.

Regards,
Kent
Reply
#5
The a.m. taggers on Linux allow for multiple genre values without the need to type in semicolons or backslashes.
Obviously they do a good job Big Grin .

Mediainfo for the same two tracks:

           
Reply
#6
I hope this can be fixed soon.

I like the feature to add one or more complete genres to the queue and play it in shuffle mode.
You do not need to create playlists, but with a good genres scheme you can this way create a player queue for your momentary mood on the fly.


(It's quite late in Germany. Time to go to bed!)
Reply
#7
Still awake.
In the kid3 documentation, there is a very good explanation of the tagging system of the various audio formats and how they relate to each other.
See Kid3.[/url]
[url=https://kid3.kde.org/]
Reply
#8
(08-26-2020, 02:07 PM)Atair Wrote: Moode 6.7.1

I tagged my complete library with my own genre categories, where each track can belong to multiple genres.

The multiple genres are stored in the Flac/Vorbis tag GENRE separated by semicola, etc. GENRE: A;B;C. (I double-checked this with ffprobe.)

The taggers I use on Linux (gmusicbrowser, puddltag, kid3) obviously do not save the list of genres for the tracks of on album always in the same order, i.e., one track has GENRE: A;B;C, the next GENRE: B;C;A, and others maybe GENRE: C;B;A.

The effect is that in Moode, when selecting a genre, say A, only the tracks are displayed where the genre list starts with A. The same for all other tags, i.e., each genre lists only a subset of the tracks of an album.

This drived me crazy, because I thought it is my fault or the taggers.

Then I found by means of ffprobe that the tracks are tagged correctly bar the order.

As next I queried the mpd database using the cli client command "mpc search genre ..." and found that for each genre A, B, or C allways all tracks of the respective albums are listed completely.
So this is not a bug in mpd during import when scanning the Vorbis tags.


So I came to the conclusion that this must be a bug in Moode.

Could you please look into this issue?

The Library in moOde is designed assuming there is only one occurrence of a given tag. This is the most common tagging scheme. If there are multiple occurrences of a tag then IIRC the routine that generates the data for Library Tag and Album views uses the last occurrence of the tag. I'd have to look at the code to confirm this.

In your case where tracks have multiple Genre tags but they occur in different orders (A;B;C | B;C;A) would result in the generated Library data containing tracks having the same album tag but different genre tags. This would produce the behavior you are seeing in Tag/Album view.
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#9
(08-26-2020, 09:14 PM)TheOldPresbyope Wrote: @Atair

Wow. 

This is not what I'm seeing with my moOde 6.7.1 player and using semicolons to separate the multiple genres.  For the pop-up track information I get what I described. A single Genre: Electronic;Movie for the .aiff, .mp3, .mp4, .ogg, and .opus versions and two separate Genre: lines for the Electronic and Movie values with which I retagged the .flac file.

I'm experiencing what a psychologist would call cognitive dissonance!

Could you please post the output from mediainfo for the same mp3 and flac files?  Thanks.

Regards,
Kent

For your test file(s) with multiple tags does only the genre "Movie" show up in Tag view??
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#10
Quote:@TheOldPresbyope

For your test file(s) with multiple tags does only the genre "Movie" show up in Tag view??

Yes. All genre values appear one by one cleanly separated in the tag view's genre column as you may also notice in the three screenshots.
Reply


Forum Jump: