Comments (15)
any progress on this?
from beets.
@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.
from beets.
@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.
from beets.
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.
from beets.
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.
from beets.
Cool; good ideas. FWIW, the "manual" option resembles #154, which is a great catch-all fallback for ambiguous situations like this.
from beets.
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.
from beets.
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.
from beets.
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
from beets.
@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.
from beets.
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? ...
from beets.
@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!
from beets.
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.
from beets.
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 ?
from beets.
I'm interested in this as well. Hopefully it will be considered soon :)
from beets.
Related Issues (20)
- Simplifying item/album handling in the plugin API
- Undocumented config feature not in the docs: overwrite_null HOT 2
- Beets should remove deleted albums from history while updating
- Beet edit doesn't show custom tags
- Remove 'slow sort' by performing all sorting in SQL only
- Remove the need for additional queries in template variables resolution
- Add a benchmark command to poe
- beet move crashes my laptop and breaks my external memory HOT 2
- Error when loading `convert` plugin HOT 5
- Consider making the `rich-tables` dependency optional
- Itunes ignores albumartist_sort
- Regression in 2.0.0: import UI is useless in ligth theme HOT 8
- Listenimport plugin is currently broken
- Match smartplaylist options with playlist plugin
- deezer plugin doesn't handle pagination in tracklist
- In 2.0.0 (from git snapshot), running 'beet splupdate' (for smartplaylist) fails with TypeError whenever 'playlist:x' is in any query HOT 1
- File not found exception aborts import - occurs during "remove old"
- Migrate tests from `unittest` to `pytest` HOT 1
- I have two issues: 1st could not set permissions on... 2nd FileNotFoundError: [Errno 2] No such file or directory:... then crash!
- Remove Discogs label disambiguation number
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from beets.