Comments (15)
Parsing ISRCs from cue sheets is not a big deal.
The problem is getting the Disc ID from the cuesheet. The official library (libdiscid) does only support creating these from physical discs.
It might be possible to calculate the disc id with the track times, but that might also be out of scope for the script and error-prone. (quite easy in general, but there are some pitfalls). There are possibly also bugs/problems that led to a wrong cuesheet (i.e. problems with data tracks).
On the pro side: cuesheets are somewhat widespread.
Do you have many cuesheets lying around?
from musicbrainz-isrcsubmit.
The calculation is defined in http://musicbrainz.org/doc/Disc_ID_Calculation
This would need a couple of tests, that the resulting ids are the same using libdiscid (the reference) and our implementation.
from musicbrainz-isrcsubmit.
I tend to have cue sheets + EAC logs (the latter is sufficient to generate a discID of course). Is it necessary to have a discID to submit ISRCs?
from musicbrainz-isrcsubmit.
Technically ISRCs are a property of recordings and submission works over tracks entities.
However, how would you match to the correct recording or release where this recording is attached to?
You could provide the release mbid
or recording mbid
at the command line,
but when you are that far, adding more code to your own script (that gathers this information) might be a better option.
Searching with the artist/title/track information from the cuesheet (if present) and then giving a choice is an option, but not the first.
I also want to note, that this won't be fully automatic.
You will be given a choice which is the correct release quite often (for popular releases) and then it is better to have the disc/case at hand to check for barcodes and release dates. (though the correct release dates are not the same as production dates at the cover)
Again, if you need the disc/case anyways..
I will see if I can add disc id calculation when I have time, but this isn't high priority.
from musicbrainz-isrcsubmit.
By the way, if you do want to create a script for your use case, isrcsubmit-cdrdao (ngs) might be a better start.
That script uses a newer musicbrainz backend, reading a cdrdao toc is very similar to reading a cue sheet and it doesn't include much code you don't need :-)
However, that script also is missing the matching part from the cue to the recordings/releases.
You might want to try and extract mbids from the actual files (which would be much better in your case).
from musicbrainz-isrcsubmit.
Another thing to note:
libdiscid itself includes a function that calculates a disc id when given the offsets (from a toc/cue):
https://github.com/metabrainz/libdiscid/blob/master/include/discid/discid.h
It's just that the python library I am using (python-musicbrainz2) doesn't expose this interface in any way.
Again, isrcsubmit 2 should use another musicbrainz library which should export this interface.
from musicbrainz-isrcsubmit.
I started a libdiscid python binding:
https://github.com/JonnyJD/python-discid
When that binding is done, calculating the disc id should only be a couple of lines in isrcsubmit.
from musicbrainz-isrcsubmit.
@kepstin indicated in #musicbrainz
that cue files alone are not enough for disc IDs (missing overall length)
There is a C library to wrap CUE+WAV and other formats:
http://cdemu.sourceforge.net/pkg_libmirage.php
Kepstin also has a library that might already help you (uses libdiscid and libmirage):
http://www.kepstin.ca/projects/image-id
from musicbrainz-isrcsubmit.
It might be possible to add ISRC reading in my tool via the libmirage interfaces, I might take a look at that at some point. Opened kepstin/image-id#1 for this.
from musicbrainz-isrcsubmit.
image-id does have ISRC output now.
Isrcsubmit version 2 can possibly support submitting from cue files with the help of image-id.
My current idea would be to haven an --image parameter that, if given an image file, would get ID and ISRCs from the image-id output, store this in some Disc object (or similar?) and then go on asking which MB release should be chosen.
from musicbrainz-isrcsubmit.
I plan to make an actual release of image-id shortly, so you can have a version to refer to in docs, etc.
from musicbrainz-isrcsubmit.
image-id 1.0.1 is released now. I'll implement this when I have some time.
from musicbrainz-isrcsubmit.
@LordSputnik implemented a small script that submits ISRCs from cue files to musicbrainz.
The mbid/discid isn't yet found/calculated. That part could be done with the help of @kepstin's http://www.kepstin.ca/projects/image-id.
from musicbrainz-isrcsubmit.
Not really sure if I can implement this for 2.0. I'll see.
I do take patches though ;-)
from musicbrainz-isrcsubmit.
Still planned, but moved to 2.1.x, so I am hopefully able to release version 2 soon, since I already wanted to do that a long time ago.
from musicbrainz-isrcsubmit.
Related Issues (20)
- [bug] ^c does not stop script immediately
- --no-keyring still checks for DBus secrets interface HOT 2
- "ERROR: cdrdao returned with 1" and no further info HOT 5
- proxy option HOT 1
- Documented option β-hβ does not display help HOT 4
- Failed install on macOS 10.12 HOT 4
- Multiple discs in single release with same TOC cause a crash
- `setup.py install` broken HOT 9
- improve installing via pip HOT 4
- Getting an error page when I try to submit to musicbrainz HOT 3
- musicbrainz-isrcsubmit slow with cdrdao HOT 1
- Could not find module 'discid.dll' HOT 3
- Release selection improvement
- --force-submit requires internet connection
- Drop support for old Python versions
- Submit ISRCs from digital music files instead of CDs
- Display release disambiguation comments
- Compatibility with new setuptools HOT 1
- Rename main branch to βmainβ HOT 2
- Windows: Could not find module 'discid.dll' HOT 1
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 musicbrainz-isrcsubmit.