summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xvfg/bin/data/Levels_DeckTheHalls.4.0.xml7
-rwxr-xr-xvfg/bin/data/Levels_JingleBells.4.0.xml7
-rwxr-xr-xvfg/bin/data/Lyrics_DeckTheHalls.4.0.xml70
-rwxr-xr-xvfg/bin/data/Lyrics_JingleBells.4.0.xml44
-rwxr-xr-xvfg/bin/data/VODA_MUS_JingleBells_MIDI_v.4.0.xml321
-rwxr-xr-xvfg/src/Asterisk.cpp2
-rwxr-xr-xvfg/src/music.cpp21
-rwxr-xr-xvfg/src/music.h23
-rwxr-xr-xvfg/src/testApp.cpp46
-rwxr-xr-xvfg/src/testApp.h9
-rwxr-xr-xvpn/notes.txt3
11 files changed, 521 insertions, 32 deletions
diff --git a/vfg/bin/data/Levels_DeckTheHalls.4.0.xml b/vfg/bin/data/Levels_DeckTheHalls.4.0.xml
new file mode 100755
index 0000000..6719801
--- /dev/null
+++ b/vfg/bin/data/Levels_DeckTheHalls.4.0.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<VFxmas timebase="1000">
+ <Level Time="0" Lives="0"/>
+ <Level Time="37920" Lives="5"/>
+ <Level Time="69400" Lives="4"/>
+ <Level Time="84280" Lives="3"/>
+</VFxmas>
diff --git a/vfg/bin/data/Levels_JingleBells.4.0.xml b/vfg/bin/data/Levels_JingleBells.4.0.xml
new file mode 100755
index 0000000..9b8ef79
--- /dev/null
+++ b/vfg/bin/data/Levels_JingleBells.4.0.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<VFxmas timebase="25">
+ <Level Time="0" Lives="0"/>
+ <Level Time="861" Lives="5"/>
+ <Level Time="1518" Lives="4"/>
+ <Level Time="1815 " Lives="3"/>
+</VFxmas>
diff --git a/vfg/bin/data/Lyrics_DeckTheHalls.4.0.xml b/vfg/bin/data/Lyrics_DeckTheHalls.4.0.xml
new file mode 100755
index 0000000..67e35c7
--- /dev/null
+++ b/vfg/bin/data/Lyrics_DeckTheHalls.4.0.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<VFxmas timebase="25">
+ <Lyric In="60" Out="96">Deck the halls</Lyric>
+ <Lyric In="104" Out="127">with boughs</Lyric>
+ <Lyric In="133" Out="170">of holly</Lyric>
+ <Lyric In="176" Out="185">Fa-la</Lyric>
+ <Lyric In="191" Out="214">la-la-la</Lyric>
+ <Lyric In="226" Out="283">la-la-la-la</Lyric>
+ <Lyric In="293" Out="336">'tis the season</Lyric>
+ <Lyric In="351" Out="402">to be jolly</Lyric>
+ <Lyric In="408" Out="417">Fa-la</Lyric>
+ <Lyric In="423" Out="446">la-la-la</Lyric>
+ <Lyric In="458" Out="515">la-la-la-la</Lyric>
+ <Lyric In="525" Out="559">Don we now</Lyric>
+ <Lyric In="566" Out="628">our gay apparel</Lyric>
+ <Lyric In="633" Out="655">Fa-la-la</Lyric>
+ <Lyric In="660" Out="683">la-la-la</Lyric>
+ <Lyric In="686" Out="728">la-la-la</Lyric>
+ <Lyric In="739" Out="787">Troll the ancient</Lyric>
+ <Lyric In="792" Out="815">yule-tide</Lyric>
+ <Lyric In="819" Out="844">carol</Lyric>
+ <Lyric In="847" Out="856">Fa-la</Lyric>
+ <Lyric In="860" Out="883">la-la-la</Lyric>
+ <Lyric In="894" Out="943">la-la-la-la</Lyric>
+
+ <Lyric In="954" Out="997">See the blazing</Lyric>
+ <Lyric In="1004" Out="1050">Yule before us</Lyric>
+ <Lyric In="1054" Out="1063">Fa-la</Lyric>
+ <Lyric In="1066" Out="1089">la-la-la</Lyric>
+ <Lyric In="1097" Out="1142">la-la-la-la</Lyric>
+ <Lyric In="1153" Out="1187">Strike the harp</Lyric>
+ <Lyric In="1192" Out="1211">and join</Lyric>
+ <Lyric In="1217" Out="1249">the chorus</Lyric>
+ <Lyric In="1254" Out="1263">Fa-la</Lyric>
+ <Lyric In="1267" Out="1290">la-la-la</Lyric>
+ <Lyric In="1297" Out="1340">la-la-la-la</Lyric>
+ <Lyric In="1354" Out="1386">Follow me</Lyric>
+ <Lyric In="1390" Out="1447">in merry measure</Lyric>
+ <Lyric In="1450" Out="1472">Fa-la-la</Lyric>
+ <Lyric In="1474" Out="1494">la-la-la</Lyric>
+ <Lyric In="1498" Out="1536">la-la-la</Lyric>
+ <Lyric In="1546" Out="1589">While I tell of</Lyric>
+ <Lyric In="1593" Out="1639">Yule-tide treasure</Lyric>
+ <Lyric In="1642" Out="1651">Fa-la</Lyric>
+ <Lyric In="1654" Out="1679">la-la-la</Lyric>
+ <Lyric In="1684" Out="1726">la-la-la-la</Lyric>
+
+ <Lyric In="1738" Out="1768">Deck the halls</Lyric>
+ <Lyric In="1773" Out="1791">with boughs</Lyric>
+ <Lyric In="1796" Out="1825">of holly</Lyric>
+ <Lyric In="1831" Out="1838">Fa-la</Lyric>
+ <Lyric In="1842" Out="1865">la-la-la</Lyric>
+ <Lyric In="1871" Out="1911">la-la-la-la</Lyric>
+ <Lyric In="1923" Out="1963">'tis the season</Lyric>
+ <Lyric In="1969" Out="2010">to be jolly</Lyric>
+ <Lyric In="2015" Out="2023">Fa-la</Lyric>
+ <Lyric In="2027" Out="2050">la-la-la</Lyric>
+ <Lyric In="2056" Out="2096">la-la-la-la</Lyric>
+ <Lyric In="2108" Out="2135">Don we now</Lyric>
+ <Lyric In="2139" Out="2188">our gay apparel</Lyric>
+ <Lyric In="2192" Out="2210">Fa-la-la</Lyric>
+ <Lyric In="2213" Out="2230">la-la-la</Lyric>
+ <Lyric In="2234" Out="2266">la-la-la</Lyric>
+ <Lyric In="2276" Out="2311">Troll the ancient</Lyric>
+ <Lyric In="2316" Out="2332">yule-tide</Lyric>
+ <Lyric In="2335" Out="2352">carol</Lyric>
+ <Lyric In="2354" Out="2360">Fa-la</Lyric>
+ <Lyric In="2364" Out="2383">la-la-la</Lyric>
+ <Lyric In="2393" Out="2435">la-la-la-la</Lyric>
+</VFxmas>
diff --git a/vfg/bin/data/Lyrics_JingleBells.4.0.xml b/vfg/bin/data/Lyrics_JingleBells.4.0.xml
new file mode 100755
index 0000000..a5cce7d
--- /dev/null
+++ b/vfg/bin/data/Lyrics_JingleBells.4.0.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<VFxmas timebase="25">
+ <Lyric In="93" Out="123">Jingle bells</Lyric>
+ <Lyric In="136" Out="165">jingle bells</Lyric>
+ <Lyric In="184" Out="238">jingle all the way</Lyric>
+ <Lyric In="275" Out="304">Oh, what fun</Lyric>
+ <Lyric In="314" Out="347">it is to ride</Lyric>
+ <Lyric In="354" Out="379">On a one horse</Lyric>
+ <Lyric In="386" Out="438">open sleigh-O</Lyric>
+
+ <Lyric In="456" Out="486">Jingle bells</Lyric>
+ <Lyric In="499" Out="528">jingle bells</Lyric>
+ <Lyric In="547" Out="601">jingle all the way</Lyric>
+ <Lyric In="635" Out="664">Oh, what fun</Lyric>
+ <Lyric In="671" Out="704">it is to ride</Lyric>
+ <Lyric In="717" Out="742">On a one horse</Lyric>
+ <Lyric In="750" Out="780">open sleigh</Lyric>
+
+ <Lyric In="863" Out="915">Dashing through the snow</Lyric>
+ <Lyric In="936" Out="996">on a one horse open sleigh</Lyric>
+ <Lyric In="1027" Out="1083">O'er the fields we go</Lyric>
+ <Lyric In="1110" Out="1160">laughing all the way</Lyric>
+ <Lyric In="1192" Out="1245">Bells on bobtails ring</Lyric>
+ <Lyric In="1275" Out="1322">making spirits bright</Lyric>
+ <Lyric In="1346" Out="1423">What fun it is to laugh and sing</Lyric>
+ <Lyric In="1429" Out="1486">a sleighing song tonight</Lyric>
+
+ <Lyric In="1522" Out="1552">Jingle bells</Lyric>
+ <Lyric In="1559" Out="1588">jingle bells</Lyric>
+ <Lyric In="1595" Out="1649">jingle all the way</Lyric>
+ <Lyric In="1667" Out="1696">Oh, what fun</Lyric>
+ <Lyric In="1703" Out="1725">it is to ride</Lyric>
+ <Lyric In="1729" Out="1754">On a one horse</Lyric>
+ <Lyric In="1757" Out="1809">open sleigh-O</Lyric>
+
+ <Lyric In="1815" Out="1837">Jingle bells</Lyric>
+ <Lyric In="1842" Out="1865">jingle bells</Lyric>
+ <Lyric In="1870" Out="1924">jingle all the way</Lyric>
+ <Lyric In="1930" Out="1952">Oh, what fun</Lyric>
+ <Lyric In="1957" Out="1985">it is to ride</Lyric>
+ <Lyric In="1991" Out="2016">On a one horse</Lyric>
+ <Lyric In="2022" Out="2052">open sleigh</Lyric>
+
+</VFxmas>
diff --git a/vfg/bin/data/VODA_MUS_JingleBells_MIDI_v.4.0.xml b/vfg/bin/data/VODA_MUS_JingleBells_MIDI_v.4.0.xml
new file mode 100755
index 0000000..697b638
--- /dev/null
+++ b/vfg/bin/data/VODA_MUS_JingleBells_MIDI_v.4.0.xml
@@ -0,0 +1,321 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<MidiFile SMFType="0" TrackChunkAmount="1" DeltaTimeTicks="480" TimeStamp="26/11/2012 11:02:59">
+ <TrackChunk Size="1438">
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="TrackName" Data="03 06 4d 65 6c 6f 64 79" MetaId="03">Melody</Event>
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="InstrumentName" Data="04 06 4d 65 6c 6f 64 79" MetaId="04">Melody</Event>
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="TimeSignature" Data="58 04 04 02 18 08" MetaId="58"/>
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="KeySignature" Data="59 02 00 00" MetaId="59"/>
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="&lt;unknown&gt;" Data="54 05 21 00 00 00 00" MetaId="54"/>
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="TempoSet" Data="51 03 0d df 22" MetaId="51"/>
+ <Event DeltaTimeTicks="115" Type="MIDI" Id="80" Label="NoteOff" Data="4f 31"/>
+ <Event DeltaTimeTicks="1805" Type="MIDI" Id="90" Label="NoteOn" Data="4f 40"/>
+ <Event DeltaTimeTicks="115" Type="MIDI" Id="80" Label="NoteOff" Data="4f 31"/>
+ <Event DeltaTimeTicks="125" Type="MIDI" Id="90" Label="NoteOn" Data="4f 3b"/>
+ <Event DeltaTimeTicks="133" Type="MIDI" Id="80" Label="NoteOff" Data="4f 15"/>
+ <Event DeltaTimeTicks="107" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="203" Type="MIDI" Id="80" Label="NoteOff" Data="4f 26"/>
+ <Event DeltaTimeTicks="277" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="108" Type="MIDI" Id="80" Label="NoteOff" Data="4f 2d"/>
+ <Event DeltaTimeTicks="132" Type="MIDI" Id="90" Label="NoteOn" Data="4f 6a"/>
+ <Event DeltaTimeTicks="117" Type="MIDI" Id="80" Label="NoteOff" Data="4f 20"/>
+ <Event DeltaTimeTicks="123" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="174" Type="MIDI" Id="80" Label="NoteOff" Data="4f 63"/>
+ <Event DeltaTimeTicks="306" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="135" Type="MIDI" Id="80" Label="NoteOff" Data="4f 54"/>
+ <Event DeltaTimeTicks="105" Type="MIDI" Id="90" Label="NoteOn" Data="52 5f"/>
+ <Event DeltaTimeTicks="175" Type="MIDI" Id="80" Label="NoteOff" Data="52 0d"/>
+ <Event DeltaTimeTicks="65" Type="MIDI" Id="90" Label="NoteOn" Data="4b 5f"/>
+ <Event DeltaTimeTicks="246" Type="MIDI" Id="80" Label="NoteOff" Data="4b 7f"/>
+ <Event DeltaTimeTicks="114" Type="MIDI" Id="90" Label="NoteOn" Data="4d 4d"/>
+ <Event DeltaTimeTicks="89" Type="MIDI" Id="80" Label="NoteOff" Data="4d 78"/>
+ <Event DeltaTimeTicks="31" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="481" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="479" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="134" Type="MIDI" Id="80" Label="NoteOff" Data="50 43"/>
+ <Event DeltaTimeTicks="106" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="118" Type="MIDI" Id="80" Label="NoteOff" Data="50 55"/>
+ <Event DeltaTimeTicks="122" Type="MIDI" Id="90" Label="NoteOn" Data="50 7a"/>
+ <Event DeltaTimeTicks="284" Type="MIDI" Id="80" Label="NoteOff" Data="50 7a"/>
+ <Event DeltaTimeTicks="76" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="52" Type="MIDI" Id="80" Label="NoteOff" Data="50 7a"/>
+ <Event DeltaTimeTicks="68" Type="MIDI" Id="90" Label="NoteOn" Data="50 72"/>
+ <Event DeltaTimeTicks="153" Type="MIDI" Id="80" Label="NoteOff" Data="50 7f"/>
+ <Event DeltaTimeTicks="87" Type="MIDI" Id="90" Label="NoteOn" Data="4f 5b"/>
+ <Event DeltaTimeTicks="132" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="108" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="165" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="75" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="60" Type="MIDI" Id="80" Label="NoteOff" Data="4f 7f"/>
+ <Event DeltaTimeTicks="60" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="59" Type="MIDI" Id="80" Label="NoteOff" Data="4f 7f"/>
+ <Event DeltaTimeTicks="61" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="143" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="97" Type="MIDI" Id="90" Label="NoteOn" Data="4d 78"/>
+ <Event DeltaTimeTicks="117" Type="MIDI" Id="80" Label="NoteOff" Data="4d 63"/>
+ <Event DeltaTimeTicks="123" Type="MIDI" Id="90" Label="NoteOn" Data="4d 78"/>
+ <Event DeltaTimeTicks="159" Type="MIDI" Id="80" Label="NoteOff" Data="4d 5b"/>
+ <Event DeltaTimeTicks="81" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="107" Type="MIDI" Id="80" Label="NoteOff" Data="4f 78"/>
+ <Event DeltaTimeTicks="133" Type="MIDI" Id="90" Label="NoteOn" Data="4d 7c"/>
+ <Event DeltaTimeTicks="275" Type="MIDI" Id="80" Label="NoteOff" Data="4d 5b"/>
+ <Event DeltaTimeTicks="205" Type="MIDI" Id="90" Label="NoteOn" Data="52 7a"/>
+ <Event DeltaTimeTicks="242" Type="MIDI" Id="80" Label="NoteOff" Data="52 7a"/>
+ <Event DeltaTimeTicks="238" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="133" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="107" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="116" Type="MIDI" Id="80" Label="NoteOff" Data="4f 40"/>
+ <Event DeltaTimeTicks="124" Type="MIDI" Id="90" Label="NoteOn" Data="4f 7f"/>
+ <Event DeltaTimeTicks="219" Type="MIDI" Id="80" Label="NoteOff" Data="4f 6a"/>
+ <Event DeltaTimeTicks="261" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="97" Type="MIDI" Id="80" Label="NoteOff" Data="4f 40"/>
+ <Event DeltaTimeTicks="143" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="105" Type="MIDI" Id="80" Label="NoteOff" Data="4f 4d"/>
+ <Event DeltaTimeTicks="135" Type="MIDI" Id="90" Label="NoteOn" Data="4f 7c"/>
+ <Event DeltaTimeTicks="187" Type="MIDI" Id="80" Label="NoteOff" Data="4f 4d"/>
+ <Event DeltaTimeTicks="293" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="144" Type="MIDI" Id="80" Label="NoteOff" Data="4f 6a"/>
+ <Event DeltaTimeTicks="96" Type="MIDI" Id="90" Label="NoteOn" Data="52 7a"/>
+ <Event DeltaTimeTicks="129" Type="MIDI" Id="80" Label="NoteOff" Data="52 22"/>
+ <Event DeltaTimeTicks="111" Type="MIDI" Id="90" Label="NoteOn" Data="4b 72"/>
+ <Event DeltaTimeTicks="206" Type="MIDI" Id="80" Label="NoteOff" Data="4b 7f"/>
+ <Event DeltaTimeTicks="154" Type="MIDI" Id="90" Label="NoteOn" Data="4d 4d"/>
+ <Event DeltaTimeTicks="90" Type="MIDI" Id="80" Label="NoteOff" Data="4d 71"/>
+ <Event DeltaTimeTicks="30" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="367" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="593" Type="MIDI" Id="90" Label="NoteOn" Data="50 72"/>
+ <Event DeltaTimeTicks="136" Type="MIDI" Id="80" Label="NoteOff" Data="50 4c"/>
+ <Event DeltaTimeTicks="104" Type="MIDI" Id="90" Label="NoteOn" Data="50 72"/>
+ <Event DeltaTimeTicks="120" Type="MIDI" Id="80" Label="NoteOff" Data="50 5f"/>
+ <Event DeltaTimeTicks="120" Type="MIDI" Id="90" Label="NoteOn" Data="50 7a"/>
+ <Event DeltaTimeTicks="136" Type="MIDI" Id="80" Label="NoteOff" Data="50 55"/>
+ <Event DeltaTimeTicks="104" Type="MIDI" Id="90" Label="NoteOn" Data="50 72"/>
+ <Event DeltaTimeTicks="53" Type="MIDI" Id="80" Label="NoteOff" Data="50 7f"/>
+ <Event DeltaTimeTicks="67" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="55" Type="MIDI" Id="80" Label="NoteOff" Data="50 7f"/>
+ <Event DeltaTimeTicks="65" Type="MIDI" Id="90" Label="NoteOn" Data="50 7a"/>
+ <Event DeltaTimeTicks="150" Type="MIDI" Id="80" Label="NoteOff" Data="50 7f"/>
+ <Event DeltaTimeTicks="90" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="132" Type="MIDI" Id="80" Label="NoteOff" Data="4f 6a"/>
+ <Event DeltaTimeTicks="108" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="138" Type="MIDI" Id="80" Label="NoteOff" Data="4f 7c"/>
+ <Event DeltaTimeTicks="102" Type="MIDI" Id="90" Label="NoteOn" Data="4f 6a"/>
+ <Event DeltaTimeTicks="59" Type="MIDI" Id="80" Label="NoteOff" Data="4f 7f"/>
+ <Event DeltaTimeTicks="61" Type="MIDI" Id="90" Label="NoteOn" Data="4f 4d"/>
+ <Event DeltaTimeTicks="85" Type="MIDI" Id="80" Label="NoteOff" Data="4f 6a"/>
+ <Event DeltaTimeTicks="35" Type="MIDI" Id="90" Label="NoteOn" Data="52 72"/>
+ <Event DeltaTimeTicks="129" Type="MIDI" Id="80" Label="NoteOff" Data="52 7f"/>
+ <Event DeltaTimeTicks="111" Type="MIDI" Id="90" Label="NoteOn" Data="52 72"/>
+ <Event DeltaTimeTicks="120" Type="MIDI" Id="80" Label="NoteOff" Data="52 72"/>
+ <Event DeltaTimeTicks="120" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="127" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="113" Type="MIDI" Id="90" Label="NoteOn" Data="4d 7c"/>
+ <Event DeltaTimeTicks="126" Type="MIDI" Id="80" Label="NoteOff" Data="4d 78"/>
+ <Event DeltaTimeTicks="114" Type="MIDI" Id="90" Label="NoteOn" Data="4b 7a"/>
+ <Event DeltaTimeTicks="246" Type="MIDI" Id="80" Label="NoteOff" Data="4b 69"/>
+ <Event DeltaTimeTicks="1674" Type="Meta" Id="ff" Label="TempoSet" Data="51 03 0c 8a 9d" MetaId="51"/>
+ <Event DeltaTimeTicks="0" Type="MIDI" Id="90" Label="NoteOn" Data="46 4c"/>
+ <Event DeltaTimeTicks="156" Type="MIDI" Id="80" Label="NoteOff" Data="46 26"/>
+ <Event DeltaTimeTicks="84" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="141" Type="MIDI" Id="80" Label="NoteOff" Data="4f 15"/>
+ <Event DeltaTimeTicks="99" Type="MIDI" Id="90" Label="NoteOn" Data="4d 63"/>
+ <Event DeltaTimeTicks="129" Type="MIDI" Id="80" Label="NoteOff" Data="4d 46"/>
+ <Event DeltaTimeTicks="111" Type="MIDI" Id="90" Label="NoteOn" Data="4b 43"/>
+ <Event DeltaTimeTicks="114" Type="MIDI" Id="80" Label="NoteOff" Data="4b 35"/>
+ <Event DeltaTimeTicks="126" Type="MIDI" Id="90" Label="NoteOn" Data="46 5f"/>
+ <Event DeltaTimeTicks="186" Type="MIDI" Id="80" Label="NoteOff" Data="46 2a"/>
+ <Event DeltaTimeTicks="534" Type="MIDI" Id="90" Label="NoteOn" Data="46 4c"/>
+ <Event DeltaTimeTicks="72" Type="MIDI" Id="80" Label="NoteOff" Data="46 5f"/>
+ <Event DeltaTimeTicks="48" Type="MIDI" Id="90" Label="NoteOn" Data="46 43"/>
+ <Event DeltaTimeTicks="91" Type="MIDI" Id="80" Label="NoteOff" Data="46 69"/>
+ <Event DeltaTimeTicks="29" Type="MIDI" Id="90" Label="NoteOn" Data="46 43"/>
+ <Event DeltaTimeTicks="187" Type="MIDI" Id="80" Label="NoteOff" Data="46 1c"/>
+ <Event DeltaTimeTicks="53" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="126" Type="MIDI" Id="80" Label="NoteOff" Data="4f 1a"/>
+ <Event DeltaTimeTicks="114" Type="MIDI" Id="90" Label="NoteOn" Data="4d 63"/>
+ <Event DeltaTimeTicks="123" Type="MIDI" Id="80" Label="NoteOff" Data="4d 26"/>
+ <Event DeltaTimeTicks="117" Type="MIDI" Id="90" Label="NoteOn" Data="4b 35"/>
+ <Event DeltaTimeTicks="136" Type="MIDI" Id="80" Label="NoteOff" Data="4b 05"/>
+ <Event DeltaTimeTicks="104" Type="MIDI" Id="90" Label="NoteOn" Data="48 63"/>
+ <Event DeltaTimeTicks="233" Type="MIDI" Id="80" Label="NoteOff" Data="48 46"/>
+ <Event DeltaTimeTicks="727" Type="MIDI" Id="90" Label="NoteOn" Data="48 5b"/>
+ <Event DeltaTimeTicks="170" Type="MIDI" Id="80" Label="NoteOff" Data="48 36"/>
+ <Event DeltaTimeTicks="70" Type="MIDI" Id="90" Label="NoteOn" Data="50 43"/>
+ <Event DeltaTimeTicks="134" Type="MIDI" Id="80" Label="NoteOff" Data="50 07"/>
+ <Event DeltaTimeTicks="106" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="145" Type="MIDI" Id="80" Label="NoteOff" Data="4f 1e"/>
+ <Event DeltaTimeTicks="95" Type="MIDI" Id="90" Label="NoteOn" Data="4d 63"/>
+ <Event DeltaTimeTicks="115" Type="MIDI" Id="80" Label="NoteOff" Data="4d 3b"/>
+ <Event DeltaTimeTicks="125" Type="MIDI" Id="90" Label="NoteOn" Data="4a 63"/>
+ <Event DeltaTimeTicks="194" Type="MIDI" Id="80" Label="NoteOff" Data="4a 13"/>
+ <Event DeltaTimeTicks="766" Type="MIDI" Id="90" Label="NoteOn" Data="52 4c"/>
+ <Event DeltaTimeTicks="135" Type="MIDI" Id="80" Label="NoteOff" Data="52 08"/>
+ <Event DeltaTimeTicks="105" Type="MIDI" Id="90" Label="NoteOn" Data="52 4c"/>
+ <Event DeltaTimeTicks="137" Type="MIDI" Id="80" Label="NoteOff" Data="52 0b"/>
+ <Event DeltaTimeTicks="103" Type="MIDI" Id="90" Label="NoteOn" Data="50 55"/>
+ <Event DeltaTimeTicks="148" Type="MIDI" Id="80" Label="NoteOff" Data="50 15"/>
+ <Event DeltaTimeTicks="92" Type="MIDI" Id="90" Label="NoteOn" Data="4d 63"/>
+ <Event DeltaTimeTicks="145" Type="MIDI" Id="80" Label="NoteOff" Data="4d 1a"/>
+ <Event DeltaTimeTicks="95" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="193" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="767" Type="MIDI" Id="90" Label="NoteOn" Data="46 4c"/>
+ <Event DeltaTimeTicks="150" Type="MIDI" Id="80" Label="NoteOff" Data="46 3c"/>
+ <Event DeltaTimeTicks="90" Type="MIDI" Id="90" Label="NoteOn" Data="4f 6a"/>
+ <Event DeltaTimeTicks="124" Type="MIDI" Id="80" Label="NoteOff" Data="4f 0f"/>
+ <Event DeltaTimeTicks="116" Type="MIDI" Id="90" Label="NoteOn" Data="4d 6a"/>
+ <Event DeltaTimeTicks="125" Type="MIDI" Id="80" Label="NoteOff" Data="4d 5b"/>
+ <Event DeltaTimeTicks="115" Type="MIDI" Id="90" Label="NoteOn" Data="4b 3c"/>
+ <Event DeltaTimeTicks="112" Type="MIDI" Id="80" Label="NoteOff" Data="4b 3c"/>
+ <Event DeltaTimeTicks="128" Type="MIDI" Id="90" Label="NoteOn" Data="46 69"/>
+ <Event DeltaTimeTicks="174" Type="MIDI" Id="80" Label="NoteOff" Data="46 35"/>
+ <Event DeltaTimeTicks="786" Type="MIDI" Id="90" Label="NoteOn" Data="46 69"/>
+ <Event DeltaTimeTicks="161" Type="MIDI" Id="80" Label="NoteOff" Data="46 2a"/>
+ <Event DeltaTimeTicks="79" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="154" Type="MIDI" Id="80" Label="NoteOff" Data="4f 1a"/>
+ <Event DeltaTimeTicks="86" Type="MIDI" Id="90" Label="NoteOn" Data="4d 63"/>
+ <Event DeltaTimeTicks="122" Type="MIDI" Id="80" Label="NoteOff" Data="4d 4d"/>
+ <Event DeltaTimeTicks="118" Type="MIDI" Id="90" Label="NoteOn" Data="4b 35"/>
+ <Event DeltaTimeTicks="124" Type="MIDI" Id="80" Label="NoteOff" Data="4b 04"/>
+ <Event DeltaTimeTicks="116" Type="MIDI" Id="90" Label="NoteOn" Data="48 63"/>
+ <Event DeltaTimeTicks="199" Type="MIDI" Id="80" Label="NoteOff" Data="48 1e"/>
+ <Event DeltaTimeTicks="521" Type="MIDI" Id="90" Label="NoteOn" Data="48 63"/>
+ <Event DeltaTimeTicks="128" Type="MIDI" Id="80" Label="NoteOff" Data="48 15"/>
+ <Event DeltaTimeTicks="112" Type="MIDI" Id="90" Label="NoteOn" Data="48 6a"/>
+ <Event DeltaTimeTicks="166" Type="MIDI" Id="80" Label="NoteOff" Data="48 3b"/>
+ <Event DeltaTimeTicks="74" Type="MIDI" Id="90" Label="NoteOn" Data="50 55"/>
+ <Event DeltaTimeTicks="121" Type="MIDI" Id="80" Label="NoteOff" Data="50 06"/>
+ <Event DeltaTimeTicks="119" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="157" Type="MIDI" Id="80" Label="NoteOff" Data="4f 0c"/>
+ <Event DeltaTimeTicks="83" Type="MIDI" Id="90" Label="NoteOn" Data="4d 5b"/>
+ <Event DeltaTimeTicks="94" Type="MIDI" Id="80" Label="NoteOff" Data="4d 54"/>
+ <Event DeltaTimeTicks="26" Type="MIDI" Id="90" Label="NoteOn" Data="4a 54"/>
+ <Event DeltaTimeTicks="109" Type="MIDI" Id="80" Label="NoteOff" Data="4a 6a"/>
+ <Event DeltaTimeTicks="11" Type="MIDI" Id="90" Label="NoteOn" Data="52 69"/>
+ <Event DeltaTimeTicks="134" Type="MIDI" Id="80" Label="NoteOff" Data="52 0a"/>
+ <Event DeltaTimeTicks="106" Type="MIDI" Id="90" Label="NoteOn" Data="52 5f"/>
+ <Event DeltaTimeTicks="124" Type="MIDI" Id="80" Label="NoteOff" Data="52 1f"/>
+ <Event DeltaTimeTicks="116" Type="MIDI" Id="90" Label="NoteOn" Data="52 69"/>
+ <Event DeltaTimeTicks="102" Type="MIDI" Id="80" Label="NoteOff" Data="52 4c"/>
+ <Event DeltaTimeTicks="138" Type="MIDI" Id="90" Label="NoteOn" Data="52 72"/>
+ <Event DeltaTimeTicks="44" Type="MIDI" Id="80" Label="NoteOff" Data="52 72"/>
+ <Event DeltaTimeTicks="76" Type="MIDI" Id="90" Label="NoteOn" Data="52 43"/>
+ <Event DeltaTimeTicks="101" Type="MIDI" Id="80" Label="NoteOff" Data="52 35"/>
+ <Event DeltaTimeTicks="19" Type="MIDI" Id="90" Label="NoteOn" Data="54 6a"/>
+ <Event DeltaTimeTicks="132" Type="MIDI" Id="80" Label="NoteOff" Data="54 31"/>
+ <Event DeltaTimeTicks="108" Type="MIDI" Id="90" Label="NoteOn" Data="52 69"/>
+ <Event DeltaTimeTicks="104" Type="MIDI" Id="80" Label="NoteOff" Data="52 26"/>
+ <Event DeltaTimeTicks="136" Type="MIDI" Id="90" Label="NoteOn" Data="50 5f"/>
+ <Event DeltaTimeTicks="144" Type="MIDI" Id="80" Label="NoteOff" Data="50 19"/>
+ <Event DeltaTimeTicks="96" Type="MIDI" Id="90" Label="NoteOn" Data="4d 5b"/>
+ <Event DeltaTimeTicks="140" Type="MIDI" Id="80" Label="NoteOff" Data="4d 54"/>
+ <Event DeltaTimeTicks="100" Type="MIDI" Id="90" Label="NoteOn" Data="4b 5f"/>
+ <Event DeltaTimeTicks="157" Type="MIDI" Id="80" Label="NoteOff" Data="4b 7f"/>
+ <Event DeltaTimeTicks="323" Type="MIDI" Id="90" Label="NoteOn" Data="52 7f"/>
+ <Event DeltaTimeTicks="226" Type="MIDI" Id="80" Label="NoteOff" Data="52 6a"/>
+ <Event DeltaTimeTicks="254" Type="Meta" Id="ff" Label="TempoSet" Data="51 03 0b 07 cb" MetaId="51"/>
+ <Event DeltaTimeTicks="15" Type="MIDI" Id="90" Label="NoteOn" Data="4f 40"/>
+ <Event DeltaTimeTicks="115" Type="MIDI" Id="80" Label="NoteOff" Data="4f 31"/>
+ <Event DeltaTimeTicks="96" Type="MIDI" Id="90" Label="NoteOn" Data="4f 3b"/>
+ <Event DeltaTimeTicks="133" Type="MIDI" Id="80" Label="NoteOff" Data="4f 15"/>
+ <Event DeltaTimeTicks="119" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="203" Type="MIDI" Id="80" Label="NoteOff" Data="4f 26"/>
+ <Event DeltaTimeTicks="264" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="108" Type="MIDI" Id="80" Label="NoteOff" Data="4f 2d"/>
+ <Event DeltaTimeTicks="148" Type="MIDI" Id="90" Label="NoteOn" Data="4f 6a"/>
+ <Event DeltaTimeTicks="117" Type="MIDI" Id="80" Label="NoteOff" Data="4f 20"/>
+ <Event DeltaTimeTicks="123" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="175" Type="MIDI" Id="80" Label="NoteOff" Data="4f 63"/>
+ <Event DeltaTimeTicks="305" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="136" Type="MIDI" Id="80" Label="NoteOff" Data="4f 54"/>
+ <Event DeltaTimeTicks="102" Type="MIDI" Id="90" Label="NoteOn" Data="52 5f"/>
+ <Event DeltaTimeTicks="176" Type="MIDI" Id="80" Label="NoteOff" Data="52 0d"/>
+ <Event DeltaTimeTicks="64" Type="MIDI" Id="90" Label="NoteOn" Data="4b 5f"/>
+ <Event DeltaTimeTicks="247" Type="MIDI" Id="80" Label="NoteOff" Data="4b 7f"/>
+ <Event DeltaTimeTicks="114" Type="MIDI" Id="90" Label="NoteOn" Data="4d 4d"/>
+ <Event DeltaTimeTicks="89" Type="MIDI" Id="80" Label="NoteOff" Data="4d 78"/>
+ <Event DeltaTimeTicks="27" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="481" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="487" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="135" Type="MIDI" Id="80" Label="NoteOff" Data="50 43"/>
+ <Event DeltaTimeTicks="100" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="118" Type="MIDI" Id="80" Label="NoteOff" Data="50 55"/>
+ <Event DeltaTimeTicks="129" Type="MIDI" Id="90" Label="NoteOn" Data="50 7a"/>
+ <Event DeltaTimeTicks="284" Type="MIDI" Id="80" Label="NoteOff" Data="50 7a"/>
+ <Event DeltaTimeTicks="95" Type="MIDI" Id="90" Label="NoteOn" Data="50 69"/>
+ <Event DeltaTimeTicks="52" Type="MIDI" Id="80" Label="NoteOff" Data="50 7a"/>
+ <Event DeltaTimeTicks="53" Type="MIDI" Id="90" Label="NoteOn" Data="50 72"/>
+ <Event DeltaTimeTicks="154" Type="MIDI" Id="80" Label="NoteOff" Data="50 7f"/>
+ <Event DeltaTimeTicks="72" Type="MIDI" Id="90" Label="NoteOn" Data="4f 5b"/>
+ <Event DeltaTimeTicks="132" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="106" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="166" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="73" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="61" Type="MIDI" Id="80" Label="NoteOff" Data="4f 7f"/>
+ <Event DeltaTimeTicks="47" Type="MIDI" Id="90" Label="NoteOn" Data="4f 63"/>
+ <Event DeltaTimeTicks="59" Type="MIDI" Id="80" Label="NoteOff" Data="4f 7f"/>
+ <Event DeltaTimeTicks="68" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="143" Type="MIDI" Id="80" Label="NoteOff" Data="4f 71"/>
+ <Event DeltaTimeTicks="92" Type="MIDI" Id="90" Label="NoteOn" Data="4d 78"/>
+ <Event DeltaTimeTicks="117" Type="MIDI" Id="80" Label="NoteOff" Data="4d 63"/>
+ <Event DeltaTimeTicks="112" Type="MIDI" Id="90" Label="NoteOn" Data="4d 78"/>
+ <Event DeltaTimeTicks="160" Type="MIDI" Id="80" Label="NoteOff" Data="4d 5b"/>
+ <Event DeltaTimeTicks="97" Type="MIDI" Id="90" Label="NoteOn" Data="4f 71"/>
+ <Event DeltaTimeTicks="107" Type="MIDI" Id="80" Label="NoteOff" Data="4f 78"/>
+ <Event DeltaTimeTicks="142" Type="MIDI" Id="90" Label="NoteOn" Data="4d 7c"/>
+ <Event DeltaTimeTicks="275" Type="MIDI" Id="80" Label="NoteOff" Data="4d 5b"/>
+ <Event DeltaTimeTicks="202" Type="MIDI" Id="90" Label="NoteOn" Data="52 7a"/>
+ <Event DeltaTimeTicks="242" Type="MIDI" Id="80" Label="NoteOff" Data="52 7a"/>
+ <Event DeltaTimeTicks="236" Type="MIDI" Id="90" Label="NoteOn" Data="4f 40"/>
+ <Event DeltaTimeTicks="7" Type="Meta" Id="ff" Label="TempoSet" Data="51 03 08 1a 1d" MetaId="51"/>
+ <Event DeltaTimeTicks="151" Type="MIDI" Id="80" Label="NoteOff" Data="4f 23"/>
+ <Event DeltaTimeTicks="189" Type="MIDI" Id="90" Label="NoteOn" Data="4f 40"/>
+ <Event DeltaTimeTicks="134" Type="MIDI" Id="80" Label="NoteOff" Data="4f 23"/>
+ <Event DeltaTimeTicks="120" Type="MIDI" Id="90" Label="NoteOn" Data="4f 46"/>
+ <Event DeltaTimeTicks="155" Type="MIDI" Id="80" Label="NoteOff" Data="4f 14"/>
+ <Event DeltaTimeTicks="375" Type="MIDI" Id="90" Label="NoteOn" Data="4f 40"/>
+ <Event DeltaTimeTicks="141" Type="MIDI" Id="80" Label="NoteOff" Data="4f 29"/>
+ <Event DeltaTimeTicks="133" Type="MIDI" Id="90" Label="NoteOn" Data="4f 40"/>
+ <Event DeltaTimeTicks="140" Type="MIDI" Id="80" Label="NoteOff" Data="4f 1a"/>
+ <Event DeltaTimeTicks="122" Type="MIDI" Id="90" Label="NoteOn" Data="4f 4d"/>
+ <Event DeltaTimeTicks="174" Type="MIDI" Id="80" Label="NoteOff" Data="4f 23"/>
+ <Event DeltaTimeTicks="354" Type="MIDI" Id="90" Label="NoteOn" Data="4f 4d"/>
+ <Event DeltaTimeTicks="135" Type="MIDI" Id="80" Label="NoteOff" Data="4f 40"/>
+ <Event DeltaTimeTicks="130" Type="MIDI" Id="90" Label="NoteOn" Data="52 3c"/>
+ <Event DeltaTimeTicks="122" Type="MIDI" Id="80" Label="NoteOff" Data="52 05"/>
+ <Event DeltaTimeTicks="166" Type="MIDI" Id="90" Label="NoteOn" Data="4b 2a"/>
+ <Event DeltaTimeTicks="270" Type="MIDI" Id="80" Label="NoteOff" Data="4b 0d"/>
+ <Event DeltaTimeTicks="121" Type="MIDI" Id="90" Label="NoteOn" Data="4d 4d"/>
+ <Event DeltaTimeTicks="127" Type="MIDI" Id="80" Label="NoteOff" Data="4d 78"/>
+ <Event DeltaTimeTicks="9" Type="MIDI" Id="90" Label="NoteOn" Data="4f 54"/>
+ <Event DeltaTimeTicks="396" Type="MIDI" Id="80" Label="NoteOff" Data="4f 54"/>
+ <Event DeltaTimeTicks="691" Type="MIDI" Id="90" Label="NoteOn" Data="50 35"/>
+ <Event DeltaTimeTicks="149" Type="MIDI" Id="80" Label="NoteOff" Data="50 07"/>
+ <Event DeltaTimeTicks="104" Type="MIDI" Id="90" Label="NoteOn" Data="50 1f"/>
+ <Event DeltaTimeTicks="136" Type="MIDI" Id="80" Label="NoteOff" Data="50 0c"/>
+ <Event DeltaTimeTicks="126" Type="MIDI" Id="90" Label="NoteOn" Data="50 2a"/>
+ <Event DeltaTimeTicks="276" Type="MIDI" Id="80" Label="NoteOff" Data="50 04"/>
+ <Event DeltaTimeTicks="134" Type="MIDI" Id="90" Label="NoteOn" Data="50 22"/>
+ <Event DeltaTimeTicks="88" Type="MIDI" Id="80" Label="NoteOff" Data="50 1f"/>
+ <Event DeltaTimeTicks="48" Type="MIDI" Id="90" Label="NoteOn" Data="50 2a"/>
+ <Event DeltaTimeTicks="159" Type="MIDI" Id="80" Label="NoteOff" Data="50 0f"/>
+ <Event DeltaTimeTicks="106" Type="MIDI" Id="90" Label="NoteOn" Data="4f 5b"/>
+ <Event DeltaTimeTicks="168" Type="MIDI" Id="80" Label="NoteOff" Data="4f 20"/>
+ <Event DeltaTimeTicks="103" Type="MIDI" Id="90" Label="NoteOn" Data="4f 4d"/>
+ <Event DeltaTimeTicks="158" Type="MIDI" Id="80" Label="NoteOff" Data="4f 23"/>
+ <Event DeltaTimeTicks="104" Type="MIDI" Id="90" Label="NoteOn" Data="4f 46"/>
+ <Event DeltaTimeTicks="90" Type="MIDI" Id="80" Label="NoteOff" Data="4f 40"/>
+ <Event DeltaTimeTicks="57" Type="MIDI" Id="90" Label="NoteOn" Data="4f 36"/>
+ <Event DeltaTimeTicks="88" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="31" Type="Meta" Id="ff" Label="TempoSet" Data="51 03 0d 76 b0" MetaId="51"/>
+ <Event DeltaTimeTicks="3" Type="MIDI" Id="90" Label="NoteOn" Data="52 72"/>
+ <Event DeltaTimeTicks="129" Type="MIDI" Id="80" Label="NoteOff" Data="52 7f"/>
+ <Event DeltaTimeTicks="95" Type="MIDI" Id="90" Label="NoteOn" Data="52 72"/>
+ <Event DeltaTimeTicks="121" Type="MIDI" Id="80" Label="NoteOff" Data="52 72"/>
+ <Event DeltaTimeTicks="113" Type="MIDI" Id="90" Label="NoteOn" Data="4f 78"/>
+ <Event DeltaTimeTicks="128" Type="MIDI" Id="80" Label="NoteOff" Data="4f 5b"/>
+ <Event DeltaTimeTicks="114" Type="MIDI" Id="90" Label="NoteOn" Data="4d 7c"/>
+ <Event DeltaTimeTicks="126" Type="MIDI" Id="80" Label="NoteOff" Data="4d 78"/>
+ <Event DeltaTimeTicks="126" Type="MIDI" Id="90" Label="NoteOn" Data="4b 7a"/>
+ <Event DeltaTimeTicks="246" Type="MIDI" Id="80" Label="NoteOff" Data="4b 69"/>
+ <Event DeltaTimeTicks="0" Type="Meta" Id="ff" Label="EndOfTrack" Data="2f 00" MetaId="2f"/>
+ </TrackChunk>
+</MidiFile>
diff --git a/vfg/src/Asterisk.cpp b/vfg/src/Asterisk.cpp
index 8a2309e..5392ade 100755
--- a/vfg/src/Asterisk.cpp
+++ b/vfg/src/Asterisk.cpp
@@ -47,7 +47,7 @@ int Asterisk::update(){
udpConnection.Receive(udpMessage,10000);
string msg=udpMessage;
if(msg!=""){
- if (msg.length()>2) {
+ if (msg.length()>3) {
//printf("status msg: %s\n",msg.c_str());
if (msg.substr(0,5)=="Local") {
state=PLAYING;
diff --git a/vfg/src/music.cpp b/vfg/src/music.cpp
index 359b21d..b5b584c 100755
--- a/vfg/src/music.cpp
+++ b/vfg/src/music.cpp
@@ -28,7 +28,7 @@ void lyricscore::draw(){
}
//----------------------------------------------------------------------------------------------------------
musicscore::musicscore() {
- timeframe=2000;
+ timeframe=5000;
missedLast=false;
nowpoint=1.0f;
missedNote=-1;
@@ -124,7 +124,7 @@ void musicscore::parseMidi(string filename){
iter1--;
printf("processed %s: length %f, %i notes in %f seconds\n",filename.c_str(),((float)(iter1->first+iter1->second->duration)*.001f),notes.size(),ofGetElapsedTimef()-wt);
}
-void musicscore::makeFlakes(int threshStart,int threshEnd){
+void musicscore::makeFlakes(int threshStart,int threshEnd,levelscore *levels){
flakes.clear();
//decimate notes to generate flakes that can be interacted with
map<int,note*>::iterator iter;
@@ -137,12 +137,12 @@ void musicscore::makeFlakes(int threshStart,int threshEnd){
flakes[notes.begin()->first]->puppet=snowflakes[notemap(lastNote->num)];
for (iter = notes.begin(); iter != notes.end(); iter++) {
float songPos=((float)iter->first)/songDuration;
- if ((notemap(iter->second->num)!=notemap(lastNote->num))||(iter->first-lastTime>((songPos*threshEnd)+((1.0f-songPos)*threshStart)))) {
+ if ((levels->nextLevelTime(iter->first)>2000)&&((notemap(iter->second->num)!=notemap(lastNote->num))||(iter->first-lastTime>((songPos*threshEnd)+((1.0f-songPos)*threshStart))))) {
flakes[iter->first]=new flake(iter->second->num,iter->second->velocity,iter->second->duration);
flakes[iter->first]->puppet=snowflakes[notemap(iter->second->num)];
+ lastNote=iter->second;
+ lastTime=iter->first;
}
- lastNote=iter->second;
- lastTime=iter->first;
}
missedFlake=flakes.end();
missedNote=-1;
@@ -210,7 +210,7 @@ void musicscore::drawFlakes(levelscore *levels) {
}
missedLast=!iter->second->activated;
}
- //at this point missed points to the latest unactivated flake in the level
+ //at this point missed points to the latest unactivated flake in the level if there is one
if ((missed!=flakes.end())&&(missedFlake!=missed)) {
missedFlake=missed;
missedNote=notemap(missed->second->num);
@@ -237,7 +237,7 @@ song::song(string backfile,string melfile,string musfile,string lyricfile,string
lyrics.load(lyricfile);
levels.load(levelfile);
isPlaying=false;
- keyThresh=400;
+ keyThresh=500;
notes.setNowpoint(0.8f);
}
void song::setTimeframe(int millis) {notes.setTimeframe(millis);}
@@ -253,7 +253,7 @@ void song::play() {
notes.start();
lyrics.start();
isPlaying=true;
- notes.makeFlakes(fThreshStart,fThreshEnd);
+ notes.makeFlakes(fThreshStart,fThreshEnd,&levels);
}
void song::stop() {
backing.stop();
@@ -266,7 +266,7 @@ void song::preRoll(long preroll) {
lyrics.start(startTime);
isPreroll=true;
isPlaying=true;
- notes.makeFlakes(fThreshStart,fThreshEnd);
+ notes.makeFlakes(fThreshStart,fThreshEnd,&levels);
}
void song::drawNotes(){
notes.drawNotes(&levels);
@@ -307,4 +307,7 @@ int song::hitNote(){
int n=notes.hitNote;
notes.hitNote=-1;
return n;
+}
+int song::getLevel(long time){
+ return levels.getLevel(time-startTime);
}
diff --git a/vfg/src/music.h b/vfg/src/music.h
index 7e54292..1cb92ff 100755
--- a/vfg/src/music.h
+++ b/vfg/src/music.h
@@ -17,14 +17,22 @@ class levelscore {
if( !XML.loadFile(filename) ){
printf("unable to load %s check data/ folder\n",filename.c_str());
}else{
+ int multiplier=1000/XML.getAttribute("VFxmas", "timebase",1000,0);
if(XML.pushTag("VFxmas")) {
for (int i=0;i<XML.getNumTags("Level");i++) {
- levels[XML.getAttribute("Level", "Time",0,i)]=XML.getAttribute("Level", "Lives",0,i);
+ levels[XML.getAttribute("Level", "Time",0,i)*multiplier]=XML.getAttribute("Level", "Lives",0,i);
}
printf("processed %s: %i difficulty levels \n",filename.c_str(),levels.size());
}
}
}
+ void test() {
+ map<int,int>::iterator iter=levels.end();
+ iter--;
+ for (int i=0;i<iter->first;i+=500) {
+ printf("time %i: level %i, nextleveltime %i\n",i,getLevel(i), nextLevelTime(i));
+ }
+ }
int getLives(int time) {
map<int,int>::iterator iter;
int lives=0;
@@ -52,6 +60,14 @@ class levelscore {
}
return bound;
}
+ int nextLevelTime(int time) {
+ map<int,int>::iterator iter;
+ int level=-1;
+ for (iter = levels.begin(); iter != levels.end(); ++iter) {
+ if (iter->first>time) return iter->first-time;
+ }
+ return 2<<20; // a big number
+ }
private:
map<int,int> levels;
};
@@ -115,7 +131,7 @@ class lyricscore: public score {
if( !XML.loadFile(filename) ){
printf("unable to load %s check data/ folder\n",filename.c_str());
}else{
- int multiplier=1000/XML.getAttribute("VFxmas", "timebase",0,0);
+ int multiplier=1000/XML.getAttribute("VFxmas", "timebase",1000,0);
if(XML.pushTag("VFxmas")) {
for (int i=0;i<XML.getNumTags("Lyric");i++) {
int in=XML.getAttribute("Lyric", "In",0,i)*multiplier;
@@ -144,7 +160,7 @@ class musicscore: public score {
void drawNotes(levelscore *levels);
void drawFlakes(levelscore *levels);
void playerControl(int key,int threshold);
- void makeFlakes(int threshStart,int threshEnd);
+ void makeFlakes(int threshStart,int threshEnd,levelscore *levels);
int missedFlakes;
int missedNote;
@@ -178,6 +194,7 @@ class song {
int hitNote();
bool isPlaying;
void playerControl(int key);
+ int getLevel(long time);
private:
ofSoundPlayer backing;
ofSoundPlayer melody;
diff --git a/vfg/src/testApp.cpp b/vfg/src/testApp.cpp
index ab044a9..4385593 100755
--- a/vfg/src/testApp.cpp
+++ b/vfg/src/testApp.cpp
@@ -1,30 +1,32 @@
#include "testApp.h"
-
+//bug in codeblocks: it sometimes checks for existence of executable from previous project
//--------------------------------------------------------------
void testApp::setup(){
- testsong=new song("VODA_MUS_DeckTheHalls-Backing_v.1.5.mp3","VODA_MUS_DeckTheHalls-Melody_v.1.5.mp3","MIDI_DeckTheHalls_MIDI.1.5.xml","Lyrics_DeckTheHalls.1.5.xml","Levels_DeckTheHalls.1.5.xml");
- testsong->setTimeframe(2500);
+ //testsong=new song("VODA_MUS_DeckTheHalls-Backing_v.1.5.mp3","VODA_MUS_DeckTheHalls-Melody_v.1.5.mp3","MIDI_DeckTheHalls_MIDI.1.5.xml","Lyrics_DeckTheHalls.1.5.xml","Levels_DeckTheHalls.1.5.xml");
+ testsong=new song("JingleBells_v.4.0/VODA_MUS_JingleBells_Backing_v.4.0.mp3","JingleBells_v.4.0/VODA_MUS_JingleBells_Melody_v.4.0.mp3","VODA_MUS_JingleBells_MIDI_v.4.0.xml","Lyrics_JingleBells.4.0.xml","Levels_JingleBells.4.0.xml");
+
+ testsong->setTimeframe(3000);
testsong->setFlakeThresh(1000,100);
ofSetBackgroundAuto(false);
ofBackground(0,0,0);
- /*
+
for (int i=0;i<3;i++) penguins.push_back(Animal());
penguins[0].load("Penguin-Blue.xml");
penguins[1].load("Penguin-Purple.xml");
penguins[2].load("Penguin-Green.xml");
- for (int i=0;i<3;i++) raccoons.push_back(Animal());
+ for (int i=0;i<3;i++) raccoons.push_back(Animal());
raccoons[0].load("Raccoon-Blue.xml");
raccoons[1].load("Raccoon-Purple.xml");
raccoons[2].load("Raccoon-Green.xml");
- */
- loadanimals("Raccoons");
- playanimal =&playanimals;
+
+ //loadanimals("Raccoons");
+ playanimal =&penguins;
//testpenguin.load("Penguin-Blue.xml");
//debug: commented out: 436m 257m
@@ -41,8 +43,9 @@ void testApp::setup(){
showFPS=false;
-}
+}
+/*
void testApp::loadanimals(string which) {
playanimals.clear();
@@ -60,6 +63,7 @@ void testApp::loadanimals(string which) {
}
}
+*/
void testApp::exit(){
delete testsong;
@@ -69,11 +73,22 @@ void testApp::exit(){
void testApp::update(){
int ret=game.update();
if (ret==1000) {
+ currentlevel=0;
testsong->preRoll(250);
}
- else if (ret>0) {
- testsong->playerControl(ret);
- (*playanimal)[ret-1].playNow("Clap");
+ else if (ret>48&&ret<52) {
+ testsong->playerControl(ret-48);
+ (*playanimal)[ret-49].playNow("Clap");
+ }
+ if (testsong->isPlaying&&testsong->getLevel(ofGetElapsedTimeMillis()+2000)>currentlevel) {
+ int anim=ofRandom(1.9999); //this gives a binary random number
+ for (int i=0;i<3;i++) {
+ if (anim) (*playanimal)[i].playNow("Happy");
+ else (*playanimal)[i].playNow("Jump");
+ anim=(anim+1)%2;
+ }
+ //printf("finished level %i!\n",currentlevel);
+ currentlevel++;
}
for (int i=0;i<3;i++) {
(*playanimal)[i].update();
@@ -121,6 +136,7 @@ void testApp::keyPressed(int key){
switch (key) {
case ' ':
if (!testsong->isPlaying) {
+ currentlevel=0;
testsong->preRoll(250);
}
break;
@@ -137,10 +153,12 @@ void testApp::keyPressed(int key){
showFPS=!showFPS;
break;
case 'r':
- loadanimals("Raccoons");
+ //loadanimals("Raccoons");
+ playanimal =&raccoons;
break;
case 'p':
- loadanimals("Penguins");
+ //loadanimals("Penguins");
+ playanimal =&penguins;
break;
}
diff --git a/vfg/src/testApp.h b/vfg/src/testApp.h
index 4ab807f..2518b55 100755
--- a/vfg/src/testApp.h
+++ b/vfg/src/testApp.h
@@ -73,23 +73,24 @@ class testApp : public ofBaseApp{
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
- void loadanimals(string which);
+ //void loadanimals(string which);
ofVideoPlayer background;
ofImage vignette;
song *testsong;
- /*
+
vector<Animal> penguins;
vector<Animal> raccoons;
- */
- vector<Animal> playanimals;
+
+ //vector<Animal> playanimals;
vector<Animal>* playanimal;
Puppet testpenguin;
+ int currentlevel;
Asterisk game;
diff --git a/vpn/notes.txt b/vpn/notes.txt
index 04e07a3..6cb0e6c 100755
--- a/vpn/notes.txt
+++ b/vpn/notes.txt
@@ -1,5 +1,6 @@
sudo openvpn --config server.conf
01-5548000
+1800-804444
ssh 80.93.22.22 'sudo /usr/sbin/asterisk -rx "database put GAME passcode 89889"'
ssh 80.93.22.22 'sudo /usr/sbin/asterisk -rx "database put GAME ip 4.4.4.4"'
-ssh 80.93.22.22 'sudo /usr/sbin/asterisk -rx "devstate change Custom:GAME NOT_INUSE"' \ No newline at end of file
+ssh 80.93.22.22 'sudo /usr/sbin/asterisk -rx "devstate change Custom:GAME NOT_INUSE"'