Mercurial > hg > camir-aes2014
view toolboxes/MIRtoolbox1.3.2/MIRToolbox/@miraudio/mirsave.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line source
function mirsave(a,f,multichan) ext = 0; % Specified new extension if nargin < 2 f = '.mir'; elseif length(f)>3 && strcmpi(f(end-3:end),'.wav') ext = '.wav'; if length(f)==4 f = '.mir'; end elseif length(f)>2 && strcmpi(f(end-2:end),'.au') ext = '.au'; if length(f)==3 f = '.mir'; end end if nargin < 3 multichan = ''; end d = get(a,'Data'); nf = length(d); fs = get(a,'Sampling'); nb = get(a,'NBits'); nm = get(a,'Name'); ch = get(a,'Channels'); maxd = 0; for i = 1:nf for j = 1:length(d{i}) maxd = max(max(max(max(abs(d{i}{j}),[],1),[],2),[],3),maxd); end end for i = 1:nf nbi = nb{i}; di = d{i}; fsi = fs{i}; nmi = nm{i}; chi = ch{i}; out = []; for j = 1:length(di) di{j} = di{j}./repmat(maxd,size(di{j}))*.9999; out = [out;reshape(di{j},[],size(di{j},3),1)]; if length(di)>1 out = [out;rand(100,size(di{j},3))]*.9; end end %Let's remove the extension from the original files if length(nmi)>3 && strcmpi(nmi(end-3:end),'.wav') nmi(end-3:end) = []; elseif length(nmi)>2 && strcmpi(nmi(end-2:end),'.au') nmi(end-2:end) = []; end nchan = size(out,2); if isempty(multichan) || nchan < 2 if nf>1 || strcmp(f(1),'.') %Let's add the new suffix n = [nmi f]; else n = f; end if not(ischar(ext)) || strcmp(ext,'.wav') if length(n)<4 || not(strcmpi(n(end-3:end),'.wav')) n = [n '.wav']; end wavwrite(out,fsi,nbi,n) elseif strcmp(ext,'.au') if length(n)<3 || not(strcmpi(n(end-2:end),'.au')) n = [n '.au']; end auwrite(out,fsi,nbi,'linear',n) end disp([n,' saved.']); else for j = 1:nchan nb = num2str(chi(j)); if nf>1 || strcmp(f(1),'.') %Let's add the new suffix n = [nmi nb f]; else n = [f nb]; end if not(ischar(ext)) || strcmp(ext,'.wav') if length(n)<4 || not(strcmpi(n(end-3:end),'.wav')) n = [n '.wav']; end wavwrite(out(:,j),fsi,nbi,n) elseif strcmp(ext,'.au') if length(n)<3 || not(strcmpi(n(end-2:end),'.au')) n = [n '.au']; end auwrite(out(:,j),fsi,nbi,'linear',n) end disp([n,' saved.']); end end end