Version 3 of wav

Updated 2004-10-06 19:15:14 by lwv

A wav is a windows format sound file.


AF - here is a small package I started for reading some basic info from wav files.

 package provide wav 0.1

 namespace eval ::wav {}

 proc ::wav::info {file} {
    set fh [open $file r]
    binary scan [read $fh 12] A4iA4 sig1 len sig2
    if {$sig1 != "RIFF" || $sig2 != "WAVE"} { close $fh; return -code error "Not
 a WAV file" }
    binary scan [read $fh 24] A4issiiss id size format channels samplerate byterate align bitrate
    set len [expr {[file size $file] - [tell $fh] - 8 - ($size - 16)}] 
    close $fh
    return [list format $format channels $channels samplerate $samplerate byterate $byterate bitrate $bitrate size $len]
 }


 array set data [::wav::info $argv]

 if {$data(channels) == 1} {
    set chans mono
 } elseif {$data(channels) == 2} {
    set chans stereo
 } else {
    set chans "$data(channels) channels"
 }

 puts "$argv: [expr {$data(size) / double($data(byterate))}] seconds, [expr {int($data(samplerate) / 1000.00)}]KHz, $data(bitrate)bit, $chans"

Category Sound Category Package