-
Notifications
You must be signed in to change notification settings - Fork 92
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
CTDB as an alternative to AccurateRip #15
Comments
Just to correct an alarming comment: we are never going to support gstreamer after we drop 0.10. See #29 . Regarding the actual enhancement, I am in favour of at least optionally supporting this. |
Right, useful clarification. |
Any news on this? Would be great to have alongside the Accurip V2 that was added back in September. |
Would be indeed nice. |
@gchudov I'd like to ask you if the only existing implementation of a CTDB client is the one included in CUETools (written in C#). Thanks, |
As far as i know, yes. The network protocol part is quite trivial, but the parity calculations in https://github.com/gchudov/cuetools.net/tree/master/CUETools.Parity a bit more work. The database does have CRC32 track-based checksums too which are a lot easier to implement in any language, so a stripped down implementation that only supports verification using those and doesn't support database submission can be quite simple. |
@gchudov Understood, thanks for the explanation. |
@gchudov So, to the adopt the stripped down implementation of the database (verify only) in whipper, I need to:
Then I'm undecided how to continue...
BTW: How do you compute the values in the Thanks, |
No, EAC also supports CTDB and by default it uploads data to it, which would also be cool to do.
You actually don't have to. You can just lookup DB using TOC: I'm interested in implementing those parity checks in python, maybe if I do this you guys could just copy-paste parts of my code into yours ;D |
Well, the plugin EAC uses to interact with the CUETools DB is from @gchudov and written in C# too.
Cool, thanks! Please note that your code currently doesn't specify a license so it's implicitly licensed as all rights reserved. To be rightfully included into whipper, the foreign code should be licensed with a license compatible with GPLv3. |
True. @JoeLametta yup, I also thought about missing license. ATM treat it like it was LGPL licensed, I'll add license later. |
@JoeLametta The trick to matching CRCs despite different pressing/drive offsets (e.g. when a small number of samples is cut from the beginning of the disc and there's the same number of extra samples at the end, and all contents is shifted that way) is to keep a running CRC while processing the disc, and remembering the first and the last 10*588 values at the beginning and end of each track. It's possible to then instantly compute offsetted CRC by doing some math on those values (Crc32.Combine). In a loop for a possible range of offsets you can recalculate offsetted CRCs for all tracks and compare to the database, and present the information for the offset that has the most matches. |
@gchudov and what about parity? |
WIP Python port of CTDB CRC generation: https://github.com/bmwalters/python-cuetoolsdb/blob/main/cuetoolsdb/verify_old.py It passes the simple upstream unit test but that's all I've tested so far. WIP CTDB HTTP API docs: https://github.com/bmwalters/python-cuetoolsdb/blob/main/api.org |
It would be nice to be able to use http://db.cuetools.net/ as an open source/public domain alternative to AccurateRip.
The text was updated successfully, but these errors were encountered: