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

Extend options for unmatched tracks #129

Open
ghost opened this issue Feb 28, 2013 · 15 comments
Open

Extend options for unmatched tracks #129

ghost opened this issue Feb 28, 2013 · 15 comments
Labels
feature features we would like to implement migrated Issue migrated from Google Code

Comments

@ghost
Copy link

ghost commented Feb 28, 2013

This issue was automatically migrated from Google Code.
Original author: mikemacl...@gmail.com (August 03, 2012 01:17:37)
Original issue: google-code-export/beets#417

@montchr
Copy link

montchr commented Apr 27, 2013

any progress on this?

@sampsyo
Copy link
Member

sampsyo commented Apr 27, 2013

@montchr No. Please consider contributing if this feature is important to you. Even a high-level design for how the interface should work would be helpful.

@montchr
Copy link

montchr commented Apr 27, 2013

@sampsyo I'll certainly consider it over the next few months. I'm not very experienced with Python, but I do hope to improve my skills there.

@sampsyo
Copy link
Member

sampsyo commented Apr 27, 2013

Awesome, thanks! Even if you don't get too far with the actual coding, just some thought on how the feature should work is a step in the right direction.

@dokterbob
Copy link
Contributor

There could be several 'strategies' for handling unmatched tracks, which need not be mutually exclusive. I propose at least the following options:

  • ignore: this is the current behavior, tracks not matching will not be included in the library
  • asis-conditional: unmatching tracks will be conditionally imported when the track numbering (directly) follows the tracks of an album
  • asis-renumber: unmatching tracks will be renumbered so as to follow the tracks of an album
  • manual: allow for manual (re)tagging of unmatched tracks, including numbering

Perhaps this should be offered as an interactive choice to the user, with asis-conditional being the default; this is a situations I have noticed multiple times and currently the best remedy is to simply copy the whole album as-is, which does not make sense for badly tagged albums.

@sampsyo
Copy link
Member

sampsyo commented Sep 15, 2013

Cool; good ideas. FWIW, the "manual" option resembles #154, which is a great catch-all fallback for ambiguous situations like this.

@daks
Copy link

daks commented Dec 9, 2013

I just discovered that the unmatched tracks are simply not imported (I thought they were at least copied as is), so I'm interested in any progress on this issue.

@dokterbob
Copy link
Contributor

No progress so far, I am afraid. Busy times... If you're able to work on this: great! If you need help, suggestions or a review: I'd glady help out.

@daks
Copy link

daks commented Dec 31, 2013

I looked further at this problem and tried two strategies to import unmatched tracks:

  • import the album first and then only additional tracks (removing the legitimate ones): the album is imported correctly but additionals are imported in "non-album" directory, even if they stay tagged with the correct album
  • import all the album as tracks: all tracks are imported in "non-album" even if they are tagged with the album correctly.

I re-checked all my collection and have a big number of unmatched tracks so this issue is important for me.
Not sure if I can found a lot of time to help but I can try, I know a little Python but still need a way to understand how beets works (high-level), how this problem needs to be dealed with (in the code), etc..
Any help appreciated @dokterbob

@dokterbob
Copy link
Contributor

@daks As you state yourself, your proposed solution would 'break' a lot of albums.

AFAIK a lot of albums have additional tracks which, for some reason, never made it into MusicBrainz. As I proposed above, there should at least be an option to include additional tracks as-is with the album.

@daks
Copy link

daks commented Jan 12, 2014

In reality, I wasn't proposing anything just telling what I have tested :)

For me the problem is that, for 95% of my albums, if there are unmatched tracks in the album they should be added as tracks of the album, not non-album tracks. It seems that is your idea too.
My question now is: how can I help on this? Which part of the code do I need to look at? Does it need a dedicated plugin? ...

@sampsyo
Copy link
Member

sampsyo commented Jan 13, 2014

@daks Good questions! I'm glad you're interested in helping out. Please just let me know (here, on the mailing list, on IRC...) if you have questions while sorting out the codebase. Here are some notes to point you in the right direction:

  • This should be rolled into the core, not in a plugin. It's difficult to conceive of what the plugin hook would look like.
  • The relevant code is all in importer.py. I suggest familiarizing yourself a tiny bit with how the import workflow goes (specifically, the way ImportTask objects are handed from stage to stage throughout the process).
  • Items are added to the library database in the apply_ choices stage. You can see on line 728 that the code currently uses imported_items to choose which items to add to the library (and which unmatched tracks to discard). That's where you'll want to make the change.

Thanks again for looking into this!

@tweitzel
Copy link
Contributor

I'd like an option to import extra unmatched tracks in a directory without tagging the track number, but keeping the title/artist/album tags intact.

@arthurlutz
Copy link

I'm interested in this too. When I find time to contribute to beets, I'll probably tackle this issue (after another "easier" contribution)

@daks how did you rescan your library to find unmatched tracks without reimporting ?

@gbdoin
Copy link

gbdoin commented Nov 25, 2017

I'm interested in this as well. Hopefully it will be considered soon :)

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 migrated Issue migrated from Google Code
Projects
None yet
Development

No branches or pull requests

7 participants