LinuxQuestions.org
Did you know LQ has a Linux Hardware Compatibility List?
Go Back   LinuxQuestions.org > Forums > Linux > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices

Reply
 
Thread Tools
Old 06-11-2005, 07:12 PM   #1
cddesjar
Member
 
Registered: Jan 2004
Location: Maine/Minnesota/Alberta
Distribution: Debian Sid
Posts: 125
Thanked: 0
using mpg123 to convert .mp3 to .wav files


[Log in to get rid of this advertisement]
Hi I am running mpg123 to convert my files from .mp3 to .wav
I am doing it this way
mpg123 -w <filename>.wav <filename>.mp3
This works fine for me. But I was wondering if someone knew if there was a way to convert ALL my mp3 files in a directory to wav files with ONE command. something like this...
mpg123 -w *.wav *.mp3
(which i know doesn't work)
My second question is whether or not anyone knows of a GUI that converts mp3 to wav with a drag and a couple clicks of a mouse.
Cheers,
Chris
cddesjar is offline     Reply With Quote
Old 06-11-2005, 09:10 PM   #2
kencaz
Senior Member
 
Registered: Mar 2005
Location: Costa Mesa, OC, CA USA
Distribution: Mandrake 10.1 Slackware 8.1 FreeBSD
Posts: 1,468
Thanked: 0
Don't know about mpg123 but I found that using a lame script "mlame" coverts all my .wav to .mp3 automatically:

~/kencaz/./mlame -r -o "-v -V 0 -b 112" *.wav *.mp3

This will convert all file in my current foder from .wav to .mp3. I don't remember where I got the script but it's kinda hard to find so I'll include it here. You'll have to save it to a file then change permissions as usual...

#!/bin/bash
#!/usr/local/bin/bash
############################################################################
#
# Run the LAME encoder on multiple files, with option to delete .wav files
# after encoding. "mlame -h" will give instructions.
#
# Robert Hegemann <Robert.Hegemann@gmx.de>
#
############################################################################

mp3coder="lame"
options="-h -d -m j -b 128"
rmsrc=false

helptext="\
\nThis script runs the LAME mp3 encoder on multiple files: \n\n\
$0 [options] <file 1> ... <file n>\n\
\n\
options:\n\
-h this help text\n\
-r remove files after encoding\n\
-o \"<lame options>\" overrides script default options \"${options}\"\n\
\n\
example:\n\
$0 -r -o \"-v -V 0 -b 112\" a*.wav z*.aif\n\
\n\
"

# process command-line options
# this could be extended to fake the
# commandline interface of the mp3encoder

while getopts ":r" optn; do
case $optn in
o ) options=$OPTARG # replace default options
;;
r ) rmsrc=true
;;
\? ) printf "$helptext"
exit 1
;;
esac
done
shift $(($OPTIND - 1))

# process input-files

for filename in "$@"; do
case $filename in
*[*?]* ) # means shell couldnīt extend *.wav, etc.
echo "warning: no $filename file(s) found"
;;
*[.][wW][aA][vV] )
name=${filename%[.][wW][aA][vV]}
if $mp3coder $options "$filename" "${name}.mp3"
then
if [ $rmsrc = true ]; then
rm -f "$filename"
fi
fi
;;
*[.][aA][iI][fF] )
name=${filename%[.][aA][iI][fF]}
if $mp3coder $options "$filename" "${name}.mp3"
then
if [ $rmsrc = true ]; then
rm -f "$filename"
fi
fi
;;
* )
if $mp3coder $options "$filename" "${filename}.mp3"
then
if [ $rmsrc = true ]; then
rm -f "$filename"
fi
fi
;;
esac
done
kencaz is offline     Reply With Quote
Old 06-29-2005, 12:33 PM   #3
rmutt
LQ Newbie
 
Registered: Jun 2005
Posts: 2
Thanked: 0
Re: using mpg123 to convert .mp3 to .wav files

