This is a feature release of libdiscid.
It took more time than planned, but 0.6.0 is done now with lots of changes.
Main changes are the TOC string api (handy for fuzzy lookup) and a much better default drive detection on all platforms.
An example to use libdiscid together with libmusicbrainz (including fuzzy lookup) is also provided now.
Unfortunately I found one major bug only while merging changes to another branch. Libdiscid 0.6.1 fixes reading of ISRCs on Windows again (introduced in 0.6.0).
The full set of changes:
- [LIB-48] – Fix asserts/return values on empty object
- [LIB-59] – windows: unable to read ISRC (0.6.1)
- [LIB-28] – allow using numbers as devices on Mac OS X
- [LIB-41] – Add TOC (id) to API
- [LIB-43] – Use first CD drive letter on Windows as default device
- [LIB-45] – Linux/BSD/Solaris: search for an existing default device from a list of devices
- [LIB-54] – Add example: libmusicbrainz / query for metadata
- [LIB-55] – Allow using numbers as devices on Windows
- [LIB-56] – Allow using device numbers on Linux
I want to thank Philipp Wolfer for the Windows drive detection, Laurent Monin for the TOC string API and also Sebastian Ramacher and Lukáš Lalinský for smaller changes.
Testing wanted for raw ISRC reads
Reading ISRCs raw from the device with SCSI commands ([LIB-11, duplicate ISRC problems) is already implemented for Linux and Windows and works quite well on most drives. There is no code for support on Mac, yet. The Windows and Linux implementation still need some testing (with different drives).
If you are willing to test this or really need this feature you can build the code in the “isrc_raw” branch from the github repository.
There is also a windows binary available.
We do want to know about problems (some drives are already reported with strange behavior, possibly due to Alignment), but also a short note about working systems is helpful to get a bit of insight on how rare or frequent failures are.
We also happily accept patches to send SCSI commands on Mac OS X. There is some information in the ticket how this could work, but this is probably the most difficult of the platforms to implement.
Information, documentation and other links are at:
That includes builds for Windows and Mac OS X.