Jump to content

Map audio tag "Writer" to composer


Vicpa

Recommended Posts

Vicpa

Hi,

In contemporary music the writer tag is used often in place of the composer tag.  The most notable example is Lennon and McCartney. 

Most of my Beatle's tracks are tagged like below (This is the track from Rubber Soul.)

writer.jpg.fdbca24a44ce54b4a3702b869ff65b33.jpg 

The request is read the "Writer" tag and map to emby "composer"

 

Thanks

-vicpa

 

  • Like 1
Link to comment
Share on other sites

Vicpa

Hi 

I think it does for music... AudioBooks obviously no. It is not just "The Beatles" I can find countless examples. 

Here is 10cc

writer1.jpg.e19c55ae5187b19c72e8036e84d4354d.jpg

Link to comment
Share on other sites

ginjaninja
1 hour ago, Vicpa said:

Hi 

I think it does for music... AudioBooks obviously no. It is not just "The Beatles" I can find countless examples. 

Here is 10cc

writer1.jpg.e19c55ae5187b19c72e8036e84d4354d.jpg

i guess with all these types of suggestions, the consistency/feasibility comes down to what frame in what tagging format/version is being referred to and how ffprobe can interpret that info across the various file/tag formats

do you have a copy of file with 'writer' populated, to take a look at? are we talking about id3tag #TEXT, or #TOLY or even #TXXX="writer", or perhaps another tagging format other than id3v2

 TEXT
   The 'Lyricist/Text writer' frame is intended for the writer of the
   text or lyrics in the recording.

  TOLY
   The 'Original lyricist/text writer' frame is intended for the
   text writer of the original recording, if for example the music in
   the file should be a cover of a previously released song.

 

Link to comment
Share on other sites

Vicpa

Hi 

I collect a sample track and post it. But in the meantime below is the MB tag mappings from their site

 

writer2.thumb.jpg.18967789420a6b4923ff34a6bca6529b.jpg

 

Link to comment
Share on other sites

Vicpa

Hi @ginjaninja

Below is the ffprobe output of a flac track tagged by MB.


Input #0, flac, from 'file:D:\XXXXXX\10 Get It While You Can.flac':
  Metadata:
    MUSICBRAINZ_RELEASEGROUPID: 12e8510d-f95b-3b10-8b62-8048f2578844
    ORIGINALDATE    : 1976-01
    ORIGINALYEAR    : 1976
    RELEASETYPE     : album
    MUSICBRAINZ_ALBUMID: c934405c-0173-4669-8d02-7c9c9b3d51be
    BARCODE         : 731453497528
    RELEASESTATUS   : official
    ALBUM           : How Dare You!
    ASIN            : B000006U4M
    MUSICBRAINZ_ALBUMARTISTID: f37c537b-3557-4031-bfd6-ab63ced32854
    album_artist    : 10cc
    ALBUMARTISTSORT : 10cc
    DATE            : 1976-01
    LABEL           : Mercury Records
    CATALOGNUMBER   : 534 975-2
    SCRIPT          : Latn
    RELEASECOUNTRY  : GB
    TOTALDISCS      : 1
    disc            : 1
    TOTALTRACKS     : 10
    MEDIA           : CD
    MUSICBRAINZ_TRACKID: 064a0430-8957-4539-936d-e0b67f691af8
    TITLE           : Get It While You Can
    ISRC            : GBF087500151
    PRODUCER        : 10cc
    MUSICBRAINZ_WORKID: a0706b0b-9d85-4748-b1b0-792ebf6c3892
    LANGUAGE        : eng
    WORK            : Get It While You Can
    WRITER          : Graham Gouldman;Eric Stewart
    MUSICBRAINZ_ARTISTID: f37c537b-3557-4031-bfd6-ab63ced32854
    ARTIST          : 10cc
    ARTISTSORT      : 10cc
    ARTISTS         : 10cc
    MUSICBRAINZ_RELEASETRACKID: d6fee892-9fe9-37af-9ac0-617cf785675a
    track           : 10
    WEBSITE         : https://10cc.world/
    GENRE           : Alternative Rock
    MUSICBRAINZ_DISCID: FvnalrMUZasc6Objdbc75M1.BZg-
    TRACKTOTAL      : 10
    DISCTOTAL       : 1
  Duration: 00:02:55.44, start: 0.000000, bitrate: 1000 kb/s
    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
    Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1000x1000, 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Cover (front)
    "streams": [
        {
            "index": 0,
            "codec_name": "flac",
            "codec_long_name": "FLAC (Free Lossless Audio Codec)",
            "codec_type": "audio",
            "codec_time_base": "1/44100",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "s16",
            "sample_rate": "44100",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/44100",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 7736904,
            "duration": "175.440000",
            "bits_per_raw_sample": "16",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        },
        {
            "index": 1,
            "codec_name": "mjpeg",
            "codec_long_name": "Motion JPEG",
            "profile": "192",
            "codec_type": "video",
            "codec_time_base": "0/1",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "width": 1000,
            "height": 1000,
            "coded_width": 1000,
            "coded_height": 1000,
            "has_b_frames": 0,
            "pix_fmt": "yuvj444p",
            "level": -99,
            "color_range": "pc",
            "color_space": "bt470bg",
            "chroma_location": "center",
            "refs": 1,
            "r_frame_rate": "90000/1",
            "avg_frame_rate": "0/0",
            "time_base": "1/90000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 15789600,
            "duration": "175.440000",
            "bits_per_raw_sample": "8",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 1,
                "timed_thumbnails": 0
            },
            "tags": {
                "comment": "Cover (front)"
            }
        }
    ],
    "format": {
        "filename": "file:D:\\Public\\Win 10\\10 Get It While You Can.flac",
        "nb_streams": 2,
        "nb_programs": 0,
        "format_name": "flac",
        "format_long_name": "raw FLAC",
        "start_time": "0.000000",
        "duration": "175.440000",
        "size": "21930034",
        "bit_rate": "1000001",
        "probe_score": 100,
        "tags": {
            "MUSICBRAINZ_RELEASEGROUPID": "12e8510d-f95b-3b10-8b62-8048f2578844",
            "ORIGINALDATE": "1976-01",
            "ORIGINALYEAR": "1976",
            "RELEASETYPE": "album",
            "MUSICBRAINZ_ALBUMID": "c934405c-0173-4669-8d02-7c9c9b3d51be",
            "BARCODE": "731453497528",
            "RELEASESTATUS": "official",
            "ALBUM": "How Dare You!",
            "ASIN": "B000006U4M",
            "MUSICBRAINZ_ALBUMARTISTID": "f37c537b-3557-4031-bfd6-ab63ced32854",
            "album_artist": "10cc",
            "ALBUMARTISTSORT": "10cc",
            "DATE": "1976-01",
            "LABEL": "Mercury Records",
            "CATALOGNUMBER": "534 975-2",
            "SCRIPT": "Latn",
            "RELEASECOUNTRY": "GB",
            "TOTALDISCS": "1",
            "disc": "1",
            "TOTALTRACKS": "10",
            "MEDIA": "CD",
            "MUSICBRAINZ_TRACKID": "064a0430-8957-4539-936d-e0b67f691af8",
            "TITLE": "Get It While You Can",
            "ISRC": "GBF087500151",
            "PRODUCER": "10cc",
            "MUSICBRAINZ_WORKID": "a0706b0b-9d85-4748-b1b0-792ebf6c3892",
            "LANGUAGE": "eng",
            "WORK": "Get It While You Can",
            "WRITER": "Graham Gouldman;Eric Stewart",
            "MUSICBRAINZ_ARTISTID": "f37c537b-3557-4031-bfd6-ab63ced32854",
            "ARTIST": "10cc",
            "ARTISTSORT": "10cc",
            "ARTISTS": "10cc",
            "MUSICBRAINZ_RELEASETRACKID": "d6fee892-9fe9-37af-9ac0-617cf785675a",
            "track": "10",
            "WEBSITE": "https://10cc.world/",
            "GENRE": "Alternative Rock",
            "MUSICBRAINZ_DISCID": "FvnalrMUZasc6Objdbc75M1.BZg-",
            "TRACKTOTAL": "10",
            "DISCTOTAL": "1"

-vicpa

Edited by Vicpa
Link to comment
Share on other sites

ginjaninja

PS i am not speaking from any experience, just thinking about it for the first time.

I use Picard to write my tags and have found that some of files have #TEXT populated by Picard, and some of the files have #TXXX:Writer populated.

i note Picard can be configured to eg  save TXXX:writer as composer, if the user wanted to force the outcome.

$set(composer,%writer%)

on one hand 'writer' doesnt seem to have exactly the same meaning as 'composer'. my gut feel is composer is to music arrangement what writer is to lyrics, and the id3 specification seems to go to the trouble of separating writer/lyricist from composer.

i wonder why mbz/picard community sometimes stores writer as lyricist relationship and sometimes stores writer as writer relationship;  this suggests lyricist should generally be used in preference to writer

In many cases, the composer, lyricist and/or librettist relationship types should be used

Incidentally ffprobe reads id3v2 #TEXT as TEXT, #TOLY as TOLY as #TXXX:Writer as Writer as Vicpas already shown

image.png.a87855377ebf100a785b8d3fdcad5361.png

as an aside, it seem some softwares refer to Lyricist and Originallyricist for #TEXT and #TOLY eg. mp3tag.

 

in the long term it seems, there *could* be value in Emby being aware of "writer/lyricist" independently of "composer"

in the short term, any user could set their tagging software to store txxx:writer as composer should they wish....but on the face of it there doesnt seem to be a downside in Emby promoting ffprobe's #TEXT|#TOLY|#TXXX:Writer output to "composer" when composer is blank. (if i have understood Vicpas request correctly). They are close enough to be useful/meaningful when composer is otherwise blank.

 

I wonder what drives Author on audiobooks in emby's world......and should that go into the mix....given writer is even more crucial to audiobook consumption potentially and probably the writer/lyricist (#TEXT|#TOLY|#TXXX:Writer) is the Author in all cases.

 

 

image.png

Link to comment
Share on other sites

Yea that's what I'm worried about, is whether we'd start getting complaints from users who start seeing unexpected composers in the Emby UI.

Link to comment
Share on other sites

Vicpa

Hi @Luke and @ginjaninja

1 hour ago, ginjaninja said:

on one hand 'writer' doesnt seem to have exactly the same meaning as 'composer'. my gut feel is composer is to music arrangement what writer is to lyrics, and the id3 specification seems to go to the trouble of separating writer/lyricist from composer.

i wonder why mbz/picard community sometimes stores writer as lyricist relationship and sometimes stores writer as writer relationship;  this suggests lyricist should generally be used in preference to writer

To expand on a couple of points.

Picard based on its own documentation uses: 

1) Writer: Used when uncertain whether composer or lyricist. 

So the tag is mutually exclusive.

 

2) Picard has it own tag for Lyricist. (Which emby doesn't capture either)

lyricist.jpg.80ced7d7e398144bffab2d57c052188c.jpg

3) Guys.. I just use Picard pretty much out of the box. I am not doing any custom mappings. When I tag an album, I just open it in Picard, it gives me 

a) a Composer if there is one

b) a Lyricist if there is one.

c) a Writer if there is no Composer or no Lyricist and there is one.

1 hour ago, Luke said:

Yea that's what I'm worried about, is whether we'd start getting complaints from users who start seeing unexpected composers in the Emby UI.

Luke.. Users should not see unexpected composers in the emby UI. You would never be a "writer" if you are a composer on a track. Only the people that have music tracks tagged with writer should see any change. That is an improvement.

 

-vicpa

@Happy2Play @FrostByte thoughts?

Link to comment
Share on other sites

FrostByte

I've seen a few posts where people say they only use the composers tag for classical music genre.  

So, you're saying it can't populate writers unless someone choses to use composers (and there isn't one) so it uses writers instead?  If you can't fill writers without selecting to use composers first, then I'm not sure it would harm anyone.  This request makes sense to me if that's the case.   

However, someone is bound to complain either way because they won't be aware they already have music with the writer tag that magically got there.

 

Edited by FrostByte
  • Agree 1
Link to comment
Share on other sites

ginjaninja
Spoiler

assessing (eyeballing) tracks in my library using mp3tag (mp3tags assessment of lyricist, originallyricist and writer) i have learnt

27% of tracks have writer populated (across mp3s and flacs much more than expected)

0% tracks have originallyricist (no ones using this :-))

31% of tracks have lyricist populated

40% of tracks have composer populated

 

where writer is populated, composers is only populated <5% and in >90% of cases when both are populated writer does not match composer.

where writer is populated, lyricist is only populated <5% and in >90% of cases when both are populated writer does not match lyricist.

when lyricist is populated, composer is also populated in >95% cases, and lyricist matches composer only in about 75% cases.

none of my classical tracks has writer populated

for audiobooks lyricist is never used for anything, writer is 100% the author when populated but not widely populated. Composer is sometimes the reader and sometimes the author, and again not widely populated.

As Vicpas has said and i have only just appreciated, MBZ's 'writer' is used when the more specific relationship (Composer, Lyricist) is not known. So by definition all composers and lyricists are writers (in MBZ terms) and some writers are composers. (and some writers are lyricists)

i think it would be an improvement to interpret writer as composer....possibly because i dont use 'composer' to appreciate THE COMPOSER (i am not a classical buff), but i would like to use something akin to composer to see who is related to the work and what work someone is related to. I am missing seeing the related artist on about 25% of my library as the related artist is only stored in writer.

Classical buffs probably are a bit more protective of composer, but in the absence of Emby supporting wider concepts of work relationship in music, it seems a bit greedy for the classical community to say they have it all their own way with 'composer'. After all classical buffs can always create a separate classical library to keep their classical composer UI 'clean'.

Spoiler

in the longer term i for one am very interested to know any and all related artists to a track and in particular the lyricist for contemporary music and author for audiobooks.

 

Edited by ginjaninja
  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...