4.49057

4.5 | 53 ratings Rate this file 306 Downloads (last 30 days) File Size: 465 KB File ID: #6152

MP3WRITE and MP3READ

by

 

31 Oct 2004 (Updated )

mp3 audio encoding/decoding

Editor's Notes:

This file was a File Exchange Pick of the Week

| Watch this File

File Information
Description

Includes 2 functions to write and read MP3 files. It works like the commands WAVWRITE and WAVREAD.

1.- Just unpack in the toolbox folder under the MATLAB directory.
2.- Set the MATLAB search path to include that folder.

This version was made in MATLAB for WINDOWS only.

Acknowledgements

This file inspired Mp3 Player (Gui) and Mp3read And Mp3write.

MATLAB release MATLAB 7 (R14)
Other requirements WINDOWS
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (70)
16 Dec 2014 Muhammad Naveed

Error using mp3write (line 74)
'which' is not recognized as an internal or external command,
operable program or batch file.
kindly help me about this error

11 Sep 2014 Shanghai

I've run it successfully, thank u.

But I wonder what's the difference between mp3read (better accuracy?)and wavread?

23 Apr 2013 Zijie Yuan  
02 Sep 2012 Adil khan  
10 Jul 2012 Spencer

For those who are confused about the Line 67/ line 50 errors, I think I've found the answer. Presumably you all are not using Windows - which becomes an issue when the mp3read function attempts to access mpg123.exe (as well as lame.exe and others). Exe files are not executable by macs or linux... hence the problem. The reason wavread can't open the file is because there's nothing in it. It's still the temporary wav file that tempfile was initialized with.

Fortunately, there are mpg123 and lame files that have been made for mac and linux. You can find them here: http://www.mathworks.com/matlabcentral/fileexchange/13852-mp3read-and-mp3write/all_files. Put the .mac or linux files in your directory and you should be fine.

