📄 pv2midifile.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head> <title>Description of pv2midiFile</title> <meta name="keywords" content="pv2midiFile"> <meta name="description" content="pv2midiFile: Pitch vector to midi file conversion"> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <meta name="generator" content="m2html © 2003 Guillaume Flandin"> <meta name="robots" content="index, follow"> <link type="text/css" rel="stylesheet" href="../m2html.css"></head><body><a name="_top"></a><div><a href="../index.html">Home</a> > <a href="index.html">melodyRecognition</a> > pv2midiFile.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td><td align="right"><a href="index.html">Index for melodyRecognition <img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>pv2midiFile</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>pv2midiFile: Pitch vector to midi file conversion</strong></div><h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>function pv2midiFile(pitchVec, pitchRate, midiFile) </strong></div><h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre class="comment"> 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</pre></div><!-- crossreference --><h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>This function calls:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="pv2note.html" class="code" title="function note = pv2note(pv, timeUnit, pitchTh, minNoteDuration, plotOpt)">pv2note</a> pv2note: Note segmentation on a give pitch vector</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"></ul><!-- crossreference --><h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function pv2midiFile(pitchVec, pitchRate, midiFile)</a>0002 <span class="comment">% pv2midiFile: Pitch vector to midi file conversion</span>0003 <span class="comment">% Usage: pv2midiFile(pitchVec, pitchRate, midiFile)</span>0004 <span class="comment">% pitchVec: pitch vector</span>0005 <span class="comment">% pitchRate: number of pitch points per second (which is equal to fs/(frameSize-overlap))</span>0006 <span class="comment">% midiFile: output midi file</span>0007 0008 noteVec = <a href="pv2note.html" class="code" title="function note = pv2note(pv, timeUnit, pitchTh, minNoteDuration, plotOpt)">pv2note</a>(pitchVec); <span class="comment">% Note segmentation. The format of noteVec is [pitch, duration, pitch, duration...]</span>0009 <span class="keyword">if</span> noteVec(1)==00010 noteVec = noteVec(3:end); <span class="comment">% Get rid of leading rest</span>0011 <span class="keyword">end</span>0012 <span class="keyword">if</span> noteVec(end-1) == 00013 noteVec = noteVec(1:end-2); <span class="comment">% Get rid of trailing rest</span>0014 <span class="keyword">end</span>0015 0016 <span class="keyword">for</span> i=1:2:length(noteVec)0017 k=(i+1)/2; <span class="comment">% Note index</span>0018 pVector(k)=noteVec(i); <span class="comment">% pitch</span>0019 durVector(k)=noteVec(i+1)*pitchRate; <span class="comment">% duration</span>0020 <span class="keyword">if</span> k==10021 onVector(k)=0; <span class="comment">% onset begin at 0</span>0022 <span class="keyword">else</span>0023 onVector(k)=onVector(k-1)+durVector(k-1);0024 <span class="keyword">end</span>0025 <span class="keyword">end</span>0026 0027 <span class="comment">%pVector=noteVec(1:2:end);</span>0028 <span class="comment">%durVector=noteVec(2:2:end);</span>0029 <span class="comment">%onVector=[0, cumsum(durVector)];</span>0030 0031 beatUnit = 2*mean(durVector); <span class="comment">% ????????”?????????
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -