📄 note2pv.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 note2pv</title> <meta name="keywords" content="note2pv"> <meta name="description" content="note2pv: note to pv 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> > note2pv.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>note2pv</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>note2pv: note to pv 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 [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt) </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">note2pv: note to pv conversion
Usage: [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt)
note: note vector of [pitch1, duration1, pitch2, duration2, ...], where the unit of duration is second
pvTimeStep: duration of each element in PV
pvTotalDuration: total duration of the returned PV (inf for the whole note vector)
pv: pitch vector
ti?Gtime vector corresponding to PV
Type note2pv for a self demo.</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="note2pv.html" class="code" title="function [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt)">note2pv</a> note2pv: note to pv conversion</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="note2pv.html" class="code" title="function [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt)">note2pv</a> note2pv: note to pv conversion</li><li><a href="ttt.html" class="code" title="">ttt</a> </li></ul><!-- crossreference --><h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><ul style="list-style-image:url(../matlabicon.gif)"><li><a href="#_sub1" class="code">function selfdemo</a></li></ul><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 [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt)</a>0002 <span class="comment">%note2pv: note to pv conversion</span>0003 <span class="comment">% Usage: [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt)</span>0004 <span class="comment">% note: note vector of [pitch1, duration1, pitch2, duration2, ...], where the unit of duration is second</span>0005 <span class="comment">% pvTimeStep: duration of each element in PV</span>0006 <span class="comment">% pvTotalDuration: total duration of the returned PV (inf for the whole note vector)</span>0007 <span class="comment">% pv: pitch vector</span>0008 <span class="comment">% ti?Gtime vector corresponding to PV</span>0009 <span class="comment">%</span>0010 <span class="comment">% Type note2pv for a self demo.</span>0011 0012 <span class="comment">% Roger Jang, 20040612</span>0013 0014 <span class="keyword">if</span> nargin<1, <a href="#_sub1" class="code" title="subfunction selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0015 <span class="keyword">if</span> nargin<2, pvTimeStep=1/16; <span class="keyword">end</span>0016 <span class="keyword">if</span> nargin<3, pvTotalDuration=8; <span class="keyword">end</span>0017 <span class="keyword">if</span> nargin<4, plotOpt=0; <span class="keyword">end</span>0018 0019 note=double(note);0020 smtn=note(1:2:end); <span class="comment">% Semitone</span>0021 time=note(2:2:end); <span class="comment">% Time duration in second</span>0022 0023 noteIndex=1;0024 cumTime=time(noteIndex);0025 pv=[];0026 t=0;0027 <span class="keyword">while</span> t<pvTotalDuration0028 t=t+pvTimeStep;0029 <span class="keyword">if</span> t>cumTime0030 noteIndex=noteIndex+1;0031 <span class="keyword">if</span> noteIndex>length(smtn)0032 <span class="keyword">break</span>;0033 <span class="keyword">end</span>0034 cumTime=cumTime+time(noteIndex);0035 <span class="keyword">end</span>0036 pv=[pv, smtn(noteIndex)];0037 <span class="keyword">end</span>0038 ti=pvTimeStep*(1:length(pv));0039 0040 <span class="keyword">if</span> plotOpt0041 temp=pv;0042 temp(temp==0)=nan;0043 plot(ti, temp, <span class="string">'g.'</span>);0044 hold on0045 notePlot(note, 1);0046 hold off0047 <span class="keyword">end</span>0048 0049 <span class="comment">% ====== Self demo</span>0050 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0051 pitch=[0 55 60 64 62 60 55 57 0 55 60 65 64 62 60 67 67 69 72 71 67 71 69 65 69 67 64 65 67 65 60 64 62 55 62 60];0052 duration=0.5*[1 0.75 0.25 0.5 0.5 0.5 0.5 4 1 0.5 0.5 0.5 0.5 0.5 0.5 3 0.5 0.5 0.5 1 0.5 0.5 0.5 0.5 0.5 3 0.5 0.5 0.5 1 0.5 0.5 0.5 0.5 0.5 4];0053 note=[pitch; duration]; note=note(:)';0054 pvTimeStep=1/16;0055 pvTotalDuration=9;0056 pv = <a href="note2pv.html" class="code" title="function [pv, ti] = note2pv(note, pvTimeStep, pvTotalDuration, plotOpt)">note2pv</a>(note, pvTimeStep, pvTotalDuration, 1);0057 title([<span class="string">'Green dots is the output '</span>, mfilename]);0058 fprintf(<span class="string">'Press any key to play note...\n'</span>); pause0059 notePlay(note, 1);0060 fprintf(<span class="string">'Press any key to play pv...\n'</span>); pause0061 pvPlay(pv, pvTimeStep);</pre></div><hr><address>Generated on Thu 30-Oct-2008 12:52:18 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> © 2003</address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -