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

Do not consider [silence] as "missing tracks" #1089

Open
bkanuka opened this issue Nov 15, 2014 · 17 comments
Open

Do not consider [silence] as "missing tracks" #1089

bkanuka opened this issue Nov 15, 2014 · 17 comments
Labels
feature features we would like to implement mediumsize

Comments

@bkanuka
Copy link

bkanuka commented Nov 15, 2014

Many albums have silent tracks, labelled as "[silence]" in musicbrainz. If these tracks are missing, it should be ignored.

@sampsyo
Copy link
Member

sampsyo commented Nov 15, 2014

Sounds like a reasonable extension. Do you know if there's a way to unambiguously identify this kind of track with MusicBrainz metadata, or should we just look for the string "[silence]"?

@sampsyo sampsyo added the feature features we would like to implement label Nov 15, 2014
@bkanuka
Copy link
Author

bkanuka commented Nov 15, 2014

Just look for the string - it'll be the track title. The musicbrainz spec is here: https://beta.musicbrainz.org/doc/Style/Unknown_and_untitled/Special_purpose_track_title

@sampsyo
Copy link
Member

sampsyo commented Nov 15, 2014

Cool. I'm not 100% sure how we should implement this—maybe we need an "inessential" flag on TrackInfo objects? Some help with the design would not go amiss.

@bkanuka
Copy link
Author

bkanuka commented Nov 15, 2014

Ha I'm not sure either. I wish it could be as simple as if title == '[silence]': ignore but I actually know of two tracks that would be "inessential": [silence] and [crowd noise]. And therefore this probably requires a config setting. I'm probably capable enough to help, but I currently see no end to my AFK to do list :-(

@sampsyo
Copy link
Member

sampsyo commented Nov 15, 2014

Happens to the best of us. 😃 Check back in if you get a moment to hack.

@sampsyo
Copy link
Member

sampsyo commented Dec 24, 2015

For opatel99 in #metabrainz on IRC:

This should be fixed in a few different steps.

  1. First, we'll need to detect silence tracks. This will happen in the autotag.mb module. The challenging part here is to decide exactly what criterion determines silence. Is there a specific MB ID we can use? Or do we just detect the title string "[silence]", as suggested above?
  2. Next, we need to record the fact that the track is "ignorable" somewhere. This will require extending the TrackInfo class in the autotag.hooks module with a Boolean flag called ignorable or inessential or something. It will be important to make sure we don't break anything with this change by running the tests again after this step.
  3. Finally, we need to tell the matching logic in autotag.match that it's OK to ignore TrackInfo objects with that flag set.

We can get into more detail on the specific steps when we come to them, but that's the high-level outline.

@Freso
Copy link
Member

Freso commented Dec 25, 2015

As I wrote on IRC:

The style guidelines also says that artist intent overrules all, so not all silent tracks are named "[silence]" and some artist out there may have made a track called "[silence]" that isn't silence.

I'm not saying it's a bad idea to filter on "[silence]" though, as that seems to be the most reliable thing to do detect silent tracks on MB regardless of reservations above - just as long as those reservations are kept in mind.

@bkanuka
Copy link
Author

bkanuka commented Dec 25, 2015

@sampsyo I agree with most of what you said, however the original intent of my bug was not to detect silence tracks - I think they are already labeled as such in Musicbrainz.

To clarify, occasionally there is an album with CD tracks that are silent and unnamed (don't appear on the album art, but exist as tracks when played on a CD player). The Musicbrainz spec is to give these a title of [silence].

The issue arises when you rip the CD and delete these silent tracks. Currently beets will say "missing tracks", but some may argue that there's no harm in these being missing - and will not want to "punish" or risk mis-tagging due to their absence.

Sorry if this was clear to everyone and I am beating a horse - just wanted to be on the same page. Merry Christmas or Festivus or whatever everyone :-)

@sampsyo
Copy link
Member

sampsyo commented Dec 25, 2015

Yep, that's the goal. The first step is detecting the silence; then we can ignore those tracks. Thanks for checking back in!

@tigranl
Copy link
Contributor

tigranl commented Dec 12, 2016

So, the point is to detect [silence] title, and then raise ignorable flag?

@sampsyo
Copy link
Member

sampsyo commented Dec 12, 2016

Yep, that's basically the idea—but we don't currently have an "ignorable" flag, so you'd need to implement that too.

@tigranl
Copy link
Contributor

tigranl commented Dec 12, 2016

What is the Distance class? Is it a graph description? I can't figure it out from the code.

@sampsyo
Copy link
Member

sampsyo commented Dec 13, 2016

A Distance is just a weighted set of numbers. The place you'll want to look is the beets.autotag.match module, with all those add and add_string calls. Those add components of the overall similarity score, named with a keyword that lets us determine the weight compared with other components.

Does that help?

@tigranl
Copy link
Contributor

tigranl commented Dec 13, 2016

@sampsyo do you have any [silence] examples?

@sampsyo
Copy link
Member

sampsyo commented Dec 13, 2016

Here's one linked from that MusicBrainz wikipedia page: https://musicbrainz.org/release/9c0b5a23-ca6e-4b4e-be2f-98280cf56c88

@tigranl
Copy link
Contributor

tigranl commented Dec 14, 2016

What exactly should I look for in match file?

@sampsyo
Copy link
Member

sampsyo commented Dec 15, 2016

Exactly the point you pointed toward in this comment: #2315 (comment)

That is, where we apply the penalty for missing tracks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature features we would like to implement mediumsize
Projects
None yet
Development

No branches or pull requests

4 participants