Mat's Playground

music.makeWav

Description

This script decodes all mp3 or ogg files in the current directory to wave files.

Required programs

Download

Source code

Hide line numbers Expand lines
 1#!/bin/sh
 2# the next line restarts using tclsh \
 3exec tclsh "$0" "$@"
 4
 5#
 6# required programs:
 7#   lame
 8#   ogg123
 9#
10
11
12foreach file [lsort [glob -nocomplain -types f *.{ogg,mp3}]] {
13    set ext [file extension $file]
14
15    set new_file "[file rootname $file].wav"
16
17    if {[file exists $new_file]} then {
18        puts "ERROR: $file not decoded. Target file already exists"
19        unset file ext new_file
20        continue
21    }
22
23    puts -nonewline "Deccoding $file .. "
24    flush stdout
25
26    if {$ext == ".ogg"} then {
27        exec ogg123 --quiet -d wav $file -f $new_file
28    }
29
30    if {$ext == ".mp3"} then {
31        catch {exec lame --quiet --decode $file $new_file}
32    }
33
34    puts "Done"
35
36    unset file ext new_file
37}