Then just substitute this code in for line 42 (if you're a mac user):
[stat,raw_info] = dos(['"' location,'/mpg123.mac"', ' -w ', tmpfile, ' ', '"',FILE,'"']);

Hope this works for ya'll.

18 Jun 2012 Aravind Vasudevan

Hi,

I am trying to read an mp3 file using the mp3read function. And I am always getting this error :

Error using wavread (line 67)
Invalid Wave File. Reason: Cannot open file.

Error in mp3read (line 50)
[Y,FS,NBITS] = wavread(tmpfile); % Load the
data and delete temporary file

Anybody knows any solution for this? Any help would be much appreciated.

Thanks!

15 May 2012 subbmdee

out of memory problem. any suggestions?

14 Mar 2012 Will  
22 Nov 2011 Jacob

To anyone getting the error "??? Error using ==> wavread at 67
Cannot open file.", I was getting the same, but once I moved all of the mpg123, mp3info, and lame files to the same folder as the program that was running them, it worked perfectly.

17 Oct 2011 Mr Smart  
10 Oct 2011 Oliver

change line 42 in mp3read to

[stat,raw_info] = dos(['"' location,'\mpg123.exe"', ' -w ', tmpfile, ' ', '"',FILE,'"']);

02 Aug 2011 Aakash  
10 Mar 2011 Paulo Emmanuel

same error here

??? Error using ==> wavread at 166
Out of memory. Type HELP MEMORY for your options.

Error in ==> mp3read at 48
[Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete temporary file

Error in ==> AudioComp at 4
[y, Fs] = mp3read(gfile);

06 Dec 2010 Thanh

This code is very good,but i can't run it. Everytime i try to run, Matlab always notifies:
??? Error using ==> wavread at 67
Cannot open file.

??? Error in ==> mp3read at 49
[Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete
temporary file
So please show me what's the problem?

27 Sep 2010 Arjen vd Kamp

If you have the error in line 48 of the mp3read then there probably is a space in the directory were you put the mp3read.m. For instance between Program and Files. Just put it in a folder without spaces and try again...

27 Sep 2010 Arjen vd Kamp  
29 Aug 2010 chen xy

I got the same error!
anyone can help me?
[x,fs]=mp3read('windows.mp3');
??? Error using ==> wavread at 67
Cannot open file.

Error in ==> mp3read at 48
[Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete
temporary file

19 May 2010 Jun wan

good

01 Apr 2010 Mohamad Zuhairi Ismail

why i got this message?
i hope u can help me. tq in advance. ;]

??? Error using ==> wavread at 67
Cannot open file.

Error in ==> mp3read at 48
[Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete temporary file

07 Mar 2010 Deyan Dobromirov

Its awesome THANK U!

07 Mar 2010 Deyan Dobromirov

It worked 4 me its awesome guys :D Congrats to all!!

07 Jul 2009 John Adcox

Please fix the pathname issue that John Hughes mentioned earlier. His fix works so you will just need to upload a new file

18 Feb 2009 Eric

Can the MP3READ function be used to detect the frequency, tempo and rhythm of an mp3 file? Where are these values stored for retreval and comparison in the future?

29 Feb 2008 sura mohamed

i want another idea on voice project
i want to make a reaserch in sound
plssssssssssss

30 Nov 2007 naimat khan

i am the student of electrical engineering at uet peshawar

28 Nov 2007 palani natarajan

information

07 Jul 2007 hung duc

I'm working in watermarking, but I don't understand clearly. So, I need some examples or Matlab code to simulate. Please help me

21 Jun 2007 Luigi Rosa

Very good. In mp3read.m the output variable "out" is unnecessary, probably introduced for debugging.

26 Jan 2007 Michael McGurie

A MEX version of this program would give it a perfect score. Very useful for playing around with sound files.

15 Dec 2006 Punit master

remove your site & code from google
your code is pathetic

31 Oct 2006 John Hughes

Fix for lines 54-70 of mp3write.m:

This allows one to use pathnames with spaces in them.

Note that the who thing fails if you give an ABSOLUTE pathname (like "C:/Matlab-stuff/mySong.mp3"), because the read/write routines expect only relative pathnames. I haven't tried to fix this part.

tmpfile = ['"', strcat(lame,'\temp.wav'), '"'];
MP3FILE = ['"', strcat(pwd,'\',MP3FILE), '"'];
ENCODING = num2str(ENCODING);
switch ENCODING
case {'1'}
cmd = ['"', lame,'\lame', '"', ' --quiet', ' ', tmpfile, ' ',MP3FILE];
case {'2'}
cmd = ['"',lame,'\lame', '"', ' --quiet', ' -b 128 ', tmpfile, ' ',MP3FILE];
case {'3'}
cmd = ['"',lame,'\lame', '"', ' --quiet', ' --abr 112 ', tmpfile, ' ',MP3FILE];
case {'4'}
cmd = ['"',lame,'\lame', '"', ' --quiet', ' -f ', tmpfile, ' ',MP3FILE];
case {'5'}
cmd = ['"',lame,'\lame', '"',' --quiet', ' -h ', ' -V ', tmpfile, ' ',MP3FILE];
otherwise
error('Encoding parameters not suported')
end

30 Oct 2006 John Hughes

Suggested code mod for the reader:
Line 42:
[stat,raw_info] = dos(['"',location,'\mpg123','"', ' -w ', tmpfile, ' ', '"',FILE,'"'])

By putting double-quotes around the pathname to mpg123, I've fixed the "can't handle blanks in the path" problem. Presumably a similar fix is needed for mp3write; I'll send it when/if I get there...

10 Oct 2006 Mara M

It seems the search path needs to be w/o blanks for it to work. Also there was one row in mp3write changing the path to a name which didn't work out (row 55: MP3FILE = strcat(pwd,'\',MP3FILE)).
Otherwise, great job.

06 Oct 2006 per g

2 columns = stero sound? Haven't tried the toolbox, just guessing!+

18 Sep 2006 famous martin

very very good

14 Jul 2006 Jose Uy

Why does it output 2 columns? Is one column the time index and the other is the amplitude?

26 Apr 2006 Andy Clark

Great bit of code! Now I can analyse mp3's in matlab.

16 Apr 2006 huang baozhu

when i use mp3write ,it say mp3buffer is not too big enough

13 Mar 2006 mauricio peña  
17 Feb 2006 shu tong  
07 Feb 2006 Juan Carlos Ruchesi

very good

09 Jan 2006 guan liang

very good

07 Dec 2005 René Gonález

It's a very good rutine

27 Nov 2005 Yohn Eduin Parra

Good aplication. I need more time to evaluation and qualify to.

26 Nov 2005 laeeqsdq neelofer  
24 Nov 2005 sathish Reddy  
24 Nov 2005 Somendra Misra  
23 Nov 2005 Joao Valiati  
23 Nov 2005 albert crespo  
22 Nov 2005 Rubén Sánchez  
19 Nov 2005 Jurijs Jonass

Thanks Alfredo for nice job!

17 Nov 2005 Nanno Mulder

I cannot open the .zip file, so low marks for the packaging. No comments on the contents

05 Nov 2005 tran huy dong  
14 Oct 2005 Victor Colme

nO Entendì una mierda!!!

13 Oct 2005 jaydeep dhole

very helpful

28 Sep 2005 Matevz Leskovsek

Nice work. Very well commented!

23 Sep 2005 vinay dev

nice

16 Sep 2005 saifudeen ar  
17 Aug 2005 Johnson Yeh  
15 Jul 2005 Junjie Liu  
18 Jun 2005 Ely Tejeda  
14 Jun 2005 jeeva rajan

3/2 ramachandra st
off north usman road
t nagar
chennai-17

14 Jun 2005 jeeva rajan

fine
for modified code contact me
3/2 ramachandra st
off north usman road
t.nagar chennai-17

21 May 2005 marcin marcin  
19 May 2005 Murphy O'Brien

Does exactly what it says on the tin! A very useful complement to wavread and wavwrite.

29 Apr 2005 Sandeep Sanga

nice!

15 Mar 2005 Dave Robinson

Works for me - ACE

06 Feb 2005 Mahmoud Bagheri

for me , its fantastic.

18 Jan 2005 irfan turk  
04 Nov 2004 joakim brännström  

Contact us