Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Composer, Lyricist and Arranger tags #2333

Merged
merged 2 commits into from
Dec 21, 2016
Merged

Conversation

ibmibmibm
Copy link
Contributor

MusicBrainz provids composer, lyricist and arranger infomations related
to individual recordings. This commit adds query parameters to fetch them, and
write down to media files.

Tagging mapping is implemented according MusicBrainz Picard's data:
https://picard.musicbrainz.org/docs/mappings/

Signed-off-by: Shen-Ta Hsieh ibmibmibm.tw@gmail.com

@ibmibmibm
Copy link
Contributor Author

ibmibmibm commented Dec 20, 2016

This pr implement some fields of #1547 and #507, and implement part of #506, while not supported #505.

Copy link
Member

@sampsyo sampsyo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow; thank you! This is quite complete—it's awesome that you were able to put together the MediaFile component too. ✨

Can you please add the new fields to test_mediafile.py so they get exercised in our test suite?

if track_info.composer is not None:
item.composer = track_info.composer
if track_info.arranger is not None:
item.arranger = track_info.arranger
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please add a blank line between this stanza and the comment below?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

MusicBrainz provids composer, lyricist and arranger infomations related
to individual recordings. This commit adds query parameters to fetch them, and
write down to media files.

Tagging mapping is implemented according MusicBrainz Picard's data:
https://picard.musicbrainz.org/docs/mappings/

Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com>
@ibmibmibm
Copy link
Contributor Author

As reminder, standalong recording's relation fetching needs this pull request, so we'll need a newer version of musicbrainzngs not yet released.

@sampsyo
Copy link
Member

sampsyo commented Dec 20, 2016

Ah, got it—thanks. So it sounds like we have two options:

  1. Don't merge this until there's a new release of the client library.
  2. Add some version checking so we just don't get the data on the current version of the library.

Signed-off-by: Shen-Ta Hsieh <ibmibmibm.tw@gmail.com>
@ibmibmibm
Copy link
Contributor Author

I've add a commit that automatically detects old version of musicbrainzngs, and disable this feature.

@sampsyo sampsyo merged commit 97e5581 into beetbox:master Dec 21, 2016
sampsyo added a commit that referenced this pull request Dec 21, 2016
Add Composer, Lyricist and Arranger tags
sampsyo added a commit that referenced this pull request Dec 21, 2016
@sampsyo
Copy link
Member

sampsyo commented Dec 21, 2016

Wonderful; thank you! This feature detection appears to work perfectly. This is all merged up. ✨

sampsyo added a commit that referenced this pull request Dec 22, 2016
sampsyo added a commit that referenced this pull request Dec 26, 2016
The new MediaFile tags in #2333 mean that the `test_unicode_path` test will
write new tags to this test fixture file.
@dosoe
Copy link
Contributor

dosoe commented May 8, 2017

Hi! I'm using the 'composer' tag, but it doesn't always seem to work. As an example, I have a few tracks from https://musicbrainz.org/release/a334fe44-27a5-43dd-b1da-369ddad5cde7 where beet info doesn't even give me a composer tag, and beet info -l gives me an empty composer track. However on MB they all have a work and a composer linked to them.

@ibmibmibm
Copy link
Contributor Author

Did you upgrade your musicbrainzngs?

@dosoe
Copy link
Contributor

dosoe commented May 11, 2017

I have musicbrainzngs version 0.6.2 from the community repo on an arch linux, I don't have the git version from the AUR.
Is the git version better?

@ibmibmibm
Copy link
Contributor Author

You'll need git version of musicbrainzngs while 0.7 is not released yet.

@dosoe
Copy link
Contributor

dosoe commented May 15, 2017

I have an issue about the 'arranger' tag: In this pull request the 'arranger' tag is fetched as a tag of a recording. On MB there is another 'arranger' tag that is a tag of a work. Should we merge these two tags (fetch both in the tag 'arranger' and the corresponding 'arranger_sort') or should there be a 'recording_arranger' and a 'work_arranger'? The second one would be more rigorous but we might then end up with stuff like 'recording_arranger_sort' and 'recording_arranger_disambig' which starts to be ridiculously long.
I have actually never encountered an occurence of 'arranger' as a recording tag, but I'm specialized on classical music, where 'arranger' is always related to a work, maybe other styles have it (I would like to check it up or link to examples, but MB is currently down).

@dosoe
Copy link
Contributor

dosoe commented May 15, 2017

Also, usually, for operas, there is another term for lyricist (librettist) which has his separate term in MB. Should I create a new tag for that or should I just fetch him in the lyricist tag?

@sampsyo
Copy link
Member

sampsyo commented May 16, 2017

Some of these questions overlap with MusicBrainz style questions—maybe it would be useful to get input from #musicbrainz on IRC?

@dosoe
Copy link
Contributor

dosoe commented May 16, 2017

Ok after some discussion on MB IRC channel: work-arrangers are mostly in the context of classical music, when a specific arrangement is played by different people (as Fresco said: However, since classicial music has a different tradition with regards to several "groups" performing the same arrangement, it makes more sense to make a new Work for these, so we can be sure that we're saying "these people are actually really playing the same arrangement, and not just the same Work that happens to have been arranged by the same )
recording-arrangers are more common in 'modern' music where one group makes his version of a popular piece/song.
The distinction between lyricist and librettist is that librettist is basically reserved to stage-works (opera, musical and oratorio-like works) and lyricist gets the rest. It can get confusing because inside a musical there can be songs that are not written by the librettist of the musical, they have their own... lyricist.

It seems pretty clear to anyone that work-arranger and recording arranger can be merged if necessary (maybe we can put them both into the 'arranger' tag since he gets written on the file but also keep separate tags for them if it's not too cumbersome).

For librettist and lyricist there seems to be more opposition, I propose we keep them separate.

@eziobandara
Copy link

MusicBrainz provids composer, lyricist and arranger infomations related
to individual recordings. This commit adds query parameters to fetch them, and
write down to media files.

Tagging mapping is implemented according MusicBrainz Picard's data:
https://picard.musicbrainz.org/docs/mappings/

Signed-off-by: Shen-Ta Hsieh ibmibmibm.tw@gmail.com

I've no programming knowledge. Can you please help me with adding lyricist to my mp3s?

@dosoe
Copy link
Contributor

dosoe commented Oct 21, 2020

Hi! Just check out https://beets.readthedocs.io/en/stable/guides/main.html .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants