Comments (5)
The issue: defaulting to "Artist" for "Album artist" if "Album artist" was not present. I suspect this would cause a problem if 2 albums have the same name without "Album artist" set.
For now I've removed the "Artist" default -- it's now "Various artists"
A possible solution is to hash the cover art if the "Album artist" is not set and use that to sort. Not sure how I will do that yet.
from crates.
It looks like we'll have to do a few tricks in order to solve this problem.
As far as I can see:
- Store bought, one-off or otherwise, the data contained within the headers is no coherent enough to us -- which is why MusicBrainz & AcoustID exist. However, MusicBrainz won't work for unlabelled music al the time.
- Single AudioFiles are consistent enough for a search based browsing (vosbox did it well)
Aside from manual curation (which we want to minimise) I think that we should index Audiofiles as-is (we can replace/deprecate to improve) and then derive a separate album (etc) from this.
Thoughts?
from crates.
Oh, and these "Broken albums" tend to be compilations of various artists -- some set the album artist to the individual artist.
from crates.
Going to make a classmethod on Album that tries to match or create an album:
Try desperately to match a current album, and as a last resort create a new one by:
- Try to match by MBID if it's there (probably isn't, yet)
- Looking for exact match of Album/Album artist if there is one (replace with better cover art if possible)
- Try matching by cover art hash if there is one (and replace "Album artist" with Various artists)
- Finally, make a new one.
- None
Also, possible filter on the Album name: Using a regex, remove substrings like:
cd2
disk 1
(cd1/4)
....that's assuming it's not useful to split by physical disk. It might be useful.
from crates.
Implemented.
Ha! It worked
from crates.
Related Issues (20)
- Multiple CD albums HOT 3
- Search HOT 2
- Flux implementation HOT 8
- cas url: optional extension HOT 1
- Your collection vs. all the songs in the world HOT 1
- Player HOT 1
- async job daemon
- jobs configured by admin page
- ImmutableFile export for serialise HOT 1
- Try Median perimeter based colour detection for album letterboxing
- Activity log table
- JSON object API HOT 1
- routed parameterised async code
- file handle leak
- http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/
- https://github.com/carltongibson/django-filter
- gitbook.com documentation
- Loudness war: LUFS check
- re-tool javascript
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 crates.