Mercurial > hg > camir-aes2014
diff toolboxes/MIRtoolbox1.3.2/MIRToolbox/@mirpitch/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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/MIRtoolbox1.3.2/MIRToolbox/@mirpitch/mirsave.m Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,90 @@ +function mirsave(a) + +d = get(a,'Data'); +if isa(a,'mirpitch') + amp = get(a,'Amplitude'); +end +n = get(a,'Name'); +t = get(a,'Title'); +c = get(a,'Channels'); +fp = get(a,'FramePos'); +out = cell(1,length(d)); + +for k = 1:length(d) + dk = d{k}; + if not(iscell(dk)) + dk = {dk}; + end + out = []; + for l = 1:size(dk{1},3) + for i = 1:length(dk) + di = dk{i}; + if isa(a,'mirpitch') + ampi = amp{k}{i}; + end + synth = zeros(1,ceil((fp{k}{i}(end)-fp{k}{i}(1))*44100)+1); + for j = 1:size(di,2) + if iscell(di) + dj = di{j}; + else + dj = di(:,j); + end + dj(isnan(dj)) = 0; + ampj = zeros(size(dj)); + if iscell(ampi) + ampj(1:size(ampi{j})) = ampi{j}; + else + ampj(1:size(ampi(:,j))) = ampi(:,j); + end + if not(isempty(dj)) + k1 = floor((fp{k}{i}(1,j)-fp{k}{i}(1))*44100)+1; + k2 = floor((fp{k}{i}(2,j)-fp{k}{i}(1))*44100)+1; + if isa(a,'mirpitch') + ampj = repmat(ampj,1,k2-k1+1); + else + ampj = ones(size(dj),k2-k1+1); + end + synth(k1:k2) = synth(k1:k2) ... + + sum(ampj.*sin(2*pi*dj*(0:k2-k1)/44100),1) ... + .*hann(k2-k1+1)'; + end + end + out = [out synth]; + if size(dk{1},3)>1 + out = [out rand(1,10)]; + end + end + end + fout = miraudio(out,44100); + mirsave(fout,[n{k},'.',t]); +end + + +function oldmirsave % not used anymore +d = get(a,'Data'); +nf = length(d); +fp = get(a,'FramePos'); +nm = get(a,'Name'); +t = get(a,'Title'); +for i = 1:nf + nmi = nm{i}; + di = d{i}{1}; + fpi = fp{i}{1}; + + %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 + n = [nmi,'.',lower(t),'.txt']; + + fid = fopen(n, 'wt'); + fprintf(fid,'Frame_start Frame_end Data \n'); + + for j = 1:length(di) + fprintf(fid,'%g %g %g \n',fpi(1,j),fpi(2,j),di(j)); + end + fclose(fid); + disp([n,' saved.']); +end \ No newline at end of file