Thank you for your donation!


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


Idea: In tag view use artists instead of albumartist
#1
I would really appreciate if the 'Artist' column in tag view would really use the artists tag instead of the albumartist (or even better selectable by option).

The reason is that albumartist by design allows only one single entry while artists allows for multiple entries separated by semicola.

While albumartist may be approptiate for pop music with only one main performer, this does not hold true for jazz and classical music (conductor, orchestra, singers etc., and maybe also composer when the dedicated composer tag is not supported).
Reply
#2
When the Library is displayed and both Artist and Album Artist tags are populated in a song, the Album Artist is preferred when displaying the Artist field. The Album Artist tag is also used to identify Compilation albums by being populated with a constant string like "Various Artists".

I have a Jazz collection including trad, swing, bop, cool, fusion, etc. A single Artist or in the case of compilations, Album Artist set to "Various Artists" has always worked well.

I think the Performer tag (or multiple Performer tags) is supposed to be used to identify all the artists in a band or group but I've rarely seen that tag populated at least by any of the utilities that I've used.

Here are the tags that MPD recognizes
https://www.musicpd.org/doc/html/protocol.html#tags

Here are the tags used by moOde Library
https://github.com/moode-player/moode/bl...yerlib.php

Code:
// Generate library array (@chris-rudmin rewrite)
function genLibrary($flat) {
  $lib = array();

  foreach ($flat as $flatData) {
      $songData = array(
          'file' => $flatData['file'],
          'tracknum' => ($flatData['Track'] ? $flatData['Track'] : ''),
          'title' => ($flatData['Title'] ? $flatData['Title'] : 'Unknown Title'),
          'disc' => ($flatData['Disc'] ? $flatData['Disc'] : '1'),
          'artist' => ($flatData['Artist'] ? $flatData['Artist'] : 'Unknown Artist'),
          'album_artist' => $flatData['AlbumArtist'],
          'composer' => ($flatData['Composer'] ? $flatData['Composer'] : 'Composer tag missing'),
          'year' => getTrackYear($flatData),
          'time' => $flatData['Time'],
          'album' => ($flatData['Album'] ? $flatData['Album'] : 'Unknown Album'),
          'genre' => ($flatData['Genre'] ? $flatData['Genre'] : 'Unknown'),
          'time_mmss' => songTime($flatData['Time']),
          'last_modified' => $flatData['Last-Modified'],
          'encoded_at' => getEncodedAt($flatData, 'default', true)
      );

      array_push($lib, $songData);
  }

  $json_lib = json_encode($lib, JSON_INVALID_UTF8_SUBSTITUTE);
  debugLog('genLibrary(): $lib, size= ' . sizeof($lib));
  debugLog('genLibrary(): $json_lib, length= ' . strlen($json_lib));
  debugLog('genLibrary(): json_last_error()= ' . json_last_error_msg());

  if (file_put_contents(LIBCACHE_JSON, $json_lib) === false) {
      debugLog('genLibrary: create libcache.json failed');
  }
  //workerLog(print_r($lib, true));
  return $json_lib;
}
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#3
(08-11-2020, 12:25 PM)Atair Wrote: I would really appreciate if the 'Artist' column in tag view would really use the artists tag instead of the albumartist (or even better selectable by option).

The reason is that albumartist by design allows only one single entry while artists allows for multiple entries separated by semicola.

While albumartist may be approptiate for pop music with only one main performer, this does not hold true for jazz and classical music (conductor, orchestra, singers etc., and maybe also composer when the dedicated composer tag is not supported).


It certainly bears consideration, but please don't think there's some hard and fast specification of these "tags".

There isn't even agreement on the use of the word "tag". To some, it refers to an individual element of metadata such as "artist". This usage is typical among users and some software (like MPD and iTunes).

To others (like me), it refers to the bundle of metadata elements associated with a digital audio file. This latter usage is typical among specification writers.

The names and contents of the elements is another area of contention. Your statement "albumartist by design allows only on singe entry while artists allows for multiple entried separated by semicola", for example, is contradicted by the ID3v2 specification.

ID3v2.3 calls its metadata elements "frames" and each frame type has a 4-character identifier. A leading "T" denotes a text frame. Quoting from the spec, here's the performer (TPE) frames of interest in your discussion.

Quote:TPE1
The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is used for the main artist(s). They are separated with the "/" character.

TPE2
The 'Band/Orchestra/Accompaniment' frame is used for additional information about the performers in the recording.

TPE3
The 'Conductor' frame is used for the name of the conductor.

TPE4
The 'Interpreted, remixed, or otherwise modified by' frame contains more information about the people behind a remix and similar interpretations of another existing piece.


The MPD decoders/metadata handlers map the contents of the "TPE1" frame to MPD's "artist" tag and "TPE2" to "albumartist".

The developers of the iTunes metadata scheme went a different direction and the developers of WMA yet another direction and the developers of Vorbis comments yet another, ad nauseum.

I quite like the Vorbis comment scheme (used with my FLAC files). It's a freeform collection of name/value pairs. It would be a dream for tagging each track as if they were entries in a full-fledged musicologist's database in normal form. The nightmare begins when you try to match this with any common music player. To fracture a saying, you're forced to drive your queries through the eye of a needle.

You can find useful information on the InterWEB™. There's the metadata specs themselves, of course, and folks like MusicBrainz and HydrogenAudio have some nice mapping tables for common schemes.

Regards,
Kent
Reply
#4
Thank you both for the comprehensive explanations - that's a lot of information to digest.

Meanwhile I tried to figure out how mpd deals with text frames. But there is no really good documentation of the mapping.
From the mpd forum and the source on github I found out that
TPE3 and TPE4 both are mapped to performer and
that multiple values are in principle parsed for each text frame, but are evaluated only for genre.

This is quite some limitation of how mpd deals with ID3 frames. But ok, this is something I can deal with.
(I have quite a history of media servers, starting with Twonky, Plex, Emby, Gerbera ...., and I spent hours for tagging and re-tagging, and I am not quite sure what my favorite tag editors really do under the hood. Again some investigation needed ...)

But wouldn't it be great to have a filter utility in Moode that works similar as the search/find command in mpc? Or a more general approach like the bubbleupnp searches the mpd upnp server?
Reply
#5
@Atair
Whilst there's no single tagging standard for every different format of digital audio file there are some fairly consistent standards across most players regarding the use of tag metadata, one you'll find consistent pretty much across the board is that album artists tag takes precedence over track artist when grouping tracks into albums, otherwise compilation albums don't work.

If some of the tags are missing or details are saved in the wrong fields then you're likely to run into problems when trying to find and play what you want whatever media player you use. So it all comes down to the consistency of your collection's metadata.

From my usage of Moode I've come to learn;
In Moode's tag and album views a search will return albums that have a title, precedent artist or year/date that matches the search string.
In folder view the search returns tracks matched from any tag, including composer, comment, url etc.

Like Tim and yourself I have a sizeable Jazz collection and I haven't seen a situation where the standard tagging structure has been insufficient. Classical can be complicated but most platforms struggle with classical metadata including the streaming services, Roon's probably the best one I've seen but Roon builds it's catalogue from both file tags and their cloud services.
Reply
#6
My collection is roughly 40 percent classical, 40 percent jazz, and 20 percent everything else. Like Tim and Vinnn, I find the simplified metadata scheme is workable if not ideal. To paraphrase Voltaire, don't let the perfect be the enemy of the good.

Regards,
Kent
Reply
#7
As said, I invested quite a bit of brainwork in the tags scheme of my collection, especially the genres.
(The tags of ripped CDs or downloaded music are unbelievable messy!)

Quote:In Moode's tag and album views a search will return albums that have a title, precedent artist or year/date that matches the search string.

In folder view the search returns tracks with matches from any tag, including composer, comment, url etc.

Probably I am blind, but I cannot see, where to enter a search string in tags or album view?
(The quick help suggests to press enter or type in !r, but lacking an input field it is not possible to bring up the virtual keyboard on Android).
Reply
#8
Open the Library menu.

There is a special search feature involving dates. It's described in Quick help :-)
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#9
Yes, of course I read the Quick help.
But on Android, how do I press enter or type !r when the virtual keyboard is not available. It is displayed only when entering a text field!
Reply
#10
@Atair

Perhaps the wording of the Quick Help item could be improved.

The following works with browsers on either my iPad or my Google Pixel phone.

In the Tag or Album view, touch the Library button. You'll get a drop-down menu with "search albums" as the first entry.

If you touch "search albums", you'll get the pop-up keyboard and can enter a date or date range and then either <return> or "!r".

Regards,
Kent
Reply


Forum Jump: