#------------------------------------------------------------------------ # # Copyright (c) 1997-1998 by Cornell University. # # See the file "license.txt" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # #------------------------------------------------------------------------ package require DvmBasic package require DvmAmap package require DvmWave source ../lib/wavelib.tcl if {$argc != 2} { puts "enter input 8 bit stereo pcm filename :" set inname [gets stdin] puts "enter output wav filename :" set outname [gets stdin] } else { set inname [lindex $argv 0] set outname [lindex $argv 1] } # generate the double volume map set list {} for {set i 0} {$i < 256} {incr i} { set v [expr $i + ($i-128)] if {$v < 0} { lappend list 0 } elseif {$v > 255} { lappend list 255 } else { lappend list $v } } set vol2map [audiomap_8to8_new] audiomap_8to8_init_custom $list $vol2map # Read the Audio Buffer from Wave file set wave [read_wave $inname] set hdr [lindex $wave 0] set audio [lindex $wave 1] set inbs [lindex $wave 2] # apply double volume map to left channel set outaudio [audio_8_new [audio_get_num_of_samples $audio]] audiomap_8to8_apply_some $vol2map $audio 0 2 0 2 $outaudio audio_8_copy_some $audio $outaudio 1 2 1 2 # Write the Audio Buffer to Wave file write_wave $hdr $outaudio $outname wave_hdr_free $hdr audiomap_free $vol2map audio_free $audio audio_free $outaudio bitstream_free $inbs