From: BC Tan on 10 Sep 2009 21:49 Hi All, I found the following code to read a MP3 song call "candy.mp3" however it kept prompting me of the following ??? Input argument "FILE" is undefined. Can anyone assist? Tks. The source code is as follow. function %MP3READ Read MP3 (".mp3") sound file. % Y = MP3READ(FILE) reads a MP3 file specified by the string FILE, % returning the sampled data in Y. Amplitude values are in the range [-1,+1]. % % [Y,FS,NBITS,encoding_info,ID3v1_tag_info] = MP3READ(FILE) returns the sample rate (FS) in Hertz % and the number of bits per sample (NBITS) used to encode the % data in the file. % % 'encoding_info' is a string containing information about the mp3 % encoding used % % 'ID3v1_tag_info' is a string containing the tag information of the file % (only ID3v1 tag supported in this version) % % % Supports two channel or mono encoded data, with up to 16 bits per sample. % % See also MP3WRITE, WAVWRITE, AUREAD, AUWRITE. a = length(FILE); if a >= 4 exten = FILE(a-3:a); if exten ~= '.mp3' FILE = strcat(FILE,'.mp3'); end end if a <= 3 FILE = strcat(FILE,'.mp3'); end if exist(FILE) ~= 2 error('File not Found') end %%%%%% Location of the ".exe" Files s = which('mp3read.m'); ww = findstr('mp3read.m',s); location = s(1:ww-2); %%%%Temporary file%%%%%% tmpfile = ['temp.wav']; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% Data Decoding using "mpg123.exe"%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [stat,raw_info] = dos([location,'\mpg123', ' -w ', tmpfile, ' ', '"',FILE,'"']); data_init = findstr(raw_info,'MPEG'); blocks = findstr(raw_info,'[0:'); if raw_info(blocks+3) == '0' error('Error while decoding file. File may be corrupted') end [Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete temporary file delete(tmpfile); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tag_info_start = strfind(raw_info,'Title'); tag_info_end = (strfind(raw_info,'Playing MPEG'))-1; tag_info = raw_info(tag_info_start:tag_info_end); encoding_info = raw_info(data_init(3):data_init(3)+53);
From: Nasser Abbasi on 11 Sep 2009 02:22 How are you calling this function? "BC Tan" <rainzz(a)live.com> wrote in message news:h8caag$qfm$1(a)fred.mathworks.com... > Hi All, > > I found the following code to read a MP3 song call "candy.mp3" however it > kept prompting me of the following > > ??? Input argument "FILE" is undefined. > > Can anyone assist? > Tks. > > The source code is as follow. > > function > %MP3READ Read MP3 (".mp3") sound file. > % Y = MP3READ(FILE) reads a MP3 file specified by the string FILE, > % returning the sampled data in Y. Amplitude values are in the range > [-1,+1]. > % > % [Y,FS,NBITS,encoding_info,ID3v1_tag_info] = MP3READ(FILE) returns the > sample rate (FS) in Hertz > % and the number of bits per sample (NBITS) used to encode the > % data in the file. > % > % 'encoding_info' is a string containing information about the mp3 > % encoding used > % > % 'ID3v1_tag_info' is a string containing the tag information of the > file > % (only ID3v1 tag supported in this version) > % > % > % Supports two channel or mono encoded data, with up to 16 bits per > sample. > % > % See also MP3WRITE, WAVWRITE, AUREAD, AUWRITE. > a = length(FILE); > if a >= 4 > exten = FILE(a-3:a); > if exten ~= '.mp3' > FILE = strcat(FILE,'.mp3'); > end > end > if a <= 3 > FILE = strcat(FILE,'.mp3'); > end > if exist(FILE) ~= 2 > error('File not Found') > end > %%%%%% Location of the ".exe" Files > s = which('mp3read.m'); > ww = findstr('mp3read.m',s); > location = s(1:ww-2); > %%%%Temporary file%%%%%% > tmpfile = ['temp.wav']; > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% > %%%%%%%%%%%%%% Data Decoding using "mpg123.exe"%%%%%%%%%%%%%%%%%% > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% > [stat,raw_info] = dos([location,'\mpg123', ' -w ', tmpfile, ' ', > '"',FILE,'"']); > data_init = findstr(raw_info,'MPEG'); > blocks = findstr(raw_info,'[0:'); > if raw_info(blocks+3) == '0' > error('Error while decoding file. File may be corrupted') > end > [Y,FS,NBITS] = wavread(tmpfile); % Load the data and delete temporary > file > delete(tmpfile); > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% > tag_info_start = strfind(raw_info,'Title'); > tag_info_end = (strfind(raw_info,'Playing MPEG'))-1; > tag_info = raw_info(tag_info_start:tag_info_end); > encoding_info = raw_info(data_init(3):data_init(3)+53);
From: BC Tan on 11 Sep 2009 03:58 Hi, I save the file mp3read.m in the path directory and I type mp3read in the command window.
From: Nasser Abbasi on 11 Sep 2009 09:46 "BC Tan" <rainzz(a)live.com> wrote in message news:h8cvua$2a5$1(a)fred.mathworks.com... > Hi, I save the file mp3read.m in the path directory and I type mp3read in > the command window. Well, that is your problem then. The function itself, should be defined to accept an argument, which is the file name. From the listing you showed: "function %MP3READ Read MP3 (".mp3") sound file. % Y = MP3READ(FILE) reads a MP3 file specified by the string FILE, " There should be a line in that file which reads "function y=mp3read(file" which is not commented out. For some reason, the listing you should does not have this line, may be you cut it off by mistake. anyway, you need to call the function as the_mp3_file = mp3read('my_nice_music_file.mp') make sure the .m file is in the path. good luck --Nasser
|
Pages: 1 Prev: Camera Emulator- Firewire port Next: Need help in reading mp3 files |