% method of class @signal
% savewave(sig,name[,ramp])
%   INPUT VALUES:
%  		name : name of the resulting sound file
% 		ramp: if given, then the signal is ramped with a linear ramp with
% 		that duration
%   RETURN VALUE:
%
% 
% (c) 2003-2008, University of Cambridge, Medical Research Council 
% Maintained by Tom Walters (tcw24@cam.ac.uk), written by Stefan Bleeck (stefan@bleeck.de)
% http://www.pdn.cam.ac.uk/cnbh/aim2006
% $Date: 2008-06-10 18:00:16 +0100 (Tue, 10 Jun 2008) $
% $Revision: 585 $

function savewave(sig,name,ramp)
% does some things, to make a nice sound out of it

if nargin < 3
    ramp=0.0;	% default ramp is off
end
if nargin < 2
    name='just saved';
end



sig=rampamplitude(sig,ramp);
sig=scaletomaxvalue(sig,0.999);
if isempty(strfind(name,'.wav'))
    name=sprintf('%s.wav',name);
end

fid=fopen(name, 'w');
if fid==-1
	disp(sprintf('can''t write file ''%s'', is file open in CoolEdit? If so please close!',name));
	error('file open in CoolEdit... Cant write');
else
    % TCW AIM 2006
    fclose(fid); % Otherwise MATLAB leaves the file open for writing for ever!
    
	writetowavefile(sig,name);
end
