On Tue, Oct 10, 2006 at 03:18:12PM +0200, Mario Lang wrote: > There are a lot of CDDB based tools for linux, but they all seem > to depend on the physical disk being in the cdrom drive. The CDDB disc ID is based on the number of tracks and the track lengths. So if you can accurately calculate that from some soundfiles, you might be in business. I haven't found the algorithm defined anywhere, but maybe these excerpts from the DiscID python module will serve as explanatory pseudocode. It's at http://cddb-py.sourceforge.net/ BUT... I'm not sure how "leadout" is extracted; that might scuttle your idea. # If called from the command line, will print out disc info in a # format identical to Robert Woodcock's 'cd-discid' program. def cddb_sum(n): ret = 0 while n > 0: ret = ret + (n % 10) n = n / 10 return ret def disc_id(device): (first, last) = cdrom.toc_header(device) track_frames = [] checksum = 0 for i in range(first, last + 1): (min, sec, frame) = cdrom.toc_entry(device, i) checksum = checksum + cddb_sum(min*60 + sec) track_frames.append(min*60*75 + sec*75 + frame) (min, sec, frame) = cdrom.leadout(device) track_frames.append(min*60*75 + sec*75 + frame) total_time = (track_frames[-1] / 75) - (track_frames[0] / 75) discid = ((checksum % 0xff) << 24 | total_time << 8 | last) -- Paul Winkler http://www.slinkp.com