For some unfathomable reason it’s been a rather productive two weeks of short ##morituri hacking sessions.
I was wondering why I wasn’t getting any feedback or trac tickets, until I found out that a) I had five month old patches lying around in my trac and b) I forgot to configure the ticket mails properly.
That, spurred with actual bug reports from blizzard who seems to have ripped 600 CD’s with this piece of code already (more than me, in any case), kept me going towards a new release.
So, this new release adds, among other things:
- ‘rip image encode’ to encode a lossless image to a lossy one (vorbis, mp3, …)
- tagging tracks with MusicBrainz id’s
- ‘rip image retag’ to apply up-to-date musicbrainz info (including id’s) to existing rips. I did this one specifically for Chris when he found out none of his rips had the MusicBrainz id’s and I felt guilty.
- added an auto-generated man page.
- Generate a complete list of known drive offsets to try with ‘rip offset find’ based on the AccurateRip database.
- improved the basic Task code I wrote for abstracting asynchronous operations that can be hooked into a GLib mainloop or Twisted reactor. Exception information is now more useful.
A bunch of bugs were fixed too, and I especially want to thank Peter Oliver who provided me with three patches that I sadly overlooked. I hope he comes back.
In any case, enjoy the code and start ripping!
As for the next release, I’ve already started on ripping the data track (which ended up being easier than I thought, using dd and wrapping it in a Task parsing the output). However, I haven’t yet been able to write a full image back to a CD, for various reasons. First of all, the .cue files I generate have multiple FILE statements, which doesn’t seem to be supported by wodim, and only recently was added to cdrecord. Second, actually writing the data track so far has given me only errors.
It has been possible to rewrite the .iso file into one that can be mounted, and I might have to actually do the writing of discs by first decoding to a single file then writing from that. We’ll see.
On the other hand, with tag reading and writing tasks now written, I might start using those in a separate application to finally start managing my music across my different machines.