changeset 461:a2ae4213deb7

implemented adjustable wave-duty for the two pitch channels.
author Robert McIntyre <rlm@mit.edu>
date Fri, 04 May 2012 03:01:28 -0500
parents 497b47dd180e
children 32375de697e5
files clojure/com/aurellem/run/music.clj music/Friendship is Magic (MLP Theme Song).rg music/pony-title.csv music/pony-title.mid
diffstat 4 files changed, 571 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
     1.1 --- a/clojure/com/aurellem/run/music.clj	Fri May 04 02:41:45 2012 -0500
     1.2 +++ b/clojure/com/aurellem/run/music.clj	Fri May 04 03:01:28 2012 -0500
     1.3 @@ -177,8 +177,9 @@
     1.4    "Read the message which starts at the current value of HL and do
     1.5     what it says. Duration is left in A, and HL is advanced
     1.6     appropraitely."
     1.7 -  ([] (do-message 0x16))
     1.8 -  ([sound-base-address]
     1.9 +  ([] (do-message 0x16 1))
    1.10 +  ([sound-base-address wave-duty]
    1.11 +     (assert (<= 0 wave-duty 3))
    1.12       (let [switch
    1.13             [0x2A ;; load message code into A, increment HL
    1.14              
    1.15 @@ -190,7 +191,11 @@
    1.16              :note-length]
    1.17  
    1.18             play-note
    1.19 -           [0x2A   ;; load volume/frequency-high info
    1.20 +           [0x3E ;; set wave-duty
    1.21 +            (bit-shift-left wave-duty 6)
    1.22 +            0xE0
    1.23 +            sound-base-address
    1.24 +            0x2A   ;; load volume/frequency-high info
    1.25              0xF5   ;; push A
    1.26              0xE6
    1.27              (Integer/parseInt "11110000" 2) ;; volume mask
    1.28 @@ -233,7 +238,7 @@
    1.29  ;;    0x2A   ;; load duration
    1.30  ;;    ]) 
    1.31  
    1.32 -(defn music-step [sound-base-address]
    1.33 +(defn music-step [sound-base-address wave-duty]
    1.34    ;; C == current-ticks
    1.35    ;; A == desired-ticks
    1.36    
    1.37 @@ -262,9 +267,9 @@
    1.38      ;;   go to next note ; set current set ticks to 0.
    1.39  
    1.40      0x20
    1.41 -    (+ (count (do-message 0)) 2)
    1.42 +    (+ (count (do-message 0 0)) 2)
    1.43  
    1.44 -    (do-message sound-base-address)
    1.45 +    (do-message sound-base-address wave-duty)
    1.46      
    1.47      0x0E
    1.48      0x00 ;; 0->C (current-ticks)
    1.49 @@ -280,7 +285,7 @@
    1.50  (def music-1 0x11)
    1.51  (def music-2 0x16)
    1.52  
    1.53 -(defn music-kernel []
    1.54 +(defn music-kernel [wave-duty-1 wave-duty-2]
    1.55    (flatten
    1.56     [;; global initilization section
    1.57      (clear-music-registers)
    1.58 @@ -324,19 +329,19 @@
    1.59  
    1.60      0xE8 ;; SP + 6; activate frame 1
    1.61      6
    1.62 -    (music-step music-1)
    1.63 +    (music-step music-1 wave-duty-1)
    1.64      ;;(repeat (count (music-step music-1)) 0x00)
    1.65      
    1.66      0xE8 ;; SP - 6; activate frame 2
    1.67      (->signed-8-bit -6)
    1.68      ;;(repeat (count (music-step music-2)) 0x00)
    1.69 -    (music-step music-2)
    1.70 +    (music-step music-2 wave-duty-2)
    1.71      
    1.72  
    1.73      0x18
    1.74      (->signed-8-bit (+
    1.75                       ;; two music-steps
    1.76 -                     (- (* 2 (count (music-step 0))))
    1.77 +                     (- (* 2 (count (music-step 0 0))))
    1.78                       -2 ;; this jump instruction
    1.79                       -2 ;; activate frame 1
    1.80                       -2 ;; activate frame 2
    1.81 @@ -468,14 +473,19 @@
    1.82          track-2-target 0xB000
    1.83          program-target 0xC000
    1.84          mini-midi (midi->mini-midi midi-file)
    1.85 -        long-silence (flatten (note-codes 20 0 9001))]
    1.86 +        long-silence (flatten (note-codes 20 0 9001))
    1.87 +        wave-duty-1 2
    1.88 +        wave-duty-2 2
    1.89 +        ]
    1.90      
    1.91      (-> (second (music-base))
    1.92          (set-memory-range track-1-target long-silence)
    1.93          (set-memory-range track-2-target long-silence)
    1.94          (set-memory-range track-1-target (:track-1 mini-midi))
    1.95          (set-memory-range track-2-target (:track-2 mini-midi))
    1.96 -        (set-memory-range program-target (music-kernel))
    1.97 +        (set-memory-range
    1.98 +         program-target
    1.99 +         (music-kernel wave-duty-1 wave-duty-2))
   1.100          (PC! program-target))))
   1.101  
   1.102  (def C4 (partial note-codes 261.63))
     2.1 Binary file music/Friendship is Magic (MLP Theme Song).rg has changed
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/music/pony-title.csv	Fri May 04 03:01:28 2012 -0500
     3.3 @@ -0,0 +1,549 @@
     3.4 +0, 0, Header, 1, 4, 480
     3.5 +1, 0, Start_track
     3.6 +1, 0, Copyright_t, "rlm"
     3.7 +1, 0, Cue_point_t, "Created by Rosegarden"
     3.8 +1, 0, Cue_point_t, "http://www.rosegardenmusic.com/"
     3.9 +1, 0, Tempo, 250000
    3.10 +1, 0, Time_signature, 4, 2, 24, 8
    3.11 +1, 55680, End_track
    3.12 +2, 0, Start_track
    3.13 +2, 0, Title_t, "main melody"
    3.14 +2, 0, Control_c, 0, 91, 0
    3.15 +2, 0, Control_c, 0, 10, 64
    3.16 +2, 0, Control_c, 0, 7, 100
    3.17 +2, 0, Control_c, 0, 93, 0
    3.18 +2, 0, Control_c, 0, 7, 100
    3.19 +2, 0, Control_c, 0, 10, 64
    3.20 +2, 0, Note_on_c, 0, 66, 80
    3.21 +2, 0, Control_c, 0, 121, 0
    3.22 +2, 0, Control_c, 0, 93, 30
    3.23 +2, 0, Program_c, 0, 19
    3.24 +2, 0, Control_c, 0, 93, 30
    3.25 +2, 0, Control_c, 0, 91, 30
    3.26 +2, 0, Control_c, 0, 91, 30
    3.27 +2, 0, Control_c, 0, 7, 100
    3.28 +2, 0, Control_c, 0, 10, 64
    3.29 +2, 420, Note_on_c, 0, 69, 80
    3.30 +2, 420, Note_off_c, 0, 66, 127
    3.31 +2, 840, Note_on_c, 0, 66, 80
    3.32 +2, 840, Note_off_c, 0, 69, 127
    3.33 +2, 1260, Note_off_c, 0, 66, 127
    3.34 +2, 1260, Note_on_c, 0, 64, 80
    3.35 +2, 2100, Note_on_c, 0, 69, 80
    3.36 +2, 2100, Note_off_c, 0, 64, 127
    3.37 +2, 3360, Note_on_c, 0, 62, 80
    3.38 +2, 3360, Note_off_c, 0, 69, 127
    3.39 +2, 3780, Note_on_c, 0, 64, 80
    3.40 +2, 3780, Note_off_c, 0, 62, 127
    3.41 +2, 4200, Note_on_c, 0, 62, 80
    3.42 +2, 4200, Note_off_c, 0, 64, 127
    3.43 +2, 4620, Note_on_c, 0, 61, 80
    3.44 +2, 4620, Note_off_c, 0, 62, 127
    3.45 +2, 5460, Note_on_c, 0, 57, 80
    3.46 +2, 5460, Note_off_c, 0, 61, 127
    3.47 +2, 6720, Note_on_c, 0, 59, 80
    3.48 +2, 6720, Note_off_c, 0, 57, 127
    3.49 +2, 7560, Note_on_c, 0, 61, 80
    3.50 +2, 7560, Note_off_c, 0, 59, 127
    3.51 +2, 8400, Note_on_c, 0, 62, 80
    3.52 +2, 8400, Note_off_c, 0, 61, 127
    3.53 +2, 9240, Note_on_c, 0, 64, 80
    3.54 +2, 9240, Note_off_c, 0, 62, 127
    3.55 +2, 10080, Note_on_c, 0, 62, 80
    3.56 +2, 10080, Note_off_c, 0, 64, 127
    3.57 +2, 11040, Note_on_c, 0, 61, 80
    3.58 +2, 11040, Note_off_c, 0, 62, 127
    3.59 +2, 11280, Note_on_c, 0, 62, 80
    3.60 +2, 11280, Note_off_c, 0, 61, 127
    3.61 +2, 11760, Note_on_c, 0, 64, 80
    3.62 +2, 11760, Note_off_c, 0, 62, 127
    3.63 +2, 12240, Note_on_c, 0, 62, 80
    3.64 +2, 12240, Note_off_c, 0, 64, 127
    3.65 +2, 13920, Note_off_c, 0, 62, 127
    3.66 +2, 14160, Note_on_c, 0, 66, 80
    3.67 +2, 14280, Note_off_c, 0, 66, 127
    3.68 +2, 14400, Note_on_c, 0, 66, 80
    3.69 +2, 14520, Note_off_c, 0, 66, 127
    3.70 +2, 14640, Note_on_c, 0, 66, 80
    3.71 +2, 14760, Note_off_c, 0, 66, 127
    3.72 +2, 14880, Note_on_c, 0, 66, 80
    3.73 +2, 15360, Note_on_c, 0, 62, 80
    3.74 +2, 15360, Note_off_c, 0, 66, 127
    3.75 +2, 15600, Note_on_c, 0, 64, 80
    3.76 +2, 15600, Note_off_c, 0, 62, 127
    3.77 +2, 16080, Note_on_c, 0, 62, 80
    3.78 +2, 16080, Note_off_c, 0, 64, 127
    3.79 +2, 16560, Note_on_c, 0, 66, 80
    3.80 +2, 16560, Note_off_c, 0, 62, 127
    3.81 +2, 17280, Note_on_c, 0, 64, 80
    3.82 +2, 17280, Note_off_c, 0, 66, 127
    3.83 +2, 17760, Note_on_c, 0, 62, 80
    3.84 +2, 17760, Note_off_c, 0, 64, 127
    3.85 +2, 18720, Note_on_c, 0, 61, 80
    3.86 +2, 18720, Note_off_c, 0, 62, 127
    3.87 +2, 18960, Note_on_c, 0, 62, 80
    3.88 +2, 18960, Note_off_c, 0, 61, 127
    3.89 +2, 19440, Note_on_c, 0, 64, 80
    3.90 +2, 19440, Note_off_c, 0, 62, 127
    3.91 +2, 19920, Note_on_c, 0, 62, 80
    3.92 +2, 19920, Note_off_c, 0, 64, 127
    3.93 +2, 20760, Note_off_c, 0, 62, 127
    3.94 +2, 21120, Note_on_c, 0, 62, 80
    3.95 +2, 21360, Note_on_c, 0, 64, 80
    3.96 +2, 21360, Note_off_c, 0, 62, 127
    3.97 +2, 21600, Note_off_c, 0, 64, 127
    3.98 +2, 21600, Note_on_c, 0, 66, 80
    3.99 +2, 21840, Note_on_c, 0, 69, 80
   3.100 +2, 21840, Note_off_c, 0, 66, 127
   3.101 +2, 22320, Note_off_c, 0, 69, 127
   3.102 +2, 22510, Note_on_c, 0, 69, 80
   3.103 +2, 22990, Note_off_c, 0, 69, 127
   3.104 +2, 23040, Note_on_c, 0, 66, 80
   3.105 +2, 23280, Note_on_c, 0, 64, 80
   3.106 +2, 23280, Note_off_c, 0, 66, 127
   3.107 +2, 23760, Note_on_c, 0, 62, 80
   3.108 +2, 23760, Note_off_c, 0, 64, 127
   3.109 +2, 24000, Note_on_c, 0, 66, 80
   3.110 +2, 24000, Note_off_c, 0, 62, 127
   3.111 +2, 24480, Note_on_c, 0, 64, 80
   3.112 +2, 24480, Note_off_c, 0, 66, 127
   3.113 +2, 25440, Note_off_c, 0, 64, 127
   3.114 +2, 25920, Note_on_c, 0, 62, 80
   3.115 +2, 26040, Note_off_c, 0, 62, 127
   3.116 +2, 26160, Note_on_c, 0, 62, 80
   3.117 +2, 26280, Note_off_c, 0, 62, 127
   3.118 +2, 26400, Note_on_c, 0, 62, 80
   3.119 +2, 26880, Note_on_c, 0, 66, 80
   3.120 +2, 26880, Note_off_c, 0, 62, 127
   3.121 +2, 27360, Note_on_c, 0, 69, 80
   3.122 +2, 27360, Note_off_c, 0, 66, 127
   3.123 +2, 27600, Note_on_c, 0, 71, 80
   3.124 +2, 27600, Note_off_c, 0, 69, 127
   3.125 +2, 28080, Note_on_c, 0, 69, 80
   3.126 +2, 28080, Note_off_c, 0, 71, 127
   3.127 +2, 29040, Note_on_c, 0, 64, 80
   3.128 +2, 29040, Note_off_c, 0, 69, 127
   3.129 +2, 29160, Note_off_c, 0, 64, 127
   3.130 +2, 29280, Note_on_c, 0, 64, 80
   3.131 +2, 29400, Note_off_c, 0, 64, 127
   3.132 +2, 29520, Note_on_c, 0, 64, 80
   3.133 +2, 29640, Note_off_c, 0, 64, 127
   3.134 +2, 29760, Note_on_c, 0, 64, 80
   3.135 +2, 30000, Note_off_c, 0, 64, 127
   3.136 +2, 30240, Note_on_c, 0, 64, 80
   3.137 +2, 30480, Note_off_c, 0, 64, 127
   3.138 +2, 30720, Note_on_c, 0, 64, 80
   3.139 +2, 30960, Note_off_c, 0, 64, 127
   3.140 +2, 31200, Note_on_c, 0, 64, 80
   3.141 +2, 31440, Note_on_c, 0, 66, 80
   3.142 +2, 31440, Note_off_c, 0, 64, 127
   3.143 +2, 31920, Note_on_c, 0, 64, 80
   3.144 +2, 31920, Note_off_c, 0, 66, 127
   3.145 +2, 32640, Note_off_c, 0, 64, 127
   3.146 +2, 33120, Note_on_c, 0, 62, 80
   3.147 +2, 33360, Note_on_c, 0, 64, 80
   3.148 +2, 33360, Note_off_c, 0, 62, 127
   3.149 +2, 33840, Note_on_c, 0, 66, 80
   3.150 +2, 33840, Note_off_c, 0, 64, 127
   3.151 +2, 34320, Note_on_c, 0, 62, 80
   3.152 +2, 34320, Note_off_c, 0, 66, 127
   3.153 +2, 34440, Note_off_c, 0, 62, 127
   3.154 +2, 34560, Note_on_c, 0, 62, 80
   3.155 +2, 34800, Note_on_c, 0, 66, 80
   3.156 +2, 34800, Note_off_c, 0, 62, 127
   3.157 +2, 35040, Note_on_c, 0, 69, 80
   3.158 +2, 35040, Note_off_c, 0, 66, 127
   3.159 +2, 35280, Note_off_c, 0, 69, 127
   3.160 +2, 35280, Note_on_c, 0, 71, 80
   3.161 +2, 35760, Note_on_c, 0, 69, 80
   3.162 +2, 35760, Note_off_c, 0, 71, 127
   3.163 +2, 36480, Note_on_c, 0, 62, 80
   3.164 +2, 36480, Note_off_c, 0, 69, 127
   3.165 +2, 36960, Note_off_c, 0, 62, 127
   3.166 +2, 36960, Note_on_c, 0, 64, 80
   3.167 +2, 37200, Note_off_c, 0, 64, 127
   3.168 +2, 37440, Note_on_c, 0, 64, 80
   3.169 +2, 37680, Note_off_c, 0, 64, 127
   3.170 +2, 37920, Note_on_c, 0, 64, 80
   3.171 +2, 38400, Note_on_c, 0, 66, 80
   3.172 +2, 38400, Note_off_c, 0, 64, 127
   3.173 +2, 38880, Note_on_c, 0, 71, 80
   3.174 +2, 38880, Note_off_c, 0, 66, 127
   3.175 +2, 39360, Note_on_c, 0, 69, 80
   3.176 +2, 39360, Note_off_c, 0, 71, 127
   3.177 +2, 39480, Note_off_c, 0, 69, 127
   3.178 +2, 39600, Note_on_c, 0, 69, 80
   3.179 +2, 39960, Note_off_c, 0, 69, 127
   3.180 +2, 40080, Note_on_c, 0, 67, 80
   3.181 +2, 40320, Note_on_c, 0, 69, 100
   3.182 +2, 40320, Note_off_c, 0, 67, 127
   3.183 +2, 40560, Note_off_c, 0, 69, 127
   3.184 +2, 40800, Note_on_c, 0, 62, 80
   3.185 +2, 41760, Note_on_c, 0, 61, 80
   3.186 +2, 41760, Note_off_c, 0, 62, 127
   3.187 +2, 42000, Note_off_c, 0, 61, 127
   3.188 +2, 42000, Note_on_c, 0, 62, 80
   3.189 +2, 42480, Note_on_c, 0, 64, 80
   3.190 +2, 42480, Note_off_c, 0, 62, 127
   3.191 +2, 42960, Note_on_c, 0, 62, 80
   3.192 +2, 42960, Note_off_c, 0, 64, 127
   3.193 +2, 43920, Note_off_c, 0, 62, 127
   3.194 +2, 44160, Note_on_c, 0, 62, 80
   3.195 +2, 44400, Note_off_c, 0, 62, 127
   3.196 +2, 44400, Note_on_c, 0, 64, 80
   3.197 +2, 44640, Note_off_c, 0, 64, 127
   3.198 +2, 44640, Note_on_c, 0, 66, 80
   3.199 +2, 45120, Note_on_c, 0, 62, 80
   3.200 +2, 45120, Note_off_c, 0, 66, 127
   3.201 +2, 45360, Note_on_c, 0, 67, 80
   3.202 +2, 45360, Note_off_c, 0, 62, 127
   3.203 +2, 46080, Note_on_c, 0, 66, 80
   3.204 +2, 46080, Note_off_c, 0, 67, 127
   3.205 +2, 46560, Note_on_c, 0, 64, 80
   3.206 +2, 46560, Note_off_c, 0, 66, 127
   3.207 +2, 47040, Note_off_c, 0, 64, 127
   3.208 +2, 47040, Note_on_c, 0, 62, 80
   3.209 +2, 47520, Note_on_c, 0, 66, 80
   3.210 +2, 47520, Note_off_c, 0, 62, 127
   3.211 +2, 48480, Note_off_c, 0, 66, 127
   3.212 +2, 48480, Note_on_c, 0, 62, 100
   3.213 +2, 55680, Note_off_c, 0, 62, 127
   3.214 +2, 55680, End_track
   3.215 +3, 0, Start_track
   3.216 +3, 0, Title_t, "base"
   3.217 +3, 0, Program_c, 1, 18
   3.218 +3, 0, Control_c, 1, 7, 100
   3.219 +3, 0, Control_c, 1, 91, 30
   3.220 +3, 0, Control_c, 1, 93, 0
   3.221 +3, 0, Control_c, 1, 10, 64
   3.222 +3, 0, Control_c, 1, 10, 64
   3.223 +3, 0, Control_c, 1, 121, 0
   3.224 +3, 0, Control_c, 1, 7, 100
   3.225 +3, 0, Control_c, 1, 91, 0
   3.226 +3, 0, Control_c, 1, 93, 30
   3.227 +3, 6720, Note_on_c, 1, 62, 100
   3.228 +3, 7560, Note_on_c, 1, 64, 100
   3.229 +3, 7560, Note_off_c, 1, 62, 127
   3.230 +3, 8400, Note_on_c, 1, 66, 100
   3.231 +3, 8400, Note_off_c, 1, 64, 127
   3.232 +3, 9240, Note_on_c, 1, 67, 100
   3.233 +3, 9240, Note_off_c, 1, 66, 127
   3.234 +3, 10080, Note_on_c, 1, 38, 80
   3.235 +3, 10080, Note_off_c, 1, 67, 127
   3.236 +3, 10800, Note_off_c, 1, 38, 127
   3.237 +3, 11040, Note_on_c, 1, 38, 80
   3.238 +3, 11760, Note_on_c, 1, 40, 80
   3.239 +3, 11760, Note_off_c, 1, 38, 127
   3.240 +3, 12000, Note_off_c, 1, 40, 127
   3.241 +3, 12240, Note_on_c, 1, 40, 80
   3.242 +3, 12480, Note_off_c, 1, 40, 127
   3.243 +3, 12720, Note_on_c, 1, 40, 80
   3.244 +3, 12840, Note_off_c, 1, 40, 127
   3.245 +3, 12960, Note_on_c, 1, 40, 80
   3.246 +3, 13920, Note_on_c, 1, 47, 80
   3.247 +3, 13920, Note_off_c, 1, 40, 127
   3.248 +3, 14640, Note_off_c, 1, 47, 127
   3.249 +3, 14880, Note_on_c, 1, 47, 80
   3.250 +3, 15600, Note_on_c, 1, 45, 80
   3.251 +3, 15600, Note_off_c, 1, 47, 127
   3.252 +3, 15840, Note_off_c, 1, 45, 127
   3.253 +3, 16080, Note_on_c, 1, 45, 80
   3.254 +3, 16320, Note_off_c, 1, 45, 127
   3.255 +3, 16560, Note_on_c, 1, 45, 80
   3.256 +3, 16680, Note_off_c, 1, 45, 127
   3.257 +3, 16800, Note_on_c, 1, 45, 80
   3.258 +3, 17760, Note_on_c, 1, 38, 80
   3.259 +3, 17760, Note_off_c, 1, 45, 127
   3.260 +3, 18480, Note_off_c, 1, 38, 127
   3.261 +3, 18720, Note_on_c, 1, 38, 80
   3.262 +3, 19440, Note_on_c, 1, 40, 80
   3.263 +3, 19440, Note_off_c, 1, 38, 127
   3.264 +3, 19680, Note_off_c, 1, 40, 127
   3.265 +3, 19920, Note_on_c, 1, 40, 80
   3.266 +3, 20160, Note_off_c, 1, 40, 127
   3.267 +3, 20400, Note_on_c, 1, 40, 80
   3.268 +3, 20520, Note_off_c, 1, 40, 127
   3.269 +3, 20640, Note_on_c, 1, 40, 80
   3.270 +3, 21600, Note_on_c, 1, 47, 80
   3.271 +3, 21600, Note_off_c, 1, 40, 127
   3.272 +3, 22320, Note_off_c, 1, 47, 127
   3.273 +3, 22560, Note_on_c, 1, 47, 80
   3.274 +3, 23280, Note_on_c, 1, 45, 80
   3.275 +3, 23280, Note_off_c, 1, 47, 127
   3.276 +3, 23520, Note_off_c, 1, 45, 127
   3.277 +3, 23760, Note_on_c, 1, 45, 80
   3.278 +3, 24000, Note_off_c, 1, 45, 127
   3.279 +3, 24240, Note_on_c, 1, 45, 80
   3.280 +3, 24360, Note_off_c, 1, 45, 127
   3.281 +3, 24480, Note_on_c, 1, 45, 80
   3.282 +3, 24960, Note_off_c, 1, 45, 127
   3.283 +3, 25440, Note_on_c, 1, 43, 80
   3.284 +3, 25920, Note_off_c, 1, 43, 127
   3.285 +3, 27360, Note_on_c, 1, 47, 80
   3.286 +3, 27840, Note_off_c, 1, 47, 127
   3.287 +3, 29280, Note_on_c, 1, 45, 80
   3.288 +3, 29760, Note_off_c, 1, 45, 127
   3.289 +3, 32640, Note_on_c, 1, 45, 80
   3.290 +3, 33120, Note_on_c, 1, 43, 80
   3.291 +3, 33120, Note_off_c, 1, 45, 127
   3.292 +3, 33600, Note_off_c, 1, 43, 127
   3.293 +3, 35040, Note_on_c, 1, 47, 80
   3.294 +3, 35520, Note_off_c, 1, 47, 127
   3.295 +3, 36960, Note_on_c, 1, 45, 80
   3.296 +3, 37680, Note_off_c, 1, 45, 127
   3.297 +3, 37920, Note_on_c, 1, 45, 80
   3.298 +3, 38400, Note_off_c, 1, 45, 127
   3.299 +3, 38640, Note_on_c, 1, 45, 80
   3.300 +3, 38880, Note_off_c, 1, 45, 127
   3.301 +3, 39120, Note_on_c, 1, 45, 80
   3.302 +3, 39600, Note_off_c, 1, 45, 127
   3.303 +3, 39840, Note_on_c, 1, 45, 80
   3.304 +3, 40080, Note_off_c, 1, 45, 127
   3.305 +3, 40320, Note_on_c, 1, 45, 80
   3.306 +3, 40800, Note_on_c, 1, 38, 80
   3.307 +3, 40800, Note_off_c, 1, 45, 127
   3.308 +3, 41520, Note_off_c, 1, 38, 127
   3.309 +3, 41760, Note_on_c, 1, 38, 80
   3.310 +3, 42240, Note_off_c, 1, 38, 127
   3.311 +3, 42480, Note_on_c, 1, 40, 80
   3.312 +3, 42720, Note_off_c, 1, 40, 127
   3.313 +3, 42960, Note_on_c, 1, 40, 80
   3.314 +3, 43200, Note_off_c, 1, 40, 127
   3.315 +3, 43440, Note_on_c, 1, 40, 80
   3.316 +3, 43560, Note_off_c, 1, 40, 127
   3.317 +3, 43680, Note_on_c, 1, 40, 80
   3.318 +3, 44640, Note_off_c, 1, 40, 127
   3.319 +3, 44640, Note_on_c, 1, 47, 80
   3.320 +3, 45360, Note_off_c, 1, 47, 127
   3.321 +3, 45600, Note_on_c, 1, 47, 80
   3.322 +3, 46320, Note_off_c, 1, 47, 127
   3.323 +3, 46320, Note_on_c, 1, 45, 80
   3.324 +3, 46560, Note_off_c, 1, 45, 127
   3.325 +3, 46800, Note_on_c, 1, 45, 80
   3.326 +3, 47040, Note_off_c, 1, 45, 127
   3.327 +3, 47280, Note_on_c, 1, 45, 80
   3.328 +3, 47400, Note_off_c, 1, 45, 127
   3.329 +3, 47520, Note_on_c, 1, 45, 80
   3.330 +3, 48000, Note_off_c, 1, 45, 127
   3.331 +3, 48480, Note_on_c, 1, 43, 80
   3.332 +3, 49440, Note_on_c, 1, 45, 80
   3.333 +3, 49440, Note_off_c, 1, 43, 127
   3.334 +3, 50400, Note_off_c, 1, 45, 127
   3.335 +3, 50400, Note_on_c, 1, 47, 80
   3.336 +3, 51360, Note_on_c, 1, 49, 80
   3.337 +3, 51360, Note_off_c, 1, 47, 127
   3.338 +3, 52320, Note_off_c, 1, 49, 127
   3.339 +3, 52320, Note_on_c, 1, 38, 100
   3.340 +3, 55680, Note_off_c, 1, 38, 127
   3.341 +3, 55680, End_track
   3.342 +4, 0, Start_track
   3.343 +4, 0, Title_t, "drums"
   3.344 +4, 0, Control_c, 9, 10, 64
   3.345 +4, 0, Control_c, 9, 7, 100
   3.346 +4, 0, Control_c, 9, 7, 100
   3.347 +4, 0, Control_c, 9, 91, 0
   3.348 +4, 0, Control_c, 9, 7, 100
   3.349 +4, 0, Control_c, 9, 93, 30
   3.350 +4, 0, Control_c, 9, 93, 0
   3.351 +4, 0, Control_c, 9, 10, 64
   3.352 +4, 0, Control_c, 9, 93, 30
   3.353 +4, 0, Control_c, 9, 121, 0
   3.354 +4, 0, Control_c, 9, 91, 30
   3.355 +4, 0, Program_c, 9, 0
   3.356 +4, 0, Control_c, 9, 32, 0
   3.357 +4, 0, Control_c, 9, 91, 30
   3.358 +4, 0, Control_c, 9, 0, 1
   3.359 +4, 0, Control_c, 9, 10, 64
   3.360 +4, 10080, Note_on_c, 9, 35, 80
   3.361 +4, 10558, Note_off_c, 9, 35, 127
   3.362 +4, 10560, Note_on_c, 9, 38, 80
   3.363 +4, 11038, Note_off_c, 9, 38, 127
   3.364 +4, 11040, Note_on_c, 9, 35, 80
   3.365 +4, 11518, Note_off_c, 9, 35, 127
   3.366 +4, 11520, Note_on_c, 9, 38, 80
   3.367 +4, 11759, Note_off_c, 9, 38, 127
   3.368 +4, 11760, Note_on_c, 9, 35, 80
   3.369 +4, 12238, Note_off_c, 9, 35, 127
   3.370 +4, 12240, Note_on_c, 9, 35, 80
   3.371 +4, 12478, Note_off_c, 9, 35, 127
   3.372 +4, 12480, Note_on_c, 9, 38, 80
   3.373 +4, 12958, Note_off_c, 9, 38, 127
   3.374 +4, 12960, Note_on_c, 9, 35, 80
   3.375 +4, 13198, Note_off_c, 9, 35, 127
   3.376 +4, 13200, Note_on_c, 9, 35, 80
   3.377 +4, 13439, Note_off_c, 9, 35, 127
   3.378 +4, 13440, Note_on_c, 9, 38, 80
   3.379 +4, 13918, Note_off_c, 9, 38, 127
   3.380 +4, 13920, Note_on_c, 9, 35, 80
   3.381 +4, 14398, Note_off_c, 9, 35, 127
   3.382 +4, 14400, Note_on_c, 9, 38, 80
   3.383 +4, 14878, Note_off_c, 9, 38, 127
   3.384 +4, 14880, Note_on_c, 9, 35, 80
   3.385 +4, 15358, Note_off_c, 9, 35, 127
   3.386 +4, 15360, Note_on_c, 9, 38, 80
   3.387 +4, 15599, Note_off_c, 9, 38, 127
   3.388 +4, 15600, Note_on_c, 9, 35, 80
   3.389 +4, 16078, Note_off_c, 9, 35, 127
   3.390 +4, 16080, Note_on_c, 9, 35, 80
   3.391 +4, 16318, Note_off_c, 9, 35, 127
   3.392 +4, 16320, Note_on_c, 9, 38, 80
   3.393 +4, 16798, Note_off_c, 9, 38, 127
   3.394 +4, 16800, Note_on_c, 9, 35, 80
   3.395 +4, 17038, Note_off_c, 9, 35, 127
   3.396 +4, 17040, Note_on_c, 9, 35, 80
   3.397 +4, 17279, Note_off_c, 9, 35, 127
   3.398 +4, 17280, Note_on_c, 9, 38, 80
   3.399 +4, 17758, Note_off_c, 9, 38, 127
   3.400 +4, 17760, Note_on_c, 9, 35, 80
   3.401 +4, 18238, Note_off_c, 9, 35, 127
   3.402 +4, 18240, Note_on_c, 9, 38, 80
   3.403 +4, 18718, Note_off_c, 9, 38, 127
   3.404 +4, 18720, Note_on_c, 9, 35, 80
   3.405 +4, 19198, Note_off_c, 9, 35, 127
   3.406 +4, 19200, Note_on_c, 9, 38, 80
   3.407 +4, 19439, Note_off_c, 9, 38, 127
   3.408 +4, 19440, Note_on_c, 9, 35, 80
   3.409 +4, 19918, Note_off_c, 9, 35, 127
   3.410 +4, 19920, Note_on_c, 9, 35, 80
   3.411 +4, 20158, Note_off_c, 9, 35, 127
   3.412 +4, 20160, Note_on_c, 9, 38, 80
   3.413 +4, 20638, Note_off_c, 9, 38, 127
   3.414 +4, 20640, Note_on_c, 9, 35, 80
   3.415 +4, 20878, Note_off_c, 9, 35, 127
   3.416 +4, 20880, Note_on_c, 9, 35, 80
   3.417 +4, 21119, Note_off_c, 9, 35, 127
   3.418 +4, 21120, Note_on_c, 9, 38, 80
   3.419 +4, 21598, Note_off_c, 9, 38, 127
   3.420 +4, 21600, Note_on_c, 9, 35, 80
   3.421 +4, 22078, Note_off_c, 9, 35, 127
   3.422 +4, 22080, Note_on_c, 9, 38, 80
   3.423 +4, 22558, Note_off_c, 9, 38, 127
   3.424 +4, 22560, Note_on_c, 9, 35, 80
   3.425 +4, 23038, Note_off_c, 9, 35, 127
   3.426 +4, 23040, Note_on_c, 9, 38, 80
   3.427 +4, 23279, Note_off_c, 9, 38, 127
   3.428 +4, 23280, Note_on_c, 9, 35, 80
   3.429 +4, 23758, Note_off_c, 9, 35, 127
   3.430 +4, 23760, Note_on_c, 9, 35, 80
   3.431 +4, 23998, Note_off_c, 9, 35, 127
   3.432 +4, 24000, Note_on_c, 9, 38, 80
   3.433 +4, 24478, Note_off_c, 9, 38, 127
   3.434 +4, 24480, Note_on_c, 9, 35, 80
   3.435 +4, 24718, Note_off_c, 9, 35, 127
   3.436 +4, 24720, Note_on_c, 9, 35, 80
   3.437 +4, 24959, Note_off_c, 9, 35, 127
   3.438 +4, 24960, Note_on_c, 9, 38, 80
   3.439 +4, 25438, Note_off_c, 9, 38, 127
   3.440 +4, 25440, Note_on_c, 9, 35, 80
   3.441 +4, 25918, Note_off_c, 9, 35, 127
   3.442 +4, 27360, Note_on_c, 9, 35, 80
   3.443 +4, 27838, Note_off_c, 9, 35, 127
   3.444 +4, 29280, Note_on_c, 9, 35, 80
   3.445 +4, 29758, Note_off_c, 9, 35, 127
   3.446 +4, 33120, Note_on_c, 9, 35, 80
   3.447 +4, 33598, Note_off_c, 9, 35, 127
   3.448 +4, 33600, Note_on_c, 9, 39, 80
   3.449 +4, 34078, Note_off_c, 9, 39, 127
   3.450 +4, 34560, Note_on_c, 9, 39, 80
   3.451 +4, 35038, Note_off_c, 9, 39, 127
   3.452 +4, 35040, Note_on_c, 9, 35, 80
   3.453 +4, 35518, Note_off_c, 9, 35, 127
   3.454 +4, 35520, Note_on_c, 9, 39, 80
   3.455 +4, 35998, Note_off_c, 9, 39, 127
   3.456 +4, 36480, Note_on_c, 9, 39, 80
   3.457 +4, 36958, Note_off_c, 9, 39, 127
   3.458 +4, 36960, Note_on_c, 9, 35, 80
   3.459 +4, 37438, Note_off_c, 9, 35, 127
   3.460 +4, 37440, Note_on_c, 9, 39, 80
   3.461 +4, 37918, Note_off_c, 9, 39, 127
   3.462 +4, 38400, Note_on_c, 9, 39, 80
   3.463 +4, 38878, Note_off_c, 9, 39, 127
   3.464 +4, 38880, Note_on_c, 9, 38, 80
   3.465 +4, 39120, Note_on_c, 9, 38, 80
   3.466 +4, 39120, Note_on_c, 9, 38, 80
   3.467 +4, 39120, Note_off_c, 9, 38, 127
   3.468 +4, 39360, Note_off_c, 9, 38, 127
   3.469 +4, 39360, Note_on_c, 9, 39, 100
   3.470 +4, 39600, Note_off_c, 9, 39, 127
   3.471 +4, 39600, Note_on_c, 9, 38, 80
   3.472 +4, 39840, Note_off_c, 9, 38, 127
   3.473 +4, 39840, Note_on_c, 9, 38, 100
   3.474 +4, 40080, Note_off_c, 9, 38, 127
   3.475 +4, 40080, Note_on_c, 9, 38, 80
   3.476 +4, 40318, Note_off_c, 9, 38, 127
   3.477 +4, 40320, Note_on_c, 9, 39, 80
   3.478 +4, 40560, Note_off_c, 9, 39, 127
   3.479 +4, 40560, Note_on_c, 9, 38, 80
   3.480 +4, 40800, Note_off_c, 9, 38, 127
   3.481 +4, 40800, Note_on_c, 9, 35, 80
   3.482 +4, 41278, Note_off_c, 9, 35, 127
   3.483 +4, 41280, Note_on_c, 9, 38, 80
   3.484 +4, 41758, Note_off_c, 9, 38, 127
   3.485 +4, 41760, Note_on_c, 9, 35, 80
   3.486 +4, 42238, Note_off_c, 9, 35, 127
   3.487 +4, 42240, Note_on_c, 9, 38, 80
   3.488 +4, 42479, Note_off_c, 9, 38, 127
   3.489 +4, 42480, Note_on_c, 9, 35, 80
   3.490 +4, 42958, Note_off_c, 9, 35, 127
   3.491 +4, 42960, Note_on_c, 9, 35, 80
   3.492 +4, 43198, Note_off_c, 9, 35, 127
   3.493 +4, 43200, Note_on_c, 9, 38, 80
   3.494 +4, 43678, Note_off_c, 9, 38, 127
   3.495 +4, 43680, Note_on_c, 9, 35, 80
   3.496 +4, 43918, Note_off_c, 9, 35, 127
   3.497 +4, 43920, Note_on_c, 9, 35, 80
   3.498 +4, 44159, Note_off_c, 9, 35, 127
   3.499 +4, 44160, Note_on_c, 9, 38, 80
   3.500 +4, 44638, Note_off_c, 9, 38, 127
   3.501 +4, 44640, Note_on_c, 9, 35, 80
   3.502 +4, 45118, Note_off_c, 9, 35, 127
   3.503 +4, 45120, Note_on_c, 9, 38, 80
   3.504 +4, 45598, Note_off_c, 9, 38, 127
   3.505 +4, 45600, Note_on_c, 9, 35, 80
   3.506 +4, 46078, Note_off_c, 9, 35, 127
   3.507 +4, 46080, Note_on_c, 9, 38, 80
   3.508 +4, 46320, Note_on_c, 9, 35, 80
   3.509 +4, 46320, Note_off_c, 9, 38, 127
   3.510 +4, 46798, Note_off_c, 9, 35, 127
   3.511 +4, 46800, Note_on_c, 9, 35, 80
   3.512 +4, 47040, Note_on_c, 9, 38, 80
   3.513 +4, 47040, Note_off_c, 9, 35, 127
   3.514 +4, 47518, Note_off_c, 9, 38, 127
   3.515 +4, 47520, Note_on_c, 9, 35, 80
   3.516 +4, 47758, Note_off_c, 9, 35, 127
   3.517 +4, 47760, Note_on_c, 9, 35, 80
   3.518 +4, 47999, Note_off_c, 9, 35, 127
   3.519 +4, 48000, Note_on_c, 9, 38, 80
   3.520 +4, 48238, Note_off_c, 9, 38, 127
   3.521 +4, 48240, Note_on_c, 9, 38, 80
   3.522 +4, 48478, Note_off_c, 9, 38, 127
   3.523 +4, 48480, Note_on_c, 9, 35, 80
   3.524 +4, 48958, Note_off_c, 9, 35, 127
   3.525 +4, 48960, Note_on_c, 9, 38, 80
   3.526 +4, 49198, Note_off_c, 9, 38, 127
   3.527 +4, 49200, Note_on_c, 9, 38, 80
   3.528 +4, 49438, Note_off_c, 9, 38, 127
   3.529 +4, 49440, Note_on_c, 9, 35, 80
   3.530 +4, 49918, Note_off_c, 9, 35, 127
   3.531 +4, 49920, Note_on_c, 9, 38, 80
   3.532 +4, 50158, Note_off_c, 9, 38, 127
   3.533 +4, 50160, Note_on_c, 9, 38, 80
   3.534 +4, 50398, Note_off_c, 9, 38, 127
   3.535 +4, 50400, Note_on_c, 9, 35, 80
   3.536 +4, 50878, Note_off_c, 9, 35, 127
   3.537 +4, 50880, Note_on_c, 9, 38, 80
   3.538 +4, 51118, Note_off_c, 9, 38, 127
   3.539 +4, 51120, Note_on_c, 9, 38, 80
   3.540 +4, 51358, Note_off_c, 9, 38, 127
   3.541 +4, 51360, Note_on_c, 9, 35, 80
   3.542 +4, 51599, Note_off_c, 9, 35, 127
   3.543 +4, 51600, Note_on_c, 9, 38, 80
   3.544 +4, 51838, Note_off_c, 9, 38, 127
   3.545 +4, 51840, Note_on_c, 9, 38, 80
   3.546 +4, 52078, Note_off_c, 9, 38, 127
   3.547 +4, 52080, Note_on_c, 9, 38, 80
   3.548 +4, 52318, Note_off_c, 9, 38, 127
   3.549 +4, 52320, Note_on_c, 9, 38, 80
   3.550 +4, 52798, Note_off_c, 9, 38, 127
   3.551 +4, 55680, End_track
   3.552 +0, 0, End_of_file
     4.1 Binary file music/pony-title.mid has changed