"Media/Media Type" tag mapping incompatibility between Picard and foobar2000

id3
vorbis
tag-mapping
Tags: #<Tag:0x00007f30976dd750> #<Tag:0x00007f30976dd5c0> #<Tag:0x00007f30976dd480>

#1
  1. The standard ID3 frame for media is “TMED”
  2. Vorbis comments are arbitrary
  3. foobar2000 decided on “MEDIA TYPE” field while MusicBrainz (Picard) chose “MEDIA”
  4. There is no way to set up custom tag mappings either in foobar2000 or Picard

Because of this I cannot automate tagging of source media information:

  • If I tag multiple formats with default settings in Picard, the TMED frame will populate and display properly (under “MEDIA TYPE”) in foobar2000, but all my flac and opus files will show it in a different, unknown field (“MEDIA”)
  • If I use Picard’s scripting to change “MEDIA” into “MEDIA TYPE” all tags will display properly in foobar2000, but ID3 will be non-standard: written under “TXXX:Media Type” instead of the proper “TMED” frame

So, am I missing something or do I have to just live with that? Maybe there is a way to bypass it somehow, ie. through forcing Picard to populate different fields depending on the file/tag format?


#2

Currently you cannot set format specific tags. One option would be to just do a

$set(MEDIA TYPE,%media%)

And live with the fact that your FLAC files will contain both MEDIA and MEDIA TYPE and ID3 will contain both TMED and TXXX:MEDIA TYPE.

Maybe you can even do something like this:

$set(MEDIA TYPE,%media%)
$set(_id3:TMED,%media%)
$unset(media)

This would still write both MEDIA TYPE and TMED to ID3, but should only write MEDIA TYPE to FLAC. But the downside is that if you would save any other format, let’s say MP4, it would not be stored to the correct tag. Also I have not tested whether this works as intended :smiley:


#3

Nah, doubled tags would trigger my OCD :stuck_out_tongue: I’m gonna stay with default settings (proper TMED frame for ID3) and then just manually move the vorbis value between fields in foobar.


#4

Another variant to ease the manual work: Since Picard 2.0.3 you can manually trigger any script to be executed for selected files and tracks. So do the following:

  1. In Options > Scripting add a new script, add the second script I posted above and name it e.g. “Set MEDIA TYPE for FLAC”. Make sure the script is not activated (the checkbox is not set) so it is not run automatically.

  2. Then if you are tagging FLAC files, right click the already matched files, the select “Run script” > “Set MEDIA TYPE for FLAC” in the context menu


#5

Now this is great news! :smiley: Shame to admit it, but I’m still running on 1.4 - I’m updating ASAP!

Thanks for the help!