wolffd@0: function mirsave(a,f,multichan) wolffd@0: wolffd@0: ext = 0; % Specified new extension wolffd@0: if nargin < 2 wolffd@0: f = '.mir'; wolffd@0: elseif length(f)>3 && strcmpi(f(end-3:end),'.wav') wolffd@0: ext = '.wav'; wolffd@0: if length(f)==4 wolffd@0: f = '.mir'; wolffd@0: end wolffd@0: elseif length(f)>2 && strcmpi(f(end-2:end),'.au') wolffd@0: ext = '.au'; wolffd@0: if length(f)==3 wolffd@0: f = '.mir'; wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: if nargin < 3 wolffd@0: multichan = ''; wolffd@0: end wolffd@0: wolffd@0: d = get(a,'Data'); wolffd@0: nf = length(d); wolffd@0: fs = get(a,'Sampling'); wolffd@0: nb = get(a,'NBits'); wolffd@0: nm = get(a,'Name'); wolffd@0: ch = get(a,'Channels'); wolffd@0: maxd = 0; wolffd@0: for i = 1:nf wolffd@0: for j = 1:length(d{i}) wolffd@0: maxd = max(max(max(max(abs(d{i}{j}),[],1),[],2),[],3),maxd); wolffd@0: end wolffd@0: end wolffd@0: for i = 1:nf wolffd@0: nbi = nb{i}; wolffd@0: di = d{i}; wolffd@0: fsi = fs{i}; wolffd@0: nmi = nm{i}; wolffd@0: chi = ch{i}; wolffd@0: out = []; wolffd@0: for j = 1:length(di) wolffd@0: di{j} = di{j}./repmat(maxd,size(di{j}))*.9999; wolffd@0: out = [out;reshape(di{j},[],size(di{j},3),1)]; wolffd@0: if length(di)>1 wolffd@0: out = [out;rand(100,size(di{j},3))]*.9; wolffd@0: end wolffd@0: end wolffd@0: wolffd@0: %Let's remove the extension from the original files wolffd@0: if length(nmi)>3 && strcmpi(nmi(end-3:end),'.wav') wolffd@0: nmi(end-3:end) = []; wolffd@0: elseif length(nmi)>2 && strcmpi(nmi(end-2:end),'.au') wolffd@0: nmi(end-2:end) = []; wolffd@0: end wolffd@0: wolffd@0: nchan = size(out,2); wolffd@0: if isempty(multichan) || nchan < 2 wolffd@0: if nf>1 || strcmp(f(1),'.') wolffd@0: %Let's add the new suffix wolffd@0: n = [nmi f]; wolffd@0: else wolffd@0: n = f; wolffd@0: end wolffd@0: if not(ischar(ext)) || strcmp(ext,'.wav') wolffd@0: if length(n)<4 || not(strcmpi(n(end-3:end),'.wav')) wolffd@0: n = [n '.wav']; wolffd@0: end wolffd@0: wavwrite(out,fsi,nbi,n) wolffd@0: elseif strcmp(ext,'.au') wolffd@0: if length(n)<3 || not(strcmpi(n(end-2:end),'.au')) wolffd@0: n = [n '.au']; wolffd@0: end wolffd@0: auwrite(out,fsi,nbi,'linear',n) wolffd@0: end wolffd@0: disp([n,' saved.']); wolffd@0: else wolffd@0: for j = 1:nchan wolffd@0: nb = num2str(chi(j)); wolffd@0: if nf>1 || strcmp(f(1),'.') wolffd@0: %Let's add the new suffix wolffd@0: n = [nmi nb f]; wolffd@0: else wolffd@0: n = [f nb]; wolffd@0: end wolffd@0: if not(ischar(ext)) || strcmp(ext,'.wav') wolffd@0: if length(n)<4 || not(strcmpi(n(end-3:end),'.wav')) wolffd@0: n = [n '.wav']; wolffd@0: end wolffd@0: wavwrite(out(:,j),fsi,nbi,n) wolffd@0: elseif strcmp(ext,'.au') wolffd@0: if length(n)<3 || not(strcmpi(n(end-2:end),'.au')) wolffd@0: n = [n '.au']; wolffd@0: end wolffd@0: auwrite(out(:,j),fsi,nbi,'linear',n) wolffd@0: end wolffd@0: disp([n,' saved.']); wolffd@0: end wolffd@0: end wolffd@0: end