Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Got the serialized xml to always be a consist result. The VoiceSectio…

…nHashMap puts the voice sections into a list before serialization. In addition, some fields that were being cached by being stored in the serialized xml are no longer being included, in order to get a consistent result.
  • Loading branch information...
commit 31ef5183482fa11cad1c6e1b80345af6d7f4b3ea 1 parent 5a163e0
@myronmarston authored
Showing with 1,969 additions and 1,987 deletions.
  1. +63 −63 FractalComposer/build/cobertura-report/com.myronmarston.music.AudioFileCreator.html
  2. +28 −28 FractalComposer/build/cobertura-report/com.myronmarston.music.Dynamic.html
  3. +3 −3 FractalComposer/build/cobertura-report/com.myronmarston.music.GermIsEmptyException.html
  4. +3 −3 FractalComposer/build/cobertura-report/com.myronmarston.music.IncorrectNoteStringException.html
  5. +33 −33 FractalComposer/build/cobertura-report/com.myronmarston.music.Instrument.html
  6. +53 −53 FractalComposer/build/cobertura-report/com.myronmarston.music.MidiNote.html
  7. +221 −221 FractalComposer/build/cobertura-report/com.myronmarston.music.Note.html
  8. +175 −176 FractalComposer/build/cobertura-report/com.myronmarston.music.NoteList.html
  9. +85 −85 FractalComposer/build/cobertura-report/com.myronmarston.music.NoteName.html
  10. +16 −16 FractalComposer/build/cobertura-report/com.myronmarston.music.NoteStringInvalidPartException.html
  11. +4 −4 FractalComposer/build/cobertura-report/com.myronmarston.music.NoteStringParseException.html
  12. +137 −137 FractalComposer/build/cobertura-report/com.myronmarston.music.OutputManager.html
  13. +199 −214 FractalComposer/build/cobertura-report/com.myronmarston.music.SheetMusicCreator.html
  14. +33 −33 FractalComposer/build/cobertura-report/com.myronmarston.music.Tempo.html
  15. +9 −9 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.AbstractNotationElement.html
  16. +34 −34 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.Clef.html
  17. +4 −4 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.GuidoRunException.html
  18. +4 −4 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.LilypondRunException.html
  19. +37 −37 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.NotationDynamic.html
  20. +1 −1  FractalComposer/build/cobertura-report/com.myronmarston.music.notation.NotationElement.html
  21. +105 −105 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.NotationElementList.html
  22. +70 −70 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.NotationNote.html
  23. +101 −101 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.Part.html
  24. +44 −44 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.PartSection.html
  25. +65 −65 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.Piece.html
  26. +31 −31 FractalComposer/build/cobertura-report/com.myronmarston.music.notation.Tuplet.html
  27. +24 −24 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.ChromaticScale.html
  28. +7 −7 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.HarmonicMinorScale.html
  29. +3 −3 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.InvalidKeySignatureException.html
  30. +193 −195 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.KeySignature.html
  31. +9 −9 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.MajorPentatonicScale.html
  32. +9 −9 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.MajorScale.html
  33. +9 −9 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.MinorPentatonicScale.html
  34. +9 −9 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.MinorScale.html
  35. +66 −66 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.Scale.html
  36. +21 −21 FractalComposer/build/cobertura-report/com.myronmarston.music.scales.Tonality.html
  37. +20 −20 FractalComposer/build/cobertura-report/com.myronmarston.music.settings.AbstractVoiceOrSection.html
  38. +41 −41 FractalComposer/build/cobertura-report/com.myronmarston.music.settings.AbstractVoiceOrSectionSettings.html
Sorry, we could not display the entire diff because it was too big.
View
126 FractalComposer/build/cobertura-report/com.myronmarston.music.AudioFileCreator.html
@@ -90,11 +90,11 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @author Myron</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;36</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;37</td> <td class="nbHitsCovered">&nbsp;25</td> <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> AudioFileCreator {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;37</td> <td class="nbHitsCovered">&nbsp;52</td> <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> AudioFileCreator {</pre></td></tr>
<tr> <td class="numLine">&nbsp;38</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">final</span> OutputManager outputManager; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;39</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> AudioFormat.Encoding MPEG1L3 = Encodings.getEncoding(<span class="string">"MPEG1L3"</span>);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;40</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> AudioFileFormat.Type MP3 = AudioFileTypes.getType(<span class="string">"MP3"</span>, <span class="string">"mp3"</span>);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;39</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> AudioFormat.Encoding MPEG1L3 = Encodings.getEncoding(<span class="string">"MPEG1L3"</span>);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;40</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> AudioFileFormat.Type MP3 = AudioFileTypes.getType(<span class="string">"MP3"</span>, <span class="string">"mp3"</span>);</pre></td></tr>
<tr> <td class="numLine">&nbsp;41</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">double</span> MICROSECONDS_PER_SECOND = 1000000.0;</pre></td></tr>
<tr> <td class="numLine">&nbsp;42</td> <td class="nbHits">&nbsp;</td>
@@ -111,22 +111,22 @@
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;48</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> { </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;49</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; Synthesizer synth = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;49</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; Synthesizer synth = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;50</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLine">&nbsp;51</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;52</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; synth = AudioFileCreator.getAudioSynthesizer();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;52</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; synth = AudioFileCreator.getAudioSynthesizer();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;53</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (MidiUnavailableException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;54</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> UndeclaredThrowableException(ex, <span class="string">"An error occured while getting the Midi synthesizer."</span>);</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;55</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;56</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; SOUNDBANK = synth.getDefaultSoundbank();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;55</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;56</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; SOUNDBANK = synth.getDefaultSoundbank();</pre></td></tr>
<tr> <td class="numLine">&nbsp;57</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;58</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (synth != <span class="keyword">null</span>) synth.close();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;58</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (synth != <span class="keyword">null</span>) synth.close();</pre></td></tr>
<tr> <td class="numLine">&nbsp;59</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;60</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;60</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;61</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;62</td> <td class="nbHits">&nbsp;</td>
@@ -141,9 +141,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * to convert to a wav or mp3 file.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;67</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;68</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> AudioFileCreator(OutputManager outputManager) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;69</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.outputManager = outputManager;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;70</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;68</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> AudioFileCreator(OutputManager outputManager) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;69</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.outputManager = outputManager;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;70</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;71</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;72</td> <td class="nbHits">&nbsp;</td>
@@ -164,41 +164,41 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;80</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> <span class="keyword">void</span> saveWavFile(<span class="keyword">final</span> String wavFileName) <span class="keyword">throws</span> MidiUnavailableException, IOException {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;81</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioSynthesizer synth = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;82</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioInputStream stream1 = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;83</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioInputStream stream2 = <span class="keyword">null</span>; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;81</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; AudioSynthesizer synth = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;82</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; AudioInputStream stream1 = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;83</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; AudioInputStream stream2 = <span class="keyword">null</span>; </pre></td></tr>
<tr> <td class="numLine">&nbsp;84</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;85</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; synth = AudioFileCreator.getAudioSynthesizer();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;85</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; synth = AudioFileCreator.getAudioSynthesizer();</pre></td></tr>
<tr> <td class="numLine">&nbsp;86</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;87</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Open AudioStream from AudioSynthesizer with default values</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; stream1 = synth.openStream(<span class="keyword">null</span>, <span class="keyword">null</span>); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; stream1 = synth.openStream(<span class="keyword">null</span>, <span class="keyword">null</span>); </pre></td></tr>
<tr> <td class="numLine">&nbsp;89</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;90</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Play Sequence into AudioSynthesizer Receiver.</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;91</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">double</span> totalLength = <span class="keyword">this</span>.sendOutputSequenceMidiEvents(synth.getReceiver());</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;91</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">double</span> totalLength = <span class="keyword">this</span>.sendOutputSequenceMidiEvents(synth.getReceiver());</pre></td></tr>
<tr> <td class="numLine">&nbsp;92</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;93</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Calculate how long the WAVE file needs to be.</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;94</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> len = (<span class="keyword">long</span>) (stream1.getFormat().getFrameRate() * (totalLength + 4));</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;95</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; stream2 = <span class="keyword">new</span> AudioInputStream(stream1, stream1.getFormat(), len);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;94</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> len = (<span class="keyword">long</span>) (stream1.getFormat().getFrameRate() * (totalLength + 4));</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;95</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; stream2 = <span class="keyword">new</span> AudioInputStream(stream1, stream1.getFormat(), len);</pre></td></tr>
<tr> <td class="numLine">&nbsp;96</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;97</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Write the wave file to disk</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;98</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioSystem.write(stream2, AudioFileFormat.Type.WAVE, <span class="keyword">new</span> File(wavFileName)); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;98</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; AudioSystem.write(stream2, AudioFileFormat.Type.WAVE, <span class="keyword">new</span> File(wavFileName)); </pre></td></tr>
<tr> <td class="numLine">&nbsp;99</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;100</td> <td class="nbHitsUncovered"><a title="Line 100: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 100: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (stream1 != <span class="keyword">null</span>) stream1.close();</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;101</td> <td class="nbHitsUncovered"><a title="Line 101: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 101: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (stream2 != <span class="keyword">null</span>) stream2.close();</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;102</td> <td class="nbHitsUncovered"><a title="Line 102: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 102: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (synth != <span class="keyword">null</span>) synth.close();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;100</td> <td class="nbHitsUncovered"><a title="Line 100: Conditional coverage 50% (1/2).">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 100: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (stream1 != <span class="keyword">null</span>) stream1.close();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;101</td> <td class="nbHitsUncovered"><a title="Line 101: Conditional coverage 50% (1/2).">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 101: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (stream2 != <span class="keyword">null</span>) stream2.close();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;102</td> <td class="nbHitsUncovered"><a title="Line 102: Conditional coverage 50% (1/2).">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 102: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (synth != <span class="keyword">null</span>) synth.close();</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;103</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;104</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;104</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;105</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;106</td> <td class="nbHits">&nbsp;</td>
@@ -215,15 +215,15 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;112</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> <span class="keyword">void</span> saveMp3File(<span class="keyword">final</span> String mp3FileName) <span class="keyword">throws</span> Exception {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;113</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; FileHelper.createAndUseTempFile(<span class="string">"TempWav"</span>, <span class="string">".wav"</span>, <span class="keyword">new</span> FileHelper.TempFileUser() {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;113</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; FileHelper.createAndUseTempFile(<span class="string">"TempWav"</span>, <span class="string">".wav"</span>, <span class="keyword">new</span> FileHelper.TempFileUser() {</pre></td></tr>
<tr> <td class="numLine">&nbsp;114</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> useTempFile(String tempFileName) <span class="keyword">throws</span> Exception { </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;115</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; AudioFileCreator.<span class="keyword">this</span>.saveWavFile(tempFileName); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;116</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; AudioFileCreator.convertWavToMp3(tempFileName, mp3FileName);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;117</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;115</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioFileCreator.<span class="keyword">this</span>.saveWavFile(tempFileName); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;116</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioFileCreator.convertWavToMp3(tempFileName, mp3FileName);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;117</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;118</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; });</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;119</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;119</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;120</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;121</td> <td class="nbHits">&nbsp;</td>
@@ -248,22 +248,22 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;131</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">int</span> convertWavToMp3(String wavFileName, String mp3FileName) <span class="keyword">throws</span> UnsupportedAudioFileException, IOException { </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;132</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; AudioInputStream streamToConvert = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;133</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; AudioInputStream streamThatCanConvertToMp3 = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; AudioInputStream mp3Stream = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;132</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioInputStream streamToConvert = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;133</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioInputStream streamThatCanConvertToMp3 = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioInputStream mp3Stream = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;135</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;136</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;137</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; streamToConvert = AudioSystem.getAudioInputStream(<span class="keyword">new</span> File(wavFileName)); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;138</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; streamThatCanConvertToMp3 = AudioFileCreator.getStreamThatCanConvertToMp3(streamToConvert); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;139</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; mp3Stream = AudioSystem.getAudioInputStream(MPEG1L3, streamToConvert); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;140</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> AudioSystem.write(mp3Stream, MP3, <span class="keyword">new</span> File(mp3FileName));</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;137</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; streamToConvert = AudioSystem.getAudioInputStream(<span class="keyword">new</span> File(wavFileName)); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;138</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; streamThatCanConvertToMp3 = AudioFileCreator.getStreamThatCanConvertToMp3(streamToConvert); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;139</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; mp3Stream = AudioSystem.getAudioInputStream(MPEG1L3, streamToConvert); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;140</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> AudioSystem.write(mp3Stream, MP3, <span class="keyword">new</span> File(mp3FileName));</pre></td></tr>
<tr> <td class="numLine">&nbsp;141</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;142</td> <td class="nbHitsUncovered"><a title="Line 142: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 142: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (streamToConvert != <span class="keyword">null</span>) streamToConvert.close();</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;143</td> <td class="nbHitsUncovered"><a title="Line 143: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 143: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (streamThatCanConvertToMp3 != <span class="keyword">null</span>) streamThatCanConvertToMp3.close();</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;144</td> <td class="nbHitsUncovered"><a title="Line 144: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 144: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (mp3Stream != <span class="keyword">null</span>) mp3Stream.close();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;142</td> <td class="nbHitsUncovered"><a title="Line 142: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 142: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (streamToConvert != <span class="keyword">null</span>) streamToConvert.close();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;143</td> <td class="nbHitsUncovered"><a title="Line 143: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 143: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (streamThatCanConvertToMp3 != <span class="keyword">null</span>) streamThatCanConvertToMp3.close();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;144</td> <td class="nbHitsUncovered"><a title="Line 144: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 144: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (mp3Stream != <span class="keyword">null</span>) mp3Stream.close();</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;145</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;146</td> <td class="nbHits">&nbsp;</td>
@@ -286,8 +286,8 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;155</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> AudioInputStream getStreamThatCanConvertToMp3(AudioInputStream streamToConvert) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;156</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; AudioFormat sourceFormat = streamToConvert.getFormat();</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;157</td> <td class="nbHitsUncovered"><a title="Line 157: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 157: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (AudioSystem.isConversionSupported(MPEG1L3, sourceFormat)) <span class="keyword">return</span> streamToConvert;</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;156</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; AudioFormat sourceFormat = streamToConvert.getFormat();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;157</td> <td class="nbHitsUncovered"><a title="Line 157: Conditional coverage 50% (1/2).">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 157: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (AudioSystem.isConversionSupported(MPEG1L3, sourceFormat)) <span class="keyword">return</span> streamToConvert;</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;158</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;159</td> <td class="nbHits">&nbsp;</td>
@@ -332,8 +332,8 @@
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> AudioSynthesizer getAudioSynthesizer() <span class="keyword">throws</span> MidiUnavailableException {</pre></td></tr>
<tr> <td class="numLine">&nbsp;180</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// First check if default synthesizer is AudioSynthesizer.</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;181</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; Synthesizer synth = MidiSystem.getSynthesizer();</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;182</td> <td class="nbHitsUncovered"><a title="Line 182: Conditional coverage 50% (1/2).">&nbsp;27</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 182: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (synth <span class="keyword">instanceof</span> AudioSynthesizer) <span class="keyword">return</span> (AudioSynthesizer) synth;</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;181</td> <td class="nbHitsCovered">&nbsp;56</td> <td class="src"><pre class="src">&nbsp; Synthesizer synth = MidiSystem.getSynthesizer();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;182</td> <td class="nbHitsUncovered"><a title="Line 182: Conditional coverage 50% (1/2).">&nbsp;56</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 182: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (synth <span class="keyword">instanceof</span> AudioSynthesizer) <span class="keyword">return</span> (AudioSynthesizer) synth;</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;183</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;184</td> <td class="nbHits">&nbsp;</td>
@@ -364,30 +364,30 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;199</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">double</span> sendOutputSequenceMidiEvents(Receiver receiver) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;200</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; Sequence sequence = <span class="keyword">this</span>.outputManager.getSequence();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;200</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; Sequence sequence = <span class="keyword">this</span>.outputManager.getSequence();</pre></td></tr>
<tr> <td class="numLine">&nbsp;201</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// this method is only designed to handle the PPQ division type.</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;202</td> <td class="nbHitsUncovered"><a title="Line 202: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;4</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 202: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">assert</span> sequence.getDivisionType() == Sequence.PPQ : sequence.getDivisionType(); </a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;202</td> <td class="nbHitsUncovered"><a title="Line 202: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 202: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">assert</span> sequence.getDivisionType() == Sequence.PPQ : sequence.getDivisionType(); </a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;203</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;204</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> microsecondsPerQtrNote = Tempo.convertToMicrosecondsPerQuarterNote(<span class="keyword">this</span>.outputManager.getFractalPiece().getTempo());</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;205</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> seqRes = sequence.getResolution();</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;206</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> totalTime = 0;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;204</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> microsecondsPerQtrNote = Tempo.convertToMicrosecondsPerQuarterNote(<span class="keyword">this</span>.outputManager.getFractalPiece().getTempo());</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;205</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> seqRes = sequence.getResolution();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;206</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> totalTime = 0;</pre></td></tr>
<tr> <td class="numLine">&nbsp;207</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;208</td> <td class="nbHitsCovered"><a title="Line 208: Conditional coverage 100% (2/2).">&nbsp;12</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 208: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Track track : sequence.getTracks()) {</a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;209</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> lastTick = 0;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;210</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> curTime = 0;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;208</td> <td class="nbHitsCovered"><a title="Line 208: Conditional coverage 100% (2/2).">&nbsp;24</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 208: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Track track : sequence.getTracks()) {</a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;209</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> lastTick = 0;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;210</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> curTime = 0;</pre></td></tr>
<tr> <td class="numLine">&nbsp;211</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;212</td> <td class="nbHitsCovered"><a title="Line 212: Conditional coverage 100% (2/2).">&nbsp;52</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 212: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; track.size(); i++) { </a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;213</td> <td class="nbHitsCovered">&nbsp;44</td> <td class="src"><pre class="src">&nbsp; MidiEvent event = track.get(i);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;214</td> <td class="nbHitsCovered">&nbsp;44</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> tick = event.getTick();</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;215</td> <td class="nbHitsCovered">&nbsp;44</td> <td class="src"><pre class="src">&nbsp; curTime += ((tick - lastTick) * microsecondsPerQtrNote) / seqRes; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;216</td> <td class="nbHitsCovered">&nbsp;44</td> <td class="src"><pre class="src">&nbsp; lastTick = tick;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;217</td> <td class="nbHitsCovered">&nbsp;44</td> <td class="src"><pre class="src">&nbsp; MidiMessage msg = event.getMessage();</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;218</td> <td class="nbHitsCovered"><a title="Line 218: Conditional coverage 100% (2/2).">&nbsp;44</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 218: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!(msg <span class="keyword">instanceof</span> MetaMessage)) { </a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;219</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; receiver.send(msg, curTime);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;212</td> <td class="nbHitsCovered"><a title="Line 212: Conditional coverage 100% (2/2).">&nbsp;104</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 212: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; track.size(); i++) { </a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;213</td> <td class="nbHitsCovered">&nbsp;88</td> <td class="src"><pre class="src">&nbsp; MidiEvent event = track.get(i);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;214</td> <td class="nbHitsCovered">&nbsp;88</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">long</span> tick = event.getTick();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;215</td> <td class="nbHitsCovered">&nbsp;88</td> <td class="src"><pre class="src">&nbsp; curTime += ((tick - lastTick) * microsecondsPerQtrNote) / seqRes; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;216</td> <td class="nbHitsCovered">&nbsp;88</td> <td class="src"><pre class="src">&nbsp; lastTick = tick;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;217</td> <td class="nbHitsCovered">&nbsp;88</td> <td class="src"><pre class="src">&nbsp; MidiMessage msg = event.getMessage();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;218</td> <td class="nbHitsCovered"><a title="Line 218: Conditional coverage 100% (2/2).">&nbsp;88</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 218: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!(msg <span class="keyword">instanceof</span> MetaMessage)) { </a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;219</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; receiver.send(msg, curTime);</pre></td></tr>
<tr> <td class="numLine">&nbsp;220</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;221</td> <td class="nbHits">&nbsp;</td>
@@ -396,18 +396,18 @@
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;223</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// make the total time be the time of the langest track</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;224</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; totalTime = Math.max(curTime, totalTime);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;224</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; totalTime = Math.max(curTime, totalTime);</pre></td></tr>
<tr> <td class="numLine">&nbsp;225</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;226</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;227</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> totalTime / MICROSECONDS_PER_SECOND;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;227</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> totalTime / MICROSECONDS_PER_SECOND;</pre></td></tr>
<tr> <td class="numLine">&nbsp;228</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;229</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
-<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/23/08 7:49 PM.</div>
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/30/08 12:13 AM.</div>
</body>
</html>
View
56 FractalComposer/build/cobertura-report/com.myronmarston.music.Dynamic.html
@@ -69,15 +69,15 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @author Myron</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;26</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;27</td> <td class="nbHitsCovered">&nbsp;2206</td> <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> enum Dynamic {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;28</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; PPP(1),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;29</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; PP(2),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;30</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; P(3),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;31</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; MP(4),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;32</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; MF(5),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;33</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; F(6),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;34</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; FF(7),</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;35</td> <td class="nbHitsCovered">&nbsp;30</td> <td class="src"><pre class="src">&nbsp; FFF(8);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;27</td> <td class="nbHitsCovered">&nbsp;5028</td> <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> enum Dynamic {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;28</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; PPP(1),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;29</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; PP(2),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;30</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; P(3),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;31</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; MP(4),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;32</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; MF(5),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;33</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; F(6),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;34</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; FF(7),</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;35</td> <td class="nbHitsCovered">&nbsp;62</td> <td class="src"><pre class="src">&nbsp; FFF(8);</pre></td></tr>
<tr> <td class="numLine">&nbsp;36</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;37</td> <td class="nbHits">&nbsp;</td>
@@ -92,10 +92,10 @@
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> ADDITIONAL_OFFSET = -4;</pre></td></tr>
<tr> <td class="numLine">&nbsp;42</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;43</td> <td class="nbHitsCovered">&nbsp;240</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Dynamic(<span class="keyword">int</span> dynamicLevel) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;44</td> <td class="nbHitsCovered">&nbsp;240</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.dynamicLevel = dynamicLevel;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;45</td> <td class="nbHitsCovered">&nbsp;240</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.midiVolume = (dynamicLevel * MIDI_VOLUME_PER_LEVEL) + ADDITIONAL_OFFSET;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;46</td> <td class="nbHitsCovered">&nbsp;240</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;43</td> <td class="nbHitsCovered">&nbsp;496</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Dynamic(<span class="keyword">int</span> dynamicLevel) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;44</td> <td class="nbHitsCovered">&nbsp;496</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.dynamicLevel = dynamicLevel;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;45</td> <td class="nbHitsCovered">&nbsp;496</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.midiVolume = (dynamicLevel * MIDI_VOLUME_PER_LEVEL) + ADDITIONAL_OFFSET;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;46</td> <td class="nbHitsCovered">&nbsp;496</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;47</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;48</td> <td class="nbHits">&nbsp;</td>
@@ -110,7 +110,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;53</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">int</span> getMidiVolume() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;54</td> <td class="nbHitsCovered">&nbsp;563</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">this</span>.midiVolume;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;54</td> <td class="nbHitsCovered">&nbsp;1178</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">this</span>.midiVolume;</pre></td></tr>
<tr> <td class="numLine">&nbsp;55</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;56</td> <td class="nbHits">&nbsp;</td>
@@ -146,9 +146,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;72</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> Dynamic getDynamicForDynamicLevel(<span class="keyword">int</span> dynamicLevel) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;73</td> <td class="nbHitsCovered">&nbsp;2075</td> <td class="src"><pre class="src">&nbsp; Dynamic d = Dynamic.values()[dynamicLevel - 1];</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;74</td> <td class="nbHitsUncovered"><a title="Line 74: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;2075</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 74: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">assert</span> d.dynamicLevel == dynamicLevel : d;</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;75</td> <td class="nbHitsCovered">&nbsp;2075</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> d;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;73</td> <td class="nbHitsCovered">&nbsp;4762</td> <td class="src"><pre class="src">&nbsp; Dynamic d = Dynamic.values()[dynamicLevel - 1];</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;74</td> <td class="nbHitsUncovered"><a title="Line 74: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;4762</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 74: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">assert</span> d.dynamicLevel == dynamicLevel : d;</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;75</td> <td class="nbHitsCovered">&nbsp;4762</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> d;</pre></td></tr>
<tr> <td class="numLine">&nbsp;76</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;77</td> <td class="nbHits">&nbsp;</td>
@@ -169,11 +169,11 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;85</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> Dynamic getDynamicForMidiVolume(<span class="keyword">int</span> midiVolume) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;86</td> <td class="nbHitsCovered"><a title="Line 86: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;2109</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 86: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (midiVolume &lt;= MidiNote.MIN_VELOCITY || midiVolume &gt; MidiNote.MAX_VELOCITY) <span class="keyword">return</span> <span class="keyword">null</span>;</a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;86</td> <td class="nbHitsCovered"><a title="Line 86: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;4830</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 86: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (midiVolume &lt;= MidiNote.MIN_VELOCITY || midiVolume &gt; MidiNote.MAX_VELOCITY) <span class="keyword">return</span> <span class="keyword">null</span>;</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;87</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;2075</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> dynamicLevel = (midiVolume - (MIDI_VOLUME_PER_LEVEL + ADDITIONAL_OFFSET)) / MIDI_VOLUME_PER_LEVEL + 1;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;89</td> <td class="nbHitsCovered">&nbsp;2075</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> getDynamicForDynamicLevel(dynamicLevel);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;4762</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> dynamicLevel = (midiVolume - (MIDI_VOLUME_PER_LEVEL + ADDITIONAL_OFFSET)) / MIDI_VOLUME_PER_LEVEL + 1;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;89</td> <td class="nbHitsCovered">&nbsp;4762</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> getDynamicForDynamicLevel(dynamicLevel);</pre></td></tr>
<tr> <td class="numLine">&nbsp;90</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;91</td> <td class="nbHits">&nbsp;</td>
@@ -190,21 +190,21 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;97</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> String getDynamicExampleString() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;98</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; StringBuilder str = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;99</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; Dynamic[] values = Dynamic.values(); <span class="comment">// cache the array...</span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;98</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; StringBuilder str = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;99</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; Dynamic[] values = Dynamic.values(); <span class="comment">// cache the array...</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;100</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;101</td> <td class="nbHitsCovered"><a title="Line 101: Conditional coverage 100% (2/2).">&nbsp;9</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 101: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; values.length; i++) {</a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;102</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; str.append(values[i].toString()); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;101</td> <td class="nbHitsCovered"><a title="Line 101: Conditional coverage 100% (2/2).">&nbsp;18</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 101: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; values.length; i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;102</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; str.append(values[i].toString()); </pre></td></tr>
<tr> <td class="numLine">&nbsp;103</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;104</td> <td class="nbHitsCovered"><a title="Line 104: Conditional coverage 100% (2/2).">&nbsp;8</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 104: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (i == values.length - 2) str.append(<span class="string">" or "</span>); </a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;105</td> <td class="nbHitsCovered"><a title="Line 105: Conditional coverage 100% (2/2).">&nbsp;7</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 105: Conditional coverage 100% (2/2)."> <span class="keyword">else</span> <span class="keyword">if</span> (i &lt; values.length - 2) str.append(<span class="string">", "</span>); </a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;104</td> <td class="nbHitsCovered"><a title="Line 104: Conditional coverage 100% (2/2).">&nbsp;16</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 104: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (i == values.length - 2) str.append(<span class="string">" or "</span>); </a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;105</td> <td class="nbHitsCovered"><a title="Line 105: Conditional coverage 100% (2/2).">&nbsp;14</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 105: Conditional coverage 100% (2/2)."> <span class="keyword">else</span> <span class="keyword">if</span> (i &lt; values.length - 2) str.append(<span class="string">", "</span>); </a></pre></td></tr>
<tr> <td class="numLine">&nbsp;106</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;107</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;108</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> str.toString(); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;108</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> str.toString(); </pre></td></tr>
<tr> <td class="numLine">&nbsp;109</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;110</td> <td class="nbHits">&nbsp;</td>
@@ -233,6 +233,6 @@
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
-<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/23/08 7:49 PM.</div>
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/30/08 12:13 AM.</div>
</body>
</html>
View
6 FractalComposer/build/cobertura-report/com.myronmarston.music.GermIsEmptyException.html
@@ -83,12 +83,12 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;33</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> GermIsEmptyException() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;34</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>(<span class="string">"The germ is empty. A midi sequence cannot be created without it."</span>);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;35</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;34</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>(<span class="string">"The germ is empty. A midi sequence cannot be created without it."</span>);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;35</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;36</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
-<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/23/08 7:49 PM.</div>
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/30/08 12:13 AM.</div>
</body>
</html>
View
6 ...lComposer/build/cobertura-report/com.myronmarston.music.IncorrectNoteStringException.html
@@ -89,12 +89,12 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;36</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> IncorrectNoteStringException(String noteString) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;37</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>(noteString, String.format(<span class="string">"Error: the note string '%s' was entered incorrectly and could not be parsed."</span>, noteString));</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;38</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;37</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>(noteString, String.format(<span class="string">"Error: the note string '%s' was entered incorrectly and could not be parsed."</span>, noteString));</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;38</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;39</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
-<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/23/08 7:49 PM.</div>
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/30/08 12:13 AM.</div>
</body>
</html>
View
66 FractalComposer/build/cobertura-report/com.myronmarston.music.Instrument.html
@@ -85,7 +85,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @author Myron</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;34</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;35</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> Instrument <span class="keyword">extends</span> AbstractNotationElement {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;35</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp;<span class="keyword">public</span> <span class="keyword">class</span> Instrument <span class="keyword">extends</span> AbstractNotationElement {</pre></td></tr>
<tr> <td class="numLine">&nbsp;36</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">final</span> javax.sound.midi.Instrument midiInstrument;</pre></td></tr>
<tr> <td class="numLine">&nbsp;37</td> <td class="nbHits">&nbsp;</td>
@@ -114,9 +114,9 @@
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> List&lt;String&gt; AVAILABLE_INSTRUMENTS;</pre></td></tr>
<tr> <td class="numLine">&nbsp;49</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;50</td> <td class="nbHitsCovered">&nbsp;3151</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Instrument(javax.sound.midi.Instrument midiInstrument) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;51</td> <td class="nbHitsCovered">&nbsp;3151</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.midiInstrument = midiInstrument; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;52</td> <td class="nbHitsCovered">&nbsp;3151</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;50</td> <td class="nbHitsCovered">&nbsp;6576</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Instrument(javax.sound.midi.Instrument midiInstrument) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;51</td> <td class="nbHitsCovered">&nbsp;6576</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.midiInstrument = midiInstrument; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;52</td> <td class="nbHitsCovered">&nbsp;6576</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;53</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;54</td> <td class="nbHits">&nbsp;</td>
@@ -127,38 +127,38 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;57</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">static</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;58</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; HashMap&lt;String, Instrument&gt; map = <span class="keyword">new</span> HashMap&lt;String, Instrument&gt;(); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;59</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; List&lt;String&gt; list = <span class="keyword">new</span> ArrayList&lt;String&gt;();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;58</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; HashMap&lt;String, Instrument&gt; map = <span class="keyword">new</span> HashMap&lt;String, Instrument&gt;(); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;59</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; List&lt;String&gt; list = <span class="keyword">new</span> ArrayList&lt;String&gt;();</pre></td></tr>
<tr> <td class="numLine">&nbsp;60</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; String trimmedName;</pre></td></tr>
<tr> <td class="numLine">&nbsp;61</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;62</td> <td class="nbHitsCovered">&nbsp;5428</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">for</span> (javax.sound.midi.Instrument i : AudioFileCreator.SOUNDBANK.getInstruments()) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;62</td> <td class="nbHitsCovered">&nbsp;11328</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">for</span> (javax.sound.midi.Instrument i : AudioFileCreator.SOUNDBANK.getInstruments()) {</pre></td></tr>
<tr> <td class="numLine">&nbsp;63</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// there are several hundred instruments, but we only care about the</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;64</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// "regular" ones like piano, violin, cello, etc.</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;65</td> <td class="nbHitsCovered">&nbsp;5405</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (i.getPatch().getBank() == REGULAR_INSTRUMENT_BANK) { </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;66</td> <td class="nbHitsCovered">&nbsp;3151</td> <td class="src"><pre class="src">&nbsp; trimmedName = i.getName().trim(); <span class="comment">// many instruments have extra spaces on their name</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;67</td> <td class="nbHitsCovered">&nbsp;3151</td> <td class="src"><pre class="src">&nbsp; map.put(trimmedName.toLowerCase(Locale.ENGLISH), <span class="keyword">new</span> Instrument(i));</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;68</td> <td class="nbHitsCovered">&nbsp;3151</td> <td class="src"><pre class="src">&nbsp; list.add(trimmedName);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;65</td> <td class="nbHitsCovered">&nbsp;11280</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (i.getPatch().getBank() == REGULAR_INSTRUMENT_BANK) { </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;66</td> <td class="nbHitsCovered">&nbsp;6576</td> <td class="src"><pre class="src">&nbsp; trimmedName = i.getName().trim(); <span class="comment">// many instruments have extra spaces on their name</span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;67</td> <td class="nbHitsCovered">&nbsp;6576</td> <td class="src"><pre class="src">&nbsp; map.put(trimmedName.toLowerCase(Locale.ENGLISH), <span class="keyword">new</span> Instrument(i));</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;68</td> <td class="nbHitsCovered">&nbsp;6576</td> <td class="src"><pre class="src">&nbsp; list.add(trimmedName);</pre></td></tr>
<tr> <td class="numLine">&nbsp;69</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;70</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;71</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;72</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; INSTRUMENT_MAP = Collections.unmodifiableMap(map); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;73</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; AVAILABLE_INSTRUMENTS = Collections.unmodifiableList(list);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;72</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; INSTRUMENT_MAP = Collections.unmodifiableMap(map); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;73</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; AVAILABLE_INSTRUMENTS = Collections.unmodifiableList(list);</pre></td></tr>
<tr> <td class="numLine">&nbsp;74</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;75</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; Instrument temp = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;75</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; Instrument temp = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;76</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// try to get a piano as the default instrument...</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;77</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">for</span> (String instrumentName : AVAILABLE_INSTRUMENTS) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;78</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (instrumentName.contains(<span class="string">"Piano"</span>)) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;79</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; temp = getInstrument(instrumentName);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;80</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">break</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;77</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">for</span> (String instrumentName : AVAILABLE_INSTRUMENTS) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;78</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (instrumentName.contains(<span class="string">"Piano"</span>)) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;79</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; temp = getInstrument(instrumentName);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;80</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">break</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;81</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;82</td> <td class="nbHits">&nbsp;</td>
@@ -167,12 +167,12 @@
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;84</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// otherwise, just pick the first instrument...</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;85</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (temp == <span class="keyword">null</span>) temp = getInstrument(list.get(0));</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;85</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">if</span> (temp == <span class="keyword">null</span>) temp = getInstrument(list.get(0));</pre></td></tr>
<tr> <td class="numLine">&nbsp;86</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;87</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; DEFAULT = temp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">assert</span> DEFAULT != <span class="keyword">null</span> : <span class="string">"The default instrument could not be found."</span>;</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;89</td> <td class="nbHitsCovered">&nbsp;23</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;87</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; DEFAULT = temp; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">assert</span> DEFAULT != <span class="keyword">null</span> : <span class="string">"The default instrument could not be found."</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;89</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;90</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;91</td> <td class="nbHits">&nbsp;</td>
@@ -187,7 +187,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;96</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> javax.sound.midi.Instrument getMidiInstrument() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;97</td> <td class="nbHitsCovered">&nbsp;13</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> midiInstrument;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;97</td> <td class="nbHitsCovered">&nbsp;35</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> midiInstrument;</pre></td></tr>
<tr> <td class="numLine">&nbsp;98</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;99</td> <td class="nbHits">&nbsp;</td>
@@ -206,7 +206,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span> </pre></td></tr>
<tr> <td class="numLine">&nbsp;106</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> Instrument getInstrument(String name) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;107</td> <td class="nbHitsCovered">&nbsp;1487</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> INSTRUMENT_MAP.get(name.trim().toLowerCase(Locale.ENGLISH));</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;107</td> <td class="nbHitsCovered">&nbsp;3690</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> INSTRUMENT_MAP.get(name.trim().toLowerCase(Locale.ENGLISH));</pre></td></tr>
<tr> <td class="numLine">&nbsp;108</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;109</td> <td class="nbHits">&nbsp;</td>
@@ -223,7 +223,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;115</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> String getName() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;116</td> <td class="nbHitsCovered">&nbsp;247</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">this</span>.midiInstrument.getName().trim();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;116</td> <td class="nbHitsCovered">&nbsp;524</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">this</span>.midiInstrument.getName().trim();</pre></td></tr>
<tr> <td class="numLine">&nbsp;117</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;118</td> <td class="nbHits">&nbsp;</td>
@@ -240,7 +240,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;124</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> String toGuidoString() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;125</td> <td class="nbHitsCovered">&nbsp;13</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="string">"\\instr&lt;\""</span> + <span class="keyword">this</span>.getName() + <span class="string">"\", \"MIDI "</span> + <span class="keyword">this</span>.getMidiInstrument().getPatch().getProgram() + <span class="string">"\"&gt;"</span>;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;125</td> <td class="nbHitsCovered">&nbsp;35</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="string">"\\instr&lt;\""</span> + <span class="keyword">this</span>.getName() + <span class="string">"\", \"MIDI "</span> + <span class="keyword">this</span>.getMidiInstrument().getPatch().getProgram() + <span class="string">"\"&gt;"</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;126</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;127</td> <td class="nbHits">&nbsp;</td>
@@ -257,7 +257,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;133</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> String toLilypondString() { </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;10</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="string">"\\set Staff.instrumentName = \""</span> + <span class="keyword">this</span>.getName() + <span class="string">"\""</span> + FileHelper.NEW_LINE;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;25</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="string">"\\set Staff.instrumentName = \""</span> + <span class="keyword">this</span>.getName() + <span class="string">"\""</span> + FileHelper.NEW_LINE;</pre></td></tr>
<tr> <td class="numLine">&nbsp;135</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;136</td> <td class="nbHits">&nbsp;</td>
@@ -278,22 +278,22 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;144</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiEvent getProgramChangeMidiEvent(<span class="keyword">int</span> midiChannel) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;145</td> <td class="nbHitsUncovered"><a title="Line 145: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;140</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 145: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (midiChannel &lt; MidiNote.MIN_CHANNEL || midiChannel &gt; MidiNote.MAX_CHANNEL) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;145</td> <td class="nbHitsUncovered"><a title="Line 145: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;321</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 145: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (midiChannel &lt; MidiNote.MIN_CHANNEL || midiChannel &gt; MidiNote.MAX_CHANNEL) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;146</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(String.format(<span class="string">"The midi channel must be between %d and %d."</span>, MidiNote.MIN_CHANNEL, MidiNote.MAX_CHANNEL));</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;147</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;148</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;149</td> <td class="nbHitsCovered">&nbsp;140</td> <td class="src"><pre class="src">&nbsp; ShortMessage msg = <span class="keyword">new</span> ShortMessage();</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;149</td> <td class="nbHitsCovered">&nbsp;321</td> <td class="src"><pre class="src">&nbsp; ShortMessage msg = <span class="keyword">new</span> ShortMessage();</pre></td></tr>
<tr> <td class="numLine">&nbsp;150</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;151</td> <td class="nbHitsCovered">&nbsp;140</td> <td class="src"><pre class="src">&nbsp; msg.setMessage(ShortMessage.PROGRAM_CHANGE, midiChannel, <span class="keyword">this</span>.midiInstrument.getPatch().getProgram(), midiChannel);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;151</td> <td class="nbHitsCovered">&nbsp;321</td> <td class="src"><pre class="src">&nbsp; msg.setMessage(ShortMessage.PROGRAM_CHANGE, midiChannel, <span class="keyword">this</span>.midiInstrument.getPatch().getProgram(), midiChannel);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;152</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (InvalidMidiDataException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;153</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> UndeclaredThrowableException(ex, <span class="string">"The program change midi event could not be created for an unknown reason. This indicates a programming error."</span>);</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;154</td> <td class="nbHitsCovered">&nbsp;140</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;154</td> <td class="nbHitsCovered">&nbsp;321</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;155</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;156</td> <td class="nbHitsCovered">&nbsp;140</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> MidiEvent(msg, 0);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;156</td> <td class="nbHitsCovered">&nbsp;321</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> MidiEvent(msg, 0);</pre></td></tr>
<tr> <td class="numLine">&nbsp;157</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;158</td> <td class="nbHits">&nbsp;</td>
@@ -321,6 +321,6 @@
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
-<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/23/08 7:49 PM.</div>
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 7/30/08 12:13 AM.</div>
</body>
</html>
View
106 FractalComposer/build/cobertura-report/com.myronmarston.music.MidiNote.html
@@ -105,7 +105,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * The default velocity (volume) of the note</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;44</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;45</td> <td class="nbHitsCovered">&nbsp;28</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> DEFAULT_VELOCITY = Dynamic.MF.getMidiVolume(); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;45</td> <td class="nbHitsCovered">&nbsp;58</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> DEFAULT_VELOCITY = Dynamic.MF.getMidiVolume(); </pre></td></tr>
<tr> <td class="numLine">&nbsp;46</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;47</td> <td class="nbHits">&nbsp;</td>
@@ -190,13 +190,13 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * @param velocity the volume of the note, 0-127</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;87</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiNote(<span class="keyword">int</span> pitch, <span class="keyword">long</span> startTime, <span class="keyword">long</span> duration, <span class="keyword">int</span> channel, <span class="keyword">int</span> velocity) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;89</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setPitch(pitch);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;90</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setStartTime(startTime);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;91</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setDuration(duration);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;92</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setChannel(channel);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;93</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setVelocity(velocity); </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;94</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;88</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiNote(<span class="keyword">int</span> pitch, <span class="keyword">long</span> startTime, <span class="keyword">long</span> duration, <span class="keyword">int</span> channel, <span class="keyword">int</span> velocity) {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;89</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setPitch(pitch);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;90</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setStartTime(startTime);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;91</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setDuration(duration);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;92</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setChannel(channel);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;93</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setVelocity(velocity); </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;94</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;95</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;96</td> <td class="nbHits">&nbsp;</td>
@@ -217,8 +217,8 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;104</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiNote(<span class="keyword">int</span> pitch, <span class="keyword">long</span> startTime, <span class="keyword">long</span> duration, <span class="keyword">int</span> channel) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;105</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>(pitch, startTime, duration, channel, DEFAULT_VELOCITY);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;106</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;105</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>(pitch, startTime, duration, channel, DEFAULT_VELOCITY);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;106</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;107</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;108</td> <td class="nbHits">&nbsp;</td>
@@ -237,8 +237,8 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;115</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiNote(<span class="keyword">int</span> pitch, <span class="keyword">long</span> startTime, <span class="keyword">long</span> duration) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;116</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>(pitch, startTime, duration, DEFAULT_CHANNEL);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;117</td> <td class="nbHitsCovered">&nbsp;3</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;116</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>(pitch, startTime, duration, DEFAULT_CHANNEL);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;117</td> <td class="nbHitsCovered">&nbsp;6</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;118</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;119</td> <td class="nbHits">&nbsp;</td>
@@ -249,10 +249,10 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * for each parameter.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;122</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;123</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiNote() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;124</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setChannel(DEFAULT_CHANNEL);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;125</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setVelocity(DEFAULT_VELOCITY);</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;126</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;123</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> MidiNote() {</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;124</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setChannel(DEFAULT_CHANNEL);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;125</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.setVelocity(DEFAULT_VELOCITY);</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;126</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;127</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;128</td> <td class="nbHits">&nbsp;</td>
@@ -267,7 +267,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;133</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">int</span> getPitch() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;12387</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> pitch;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;30060</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> pitch;</pre></td></tr>
<tr> <td class="numLine">&nbsp;135</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;136</td> <td class="nbHits">&nbsp;</td>
@@ -284,9 +284,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;142</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> setPitch(<span class="keyword">int</span> pitch) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;143</td> <td class="nbHitsCovered"><a title="Line 143: Conditional coverage 100% (2/2).">&nbsp;2203</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 143: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.pitch != pitch) clearNoteEvents();</a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;144</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.pitch = pitch; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;145</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;143</td> <td class="nbHitsCovered"><a title="Line 143: Conditional coverage 100% (2/2).">&nbsp;5309</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 143: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.pitch != pitch) clearNoteEvents();</a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;144</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.pitch = pitch; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;145</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;146</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;147</td> <td class="nbHits">&nbsp;</td>
@@ -301,7 +301,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;152</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">long</span> getDuration() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;153</td> <td class="nbHitsCovered">&nbsp;2145</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> duration;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;153</td> <td class="nbHitsCovered">&nbsp;5193</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> duration;</pre></td></tr>
<tr> <td class="numLine">&nbsp;154</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;155</td> <td class="nbHits">&nbsp;</td>
@@ -318,9 +318,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;161</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> setDuration(<span class="keyword">long</span> duration) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;162</td> <td class="nbHitsUncovered"><a title="Line 162: Conditional coverage 50% (1/2).">&nbsp;2203</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 162: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.duration != duration) clearNoteEvents();</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;163</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.duration = duration; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;164</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;162</td> <td class="nbHitsUncovered"><a title="Line 162: Conditional coverage 50% (1/2).">&nbsp;5309</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 162: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.duration != duration) clearNoteEvents();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;163</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.duration = duration; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;164</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;165</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;166</td> <td class="nbHits">&nbsp;</td>
@@ -335,7 +335,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;171</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">long</span> getStartTime() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;172</td> <td class="nbHitsCovered">&nbsp;4248</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> startTime;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;172</td> <td class="nbHitsCovered">&nbsp;10302</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> startTime;</pre></td></tr>
<tr> <td class="numLine">&nbsp;173</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;174</td> <td class="nbHits">&nbsp;</td>
@@ -352,9 +352,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;180</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> setStartTime(<span class="keyword">long</span> startTime) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;181</td> <td class="nbHitsUncovered"><a title="Line 181: Conditional coverage 50% (1/2).">&nbsp;2203</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 181: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.startTime != startTime) clearNoteEvents();</a></span></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;182</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.startTime = startTime; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;183</td> <td class="nbHitsCovered">&nbsp;2203</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;181</td> <td class="nbHitsUncovered"><a title="Line 181: Conditional coverage 50% (1/2).">&nbsp;5309</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 181: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.startTime != startTime) clearNoteEvents();</a></span></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;182</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.startTime = startTime; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;183</td> <td class="nbHitsCovered">&nbsp;5309</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;184</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;185</td> <td class="nbHits">&nbsp;</td>
@@ -369,7 +369,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;190</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">int</span> getVelocity() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;191</td> <td class="nbHitsCovered">&nbsp;2145</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> velocity;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;191</td> <td class="nbHitsCovered">&nbsp;5193</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> velocity;</pre></td></tr>
<tr> <td class="numLine">&nbsp;192</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;193</td> <td class="nbHits">&nbsp;</td>
@@ -386,9 +386,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;199</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> setVelocity(<span class="keyword">int</span> velocity) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;200</td> <td class="nbHitsCovered"><a title="Line 200: Conditional coverage 100% (2/2).">&nbsp;4406</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 200: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.velocity != velocity) clearNoteEvents();</a></pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;201</td> <td class="nbHitsCovered">&nbsp;4406</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.velocity = velocity; </pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;202</td> <td class="nbHitsCovered">&nbsp;4406</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;200</td> <td class="nbHitsCovered"><a title="Line 200: Conditional coverage 100% (2/2).">&nbsp;10618</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 200: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.velocity != velocity) clearNoteEvents();</a></pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;201</td> <td class="nbHitsCovered">&nbsp;10618</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">this</span>.velocity = velocity; </pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;202</td> <td class="nbHitsCovered">&nbsp;10618</td> <td class="src"><pre class="src">&nbsp; } </pre></td></tr>
<tr> <td class="numLine">&nbsp;203</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; </pre></td></tr>
<tr> <td class="numLine">&nbsp;204</td> <td class="nbHits">&nbsp;</td>
@@ -403,7 +403,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;209</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">int</span> getChannel() {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;210</td> <td class="nbHitsCovered">&nbsp;4209</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> channel;</pre></td></tr>
+<tr> <td class="numLineCover">&nbsp;210</td> <td class="nbHitsCovered">&nbsp;10224</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> channel;</pre></td></tr>
<tr> <td class="numLine">&nbsp;211</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;212</td> <td class="nbHits">&nbsp;</td>
@@ -420,10 +420,10 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;218</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> setChannel(<span class="keyword">int</span> channel) {</pre></td></tr>
-<tr> <td class="numLineCover">&nbsp;219</td> <td class="nbHitsUncovered"><a title="Line 219: Conditional coverage 75% (3/4) [each condition: 50%, 100%].">&nbsp;4407</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 219: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (channel &lt; MIN_CHANNEL || channel &gt; MAX_CHANNEL) <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(String.format(<span class="string