# File _darcs/current/lib/freedb_query.rb, line 37
    def fromPCMFiles filenames
        lengths = []
        filenames.each do |fn|
            fil = AudioFile.new fn
            lengths.push(fil.frame_count*1000/fil.rate)
            fil.close
        end

        nrTracks = lengths.length

        offset = 150                   # first track offset, nearly always. 
        frameOffsets = []
        totalLength = 0
        n = 0
        lengths.each do |length|
            frameOffsets << offset
            offset += (length * 75 / 1000)
            n += digitSum(length / 1000)
            totalLength += length / 1000
        end

        discID = sprintf("%08x", ((n % 0xff)<<24) | \
                                 (totalLength << 8) | \
                                 nrTracks)
        query = "#{discID} #{nrTracks} "
        frameOffsets.each do |ofs|
            query += "#{ofs} "
        end
        query += "#{totalLength}"
        query
    end