home *** CD-ROM | disk | FTP | other *** search
- function [y,Fs,Format]=loadwave(wavefile)
- %LOADWAVE Load Microsoft Windows 3.1 .WAV format sound files.
- % [y]=LOADWAVE(wavefile) loads a .WAV format file specified by "wavefile",
- % returning the sampled data in variable "y". The .WAV extension
- % in the filename is optional.
- %
- % [y,Fs]=LOADWAVE(wavefile) loads a .WAV format file specified by
- % "wavefile", returning the sampled data in variable "y" and the
- % sample rate in variable "Fs".
- %
- % [y,Fs,Format]=LOADWAVE(wavefile) loads a .WAV format file specified by
- % "wavefile",returning the sampled data in variable "y", the sample
- % rate in variable "Fs", and the .WAV file format information in
- % variable "Format". The format information is returned as a 6 element
- % vector with the following order:
- %
- % Format(1) Data format (always PCM)
- % Format(2) Number of channels
- % Format(3) Sample Rate (Fs)
- % Format(4) Average bytes per second (sampled)
- % Format(5) Block alignment of data
- % Format(6) Bits per sample
- %
- % Note: LOADWAVE currently supports only 8-bit single channel data.
- %
- % See also, SAVEWAVE .
-
- % Copyright (c) 1984-93 by The MathWorks, Inc.
-
- if nargin~=1
- error('LOADWAVE takes one argument, which is the name of the .WAV file');
- end
-
- if findstr(wavefile,'.')==[]
- wavefile=[wavefile,'.wav'];
- end
-
- fid=fopen(wavefile,'rb');
- if fid ~= -1
- % read riff chunk
- header=fread(fid,4,'uchar');
- header=fread(fid,1,'ulong');
- header=fread(fid,4,'uchar');
-
- % read format sub-chunk
- header=fread(fid,4,'uchar');
- header=fread(fid,1,'ulong');
-
- Format(1)=fread(fid,1,'ushort'); % PCM format
- Format(2)=fread(fid,1,'ushort'); % 1 channel
- Fs=fread(fid,1,'ulong'); % samples per second
- Format(3)=Fs;
- Format(4)=fread(fid,1,'ulong'); % average bytes per second
- Format(5)=fread(fid,1,'ushort'); % block alignment
- Format(6)=fread(fid,1,'ushort'); % bits per sample
-
-
- % read data sub-chunck
- header=fread(fid,4,'uchar');
- nsamples=fread(fid,1,'ulong');
- y=fread(fid,nsamples,'uchar');
- fclose(fid);
- end
-
- if fid == -1
- error('Can''t open .WAV file for input!');
- end;
-