Quote:
Originally posted by cddesjar
Hi I am running mpg123 to convert my files from .mp3 to .wav
I am doing it this way
mpg123 -w <filename>.wav <filename>.mp3
This works fine for me. But I was wondering if someone knew if there was a way to convert ALL my mp3 files in a directory to wav files with ONE command. something like this...
mpg123 -w *.wav *.mp3
(which i know doesn't work)
My second question is whether or not anyone knows of a GUI that converts mp3 to wav with a drag and a couple clicks of a mouse.
Cheers,
Chris
I had this same problem so I wrote a quick and dirty perl script to do this for me. Dump your files to be converted into a temp directory and it will go through them one by one and run the mpg123 command. It renames them to 1, 2, 3, ...ect .WAV files.

Code:
#!/usr/bin/perl

 my $dir = "/change/this/to/your/directory";

 opendir DH, $dir or die "Can't open  $dir: $!";
 $count2=1;
 while  ($name = readdir DH) {
  next unless $name =~ /\.mp3$/;
  $wav="$count2.wav";
   print "$wav\n";
system "mpg123 -w $wav \"$name\"";
  $count2++;
}
rmutt is offline     Reply With Quote
Old 06-29-2005, 12:51 PM   #4
cddesjar
Member
 
Registered: Jan 2004
Location: Maine/Minnesota/Alberta
Distribution: Debian Sid
Posts: 125
Thanked: 0

Original Poster
#!/usr/bin/perl

my $dir = "/change/this/to/your/directory";

opendir DH, $dir or die "Can't open $dir: $!";
$count2=1;
while ($name = readdir DH) {
next unless $name =~ /\.mp3$/;
$wav="$count2.wav";
print "$wav\n";
system "mpg123 -w $wav \"$name\"";
$count2++;
}



So I just changed the line
my $dir = "/change/this/to/your/directory";
to my directory where i hold my mp3s but the script didn't work...nothing happened. Any ideas why?

Thanks,
Chris
cddesjar is offline     Reply With Quote
Old 06-29-2005, 01:12 PM   #5
homey
Senior Member
 
Registered: Oct 2003
Posts: 3,058
Thanked: 1
This little diddy from my notes should get you going.....
Code:
cd /home/music/directory
for i in *.mp3; do mpg321 -w "`basename "$i" .mp3`".wav "$i"; done
or using lame might look like this...
Code:
cd /home/music/directory
for i in *.mp3; do lame --decode "$i" "`basename "$i" .mp3`".wav; done

This part is in quotes to handle names with spaces in them "`basename "$i" .mp3`"
homey is offline     Reply With Quote
Old 06-29-2005, 03:51 PM   #6
rmutt
LQ Newbie
 
Registered: Jun 2005
Posts: 2
Thanked: 0
Quote:
Originally posted by cddesjar
#!/usr/bin/perl

my $dir = "/change/this/to/your/directory";

opendir DH, $dir or die "Can't open $dir: $!";
$count2=1;
while ($name = readdir DH) {
next unless $name =~ /\.mp3$/;
$wav="$count2.wav";
print "$wav\n";
system "mpg123 -w $wav \"$name\"";
$count2++;
}



So I just changed the line
my $dir = "/change/this/to/your/directory";
to my directory where i hold my mp3s but the script didn't work...nothing happened. Any ideas why?

Thanks,
Chris
Hard to say. Are they all named ".mp3" ?? if they are named something like blah.MP3 add an "i" to this line: "next unless $name =~/\.mp3$/" so it looks like this:
next unless $name =~/\.mp3$/i. This will ignore case.

Otherwise did it give you some kind of error? I just used the script a few minutes ago as is so I know it works.
rmutt is offline     Reply With Quote

Reply

Bookmarks


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
i want to convert .wav file into mp3 files in batch mode sparsh Linux - Software 6 11-20-2007 11:53 AM
Convert mp3 to wav trey85stang Linux - Software 5 08-23-2006 10:57 PM
mp3 to wav convert shibainucan Suse/Novell 1 10-22-2004 11:46 AM
mpg123 and mp3 to wav mikkove Linux - Newbie 1 12-26-2003 11:23 AM
mpg123 and mp3 to wav conversion knmwt15000 Linux - Newbie 7 03-24-2003 05:04 PM


All times are GMT -5. The time now is 09:47 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
RSS2  LQ Podcast
RSS2  LQ Radio
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: @linuxquestions
Open Source Consulting | Domain Registration