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