📄 pv2midifile.m
字号:
function pv2midiFile(pitchVec, pitchRate, midiFile)
% pv2midiFile: Pitch vector to midi file conversion
% Usage: pv2midiFile(pitchVec, pitchRate, midiFile)
% pitchVec: pitch vector
% pitchRate: number of pitch points per second (which is equal to fs/(frameSize-overlap))
% midiFile: output midi file
noteVec = pv2note(pitchVec); % Note segmentation. The format of noteVec is [pitch, duration, pitch, duration...]
if noteVec(1)==0
noteVec = noteVec(3:end); % Get rid of leading rest
end
if noteVec(end-1) == 0
noteVec = noteVec(1:end-2); % Get rid of trailing rest
end
for i=1:2:length(noteVec)
k=(i+1)/2; % Note index
pVector(k)=noteVec(i); % pitch
durVector(k)=noteVec(i+1)*pitchRate; % duration
if k==1
onVector(k)=0; % onset begin at 0
else
onVector(k)=onVector(k-1)+durVector(k-1);
end
end
%pVector=noteVec(1:2:end);
%durVector=noteVec(2:2:end);
%onVector=[0, cumsum(durVector)];
beatUnit = 2*mean(durVector); %
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -