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;
