changeset 474:9a20581477c2

merge dylan's changes.
author Robert McIntyre <rlm@mit.edu>
date Fri, 04 May 2012 06:18:48 -0500
parents 396065930208 (diff) 9a7fae5afd8f (current diff)
children f28a3baa4c56
files
diffstat 14 files changed, 736 insertions(+), 51 deletions(-) [+]
line wrap: on
line diff
     1.1 --- a/clojure/com/aurellem/run/music.clj	Wed May 02 20:32:45 2012 -0500
     1.2 +++ b/clojure/com/aurellem/run/music.clj	Fri May 04 06:18:48 2012 -0500
     1.3 @@ -11,6 +11,16 @@
     1.4  (def third-kind
     1.5    (File. "/home/r/proj/midi/third-kind.mid"))
     1.6  
     1.7 +(def pony
     1.8 +  (File. "/home/r/proj/vba-clojure/music/pony-title.mid"))
     1.9 +
    1.10 +(def sync-test
    1.11 +  (File. "/home/r/proj/vba-clojure/music/sync-test.mid"))
    1.12 +
    1.13 +(def drum-test
    1.14 +  (File. "/home/r/proj/vba-clojure/music/drum-test.mid"))
    1.15 +
    1.16 +
    1.17  (defn raw-midi-text [#^File midi-file]
    1.18    (:out 
    1.19     (clojure.java.shell/sh
    1.20 @@ -170,8 +180,9 @@
    1.21    "Read the message which starts at the current value of HL and do
    1.22     what it says. Duration is left in A, and HL is advanced
    1.23     appropraitely."
    1.24 -  ([] (do-message 0x16))
    1.25 -  ([sound-base-address]
    1.26 +  ([] (do-message 0x16 1))
    1.27 +  ([sound-base-address wave-duty]
    1.28 +     (assert (<= 0 wave-duty 3))
    1.29       (let [switch
    1.30             [0x2A ;; load message code into A, increment HL
    1.31              
    1.32 @@ -183,7 +194,11 @@
    1.33              :note-length]
    1.34  
    1.35             play-note
    1.36 -           [0x2A   ;; load volume/frequency-high info
    1.37 +           [0x3E ;; set wave-duty
    1.38 +            (bit-shift-left wave-duty 6)
    1.39 +            0xE0
    1.40 +            sound-base-address
    1.41 +            0x2A   ;; load volume/frequency-high info
    1.42              0xF5   ;; push A
    1.43              0xE6
    1.44              (Integer/parseInt "11110000" 2) ;; volume mask
    1.45 @@ -203,6 +218,22 @@
    1.46          {:note-length (count play-note)}
    1.47          (concat switch play-note)))))
    1.48  
    1.49 +(defn play-noise
    1.50 +  "read [noise-code, volume,  duration] and play the noise. Duration is left in
    1.51 +   A, and HL is advanced appropraitely."
    1.52 +  ([]
    1.53 +     [0x2A  ;; load noise-code into A
    1.54 +      0xE0
    1.55 +      0x22  ;; write noise-code
    1.56 +
    1.57 +      0x2A  ;; load volume
    1.58 +      0xE0
    1.59 +      0x21  ;; write volume
    1.60 +      
    1.61 +      0x2A] ;; load duration into A
    1.62 +     ))
    1.63 +
    1.64 +
    1.65  ;; (defn play-note
    1.66  ;;   "Play the note referenced by HL in the appropiate channel.
    1.67  ;;    Leaves desired-duration in A."
    1.68 @@ -226,7 +257,7 @@
    1.69  ;;    0x2A   ;; load duration
    1.70  ;;    ]) 
    1.71  
    1.72 -(defn music-step [sound-base-address]
    1.73 +(defn music-step [sound-base-address wave-duty noise?]
    1.74    ;; C == current-ticks
    1.75    ;; A == desired-ticks
    1.76    
    1.77 @@ -254,10 +285,14 @@
    1.78      ;; if desired-ticks = current ticks
    1.79      ;;   go to next note ; set current set ticks to 0.
    1.80  
    1.81 -    0x20
    1.82 -    (+ (count (do-message 0)) 2)
    1.83 -
    1.84 -    (do-message sound-base-address)
    1.85 +    (if noise?
    1.86 +      [0x20
    1.87 +       (+ 2 (count (play-noise)))
    1.88 +       (play-noise)]
    1.89 +    
    1.90 +      [0x20
    1.91 +       (+ (count (do-message 0 0)) 2)
    1.92 +       (do-message sound-base-address wave-duty)])
    1.93      
    1.94      0x0E
    1.95      0x00 ;; 0->C (current-ticks)
    1.96 @@ -273,7 +308,7 @@
    1.97  (def music-1 0x11)
    1.98  (def music-2 0x16)
    1.99  
   1.100 -(defn music-kernel []
   1.101 +(defn music-kernel [wave-duty-1 wave-duty-2]
   1.102    (flatten
   1.103     [;; global initilization section
   1.104      (clear-music-registers)
   1.105 @@ -313,26 +348,38 @@
   1.106      0xE5 ;; push HL
   1.107  
   1.108  
   1.109 +    ;; initialize frame 3 (noise)
   1.110 +    0x21
   1.111 +    0x00
   1.112 +    0xA9 ;; 0xA9OO -> HL
   1.113 +
   1.114 +    0xF5 ;; push AF
   1.115 +    0xC5 ;; push CB
   1.116 +    0xE5 ;; push HL
   1.117 +
   1.118      ;; main music loop
   1.119  
   1.120 -    0xE8 ;; SP + 6; activate frame 1
   1.121 -    6
   1.122 -    (music-step music-1)
   1.123 -    ;;(repeat (count (music-step music-1)) 0x00)
   1.124 +    0xE8 ;; SP + 12; activate frame 1
   1.125 +    12
   1.126 +    (music-step music-1 wave-duty-1 false)
   1.127      
   1.128      0xE8 ;; SP - 6; activate frame 2
   1.129      (->signed-8-bit -6)
   1.130 -    ;;(repeat (count (music-step music-2)) 0x00)
   1.131 -    (music-step music-2)
   1.132 -    
   1.133 +    (music-step music-2 wave-duty-2 false)
   1.134 +
   1.135 +    0xE8 ;; SP - 6;  activate frame 3
   1.136 +    (->signed-8-bit -6)
   1.137 +    (music-step nil nil true)
   1.138  
   1.139      0x18
   1.140      (->signed-8-bit (+
   1.141                       ;; two music-steps
   1.142 -                     (- (* 2 (count (music-step 0))))
   1.143 +                     (- (* 2 (count (music-step 0 0 false))))
   1.144 +                     (- (count (music-step nil nil true)))
   1.145                       -2 ;; this jump instruction
   1.146                       -2 ;; activate frame 1
   1.147                       -2 ;; activate frame 2
   1.148 +                     -2 ;; activate frame 3
   1.149                       ))]))
   1.150  
   1.151  (defn frequency-code->frequency
   1.152 @@ -395,15 +442,35 @@
   1.153    [command s]
   1.154    (filter #(= command (:command %)) s))
   1.155  
   1.156 -(defn midi-track->mini-midi [#^File midi-file track-num]
   1.157 -  (let [midi-events (parse-midi midi-file)
   1.158 +(defn track-info [#^File midi-file]
   1.159 +  (let [events (parse-midi midi-file)
   1.160 +        track-titles (commands :Title_t events)
   1.161 +        track-info
   1.162 +        (map #(read-string (read-string (:args %))) track-titles)
   1.163 +        track-map
   1.164 +        (zipmap track-info track-titles)]
   1.165 +    track-map))
   1.166 +
   1.167 +(defn target-tracks
   1.168 +  "return the track-numbers in the form [voice-0 voice-1 noise]"
   1.169 +  [#^File midi-file]
   1.170 +  (let [track-data (track-info midi-file)
   1.171 +        track-order
   1.172 +        (zipmap (map :out (keys track-data))
   1.173 +                (vals track-data))
   1.174 +        channel-nums (map (comp :channel track-order) (range 3))]
   1.175 +    channel-nums))
   1.176 +
   1.177 +(defn midi-track->abstract-mini-midi
   1.178 +  [#^File midi-file track-num]
   1.179 +    (let [midi-events (parse-midi midi-file)
   1.180  
   1.181          note-on-events  (commands :Note_on_c  midi-events)
   1.182          note-off-events (commands :Note_off_c midi-events)
   1.183  
   1.184          select-channel
   1.185          (fn [n s]
   1.186 -          (sort-by :time (filter #(= n (:channel (:args %))) s)))
   1.187 +          (sort-by :time (filter #(= n (:channel %)) s)))
   1.188  
   1.189          channel-on (select-channel track-num note-on-events)
   1.190          
   1.191 @@ -418,6 +485,7 @@
   1.192          (map
   1.193           (fn [note-on note-off]
   1.194             {:frequency (midi-code->frequency (:note (:args note-on)))
   1.195 +            :midi-code (:note (:args note-on))
   1.196              :duration
   1.197              (/ (* (/ tempo division)
   1.198                    (- (:time note-off) (:time note-on)))
   1.199 @@ -439,36 +507,117 @@
   1.200               notes)
   1.201          
   1.202          notes-with-silence
   1.203 -        (filter (comp not zero? :duration)
   1.204 -                (interleave silences notes))]
   1.205 +        (concat
   1.206 +         (filter (comp not zero? :duration)
   1.207 +                 (interleave silences notes))
   1.208 +         [(silence 3)])]
   1.209 +    notes-with-silence))
   1.210 +      
   1.211 +(defn midi-track->mini-midi-voice [#^File midi-file track-num]
   1.212 +  (let [abstract-mini-midi
   1.213 +        (midi-track->abstract-mini-midi midi-file track-num)]
   1.214 +     (map
   1.215 +      (fn [note-event]
   1.216 +        (note-codes (:frequency note-event)
   1.217 +                    (:volume note-event)
   1.218 +                    (int (* (:duration note-event) 0x100))))
   1.219 +      abstract-mini-midi)))
   1.220 +
   1.221 +(def midi-code->gb-noise-code
   1.222 +  {nil 0xFF
   1.223 +   35 87
   1.224 +   38 20
   1.225 +   39 0
   1.226 +   })
   1.227 +
   1.228 +
   1.229 +(defn noise-codes [code volume duration]
   1.230 +  (assert (<= 0 volume 0xF))
   1.231 +  (if (<= duration 0xFF)
   1.232 +    [(midi-code->gb-noise-code code code)
   1.233 +     (bit-shift-left volume 4)
   1.234 +     duration]
   1.235 +    (vec
   1.236 +     (flatten 
   1.237 +      [(noise-codes code volume 0xFF)
   1.238 +       (noise-codes code volume (- duration 0xFF))]))))
   1.239 +
   1.240 +(defn midi-track->mini-midi-noise [#^File midi-file track-num]
   1.241 +  (let [abstract-mini-midi
   1.242 +        (midi-track->abstract-mini-midi midi-file track-num)]
   1.243      (map
   1.244 -     (fn [note-event]
   1.245 -       (note-codes (:frequency note-event)
   1.246 -                   (:volume note-event)
   1.247 -                   (int (* (:duration note-event) 0x100))))
   1.248 -     notes-with-silence)))
   1.249 +     (fn [noise-event]
   1.250 +       (noise-codes (:midi-code noise-event)
   1.251 +                    (:volume noise-event)
   1.252 +                    (int (* (:duration noise-event) 0x100))))
   1.253 +     abstract-mini-midi)))
   1.254 +
   1.255  
   1.256  (defn midi->mini-midi [#^File midi-file]
   1.257 -  {:track-1 (flatten (midi-track->mini-midi midi-file 1))
   1.258 -   :track-2 (flatten (midi-track->mini-midi midi-file 2))})
   1.259 +  (let [targets (target-tracks midi-file)
   1.260 +        duty-info (keys (track-info midi-file))]
   1.261 +    
   1.262 +    {:voice-1 (midi-track->mini-midi-voice midi-file (nth targets 0))
   1.263 +     :voice-2 (midi-track->mini-midi-voice midi-file (nth targets 1))
   1.264 +     :noise   (midi-track->mini-midi-noise midi-file (nth targets 2))
   1.265 +     :duty    (zipmap (map :out duty-info)
   1.266 +                      (map #(get % :duty 0) duty-info))}))
   1.267  
   1.268  (defn play-midi [#^File midi-file]
   1.269 -  (let [track-1-target 0xA000
   1.270 -        track-2-target 0xB000
   1.271 +  (let [voice-1-target 0xA000
   1.272 +        voice-2-target 0xB000
   1.273 +        noise-target   0xA900
   1.274          program-target 0xC000
   1.275          mini-midi (midi->mini-midi midi-file)
   1.276 -        long-silence (flatten (note-codes 20 0 9001))]
   1.277 +        long-silence (flatten (note-codes 20 0 20001))
   1.278 +        long-noise-silence
   1.279 +        (interleave (range 500) (repeat 0x00) (repeat 255))
   1.280 +        
   1.281 +        voice-1 (flatten (:voice-1 mini-midi))
   1.282 +        wave-duty-1 ((:duty mini-midi) 0 0)
   1.283 +
   1.284 +        voice-2 (flatten (:voice-2 mini-midi))
   1.285 +        wave-duty-2 ((:duty mini-midi) 1 0)
   1.286 +
   1.287 +        noise (flatten (:noise mini-midi))
   1.288 +        ]
   1.289      
   1.290      (-> (second (music-base))
   1.291 -        (set-memory-range track-1-target long-silence)
   1.292 -        (set-memory-range track-2-target long-silence)
   1.293 -        (set-memory-range track-1-target (:track-1 mini-midi))
   1.294 -        (set-memory-range track-2-target (:track-2 mini-midi))
   1.295 -        (set-memory-range program-target (music-kernel))
   1.296 +        (set-memory-range voice-1-target long-silence)
   1.297 +        (set-memory-range voice-2-target long-silence)
   1.298 +        (set-memory-range noise-target   long-noise-silence)
   1.299 +        (set-memory-range voice-1-target voice-1)
   1.300 +        (set-memory-range voice-2-target voice-2)
   1.301 +        (set-memory-range noise-target   noise)
   1.302 +        (set-memory-range
   1.303 +         program-target
   1.304 +         (music-kernel wave-duty-1 wave-duty-2))
   1.305          (PC! program-target))))
   1.306  
   1.307 +(defn test-noise []
   1.308 +  (let [noise-pattern
   1.309 +        (concat (interleave (range 0x100) (repeat 0xF0) (repeat 255))
   1.310 +                (interleave (range 10) (repeat 0x00) (repeat 255)))]
   1.311 +                
   1.312 +    (-> (second (music-base))
   1.313 +        (set-memory-range 0xA900 (flatten noise-pattern))
   1.314 +        (set-memory-range 0xC000 (music-kernel 0 0))
   1.315 +        (PC! 0xC000))))
   1.316  
   1.317 -  
   1.318 +(defn test-play-noise [noise-code]
   1.319 +  (Thread/sleep 300)
   1.320 +  (println "playing noise:" noise-code)
   1.321 +  (run-moves
   1.322 +   (let [noise-pattern
   1.323 +         (interleave (repeat 10 noise-code) (repeat 0xF0) (repeat 255))]
   1.324 +     (-> (second (music-base))
   1.325 +         (set-memory-range 0xA900 (flatten noise-pattern))
   1.326 +         (set-memory-range 0xC000 (music-kernel 0 0))
   1.327 +         (PC! 0xC000)))
   1.328 +   (repeat 20 [])))
   1.329 +
   1.330 +(defn test-all-noises []
   1.331 +  (dorun (map test-play-noise (range 0x100))))
   1.332  
   1.333  (def C4 (partial note-codes 261.63))
   1.334  (def D4 (partial note-codes 293.66))
   1.335 @@ -498,19 +647,6 @@
   1.336          (set-memory-range music-target music-bytes)
   1.337          (PC! program-target))))
   1.338  
   1.339 -
   1.340 -
   1.341 -;; (defn test-note [music-bytes]
   1.342 -;;   (-> (set-memory-range (second (music-base))
   1.343 -;;                         0xC000 (concat (clear-music-registers)
   1.344 -;;                                        (play-note)
   1.345 -;;                                        (infinite-loop)))
   1.346 -;;       (set-memory-range 0xD000 music-bytes)
   1.347 -;;       (PC! 0xC000)
   1.348 -;;       (HL! 0xD000)
   1.349 -;;       ))
   1.350 -
   1.351 -
   1.352  (defn run-program
   1.353    ([program]
   1.354       (let [target 0xC000]
     2.1 Binary file music/Friendship is Magic (MLP Theme Song).mid has changed
     3.1 Binary file music/Friendship is Magic (MLP Theme Song).rg has changed
     4.1 Binary file music/My Very Best Friends Trombone by Golden Glissando.mid has changed
     5.1 Binary file music/My Very Best Friends.mid has changed
     6.1 Binary file music/My Very Best Friends2.mid has changed
     7.1 Binary file music/Orchestral is AWESTUM.mid has changed
     8.1 Binary file music/drum-test.mid has changed
     9.1 Binary file music/drum-test.rg has changed
    10.1 Binary file music/pony-offset.mid has changed
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/music/pony-title.csv	Fri May 04 06:18:48 2012 -0500
    11.3 @@ -0,0 +1,549 @@
    11.4 +0, 0, Header, 1, 4, 480
    11.5 +1, 0, Start_track
    11.6 +1, 0, Copyright_t, "rlm"
    11.7 +1, 0, Cue_point_t, "Created by Rosegarden"
    11.8 +1, 0, Cue_point_t, "http://www.rosegardenmusic.com/"
    11.9 +1, 0, Tempo, 250000
   11.10 +1, 0, Time_signature, 4, 2, 24, 8
   11.11 +1, 55680, End_track
   11.12 +2, 0, Start_track
   11.13 +2, 0, Title_t, "{:voice 0 :duty 2}"
   11.14 +2, 0, Control_c, 0, 91, 0
   11.15 +2, 0, Control_c, 0, 10, 64
   11.16 +2, 0, Control_c, 0, 7, 100
   11.17 +2, 0, Control_c, 0, 93, 0
   11.18 +2, 0, Control_c, 0, 7, 100
   11.19 +2, 0, Control_c, 0, 10, 64
   11.20 +2, 0, Note_on_c, 0, 66, 80
   11.21 +2, 0, Control_c, 0, 121, 0
   11.22 +2, 0, Control_c, 0, 93, 30
   11.23 +2, 0, Program_c, 0, 19
   11.24 +2, 0, Control_c, 0, 93, 30
   11.25 +2, 0, Control_c, 0, 91, 30
   11.26 +2, 0, Control_c, 0, 91, 30
   11.27 +2, 0, Control_c, 0, 7, 100
   11.28 +2, 0, Control_c, 0, 10, 64
   11.29 +2, 420, Note_on_c, 0, 69, 80
   11.30 +2, 420, Note_off_c, 0, 66, 127
   11.31 +2, 840, Note_on_c, 0, 66, 80
   11.32 +2, 840, Note_off_c, 0, 69, 127
   11.33 +2, 1260, Note_off_c, 0, 66, 127
   11.34 +2, 1260, Note_on_c, 0, 64, 80
   11.35 +2, 2100, Note_on_c, 0, 69, 80
   11.36 +2, 2100, Note_off_c, 0, 64, 127
   11.37 +2, 3360, Note_on_c, 0, 62, 80
   11.38 +2, 3360, Note_off_c, 0, 69, 127
   11.39 +2, 3780, Note_on_c, 0, 64, 80
   11.40 +2, 3780, Note_off_c, 0, 62, 127
   11.41 +2, 4200, Note_on_c, 0, 62, 80
   11.42 +2, 4200, Note_off_c, 0, 64, 127
   11.43 +2, 4620, Note_on_c, 0, 61, 80
   11.44 +2, 4620, Note_off_c, 0, 62, 127
   11.45 +2, 5460, Note_on_c, 0, 57, 80
   11.46 +2, 5460, Note_off_c, 0, 61, 127
   11.47 +2, 6720, Note_on_c, 0, 59, 80
   11.48 +2, 6720, Note_off_c, 0, 57, 127
   11.49 +2, 7560, Note_on_c, 0, 61, 80
   11.50 +2, 7560, Note_off_c, 0, 59, 127
   11.51 +2, 8400, Note_on_c, 0, 62, 80
   11.52 +2, 8400, Note_off_c, 0, 61, 127
   11.53 +2, 9240, Note_on_c, 0, 64, 80
   11.54 +2, 9240, Note_off_c, 0, 62, 127
   11.55 +2, 10080, Note_on_c, 0, 62, 80
   11.56 +2, 10080, Note_off_c, 0, 64, 127
   11.57 +2, 11040, Note_on_c, 0, 61, 80
   11.58 +2, 11040, Note_off_c, 0, 62, 127
   11.59 +2, 11280, Note_on_c, 0, 62, 80
   11.60 +2, 11280, Note_off_c, 0, 61, 127
   11.61 +2, 11760, Note_on_c, 0, 64, 80
   11.62 +2, 11760, Note_off_c, 0, 62, 127
   11.63 +2, 12240, Note_on_c, 0, 62, 80
   11.64 +2, 12240, Note_off_c, 0, 64, 127
   11.65 +2, 13920, Note_off_c, 0, 62, 127
   11.66 +2, 14160, Note_on_c, 0, 66, 80
   11.67 +2, 14280, Note_off_c, 0, 66, 127
   11.68 +2, 14400, Note_on_c, 0, 66, 80
   11.69 +2, 14520, Note_off_c, 0, 66, 127
   11.70 +2, 14640, Note_on_c, 0, 66, 80
   11.71 +2, 14760, Note_off_c, 0, 66, 127
   11.72 +2, 14880, Note_on_c, 0, 66, 80
   11.73 +2, 15360, Note_on_c, 0, 62, 80
   11.74 +2, 15360, Note_off_c, 0, 66, 127
   11.75 +2, 15600, Note_on_c, 0, 64, 80
   11.76 +2, 15600, Note_off_c, 0, 62, 127
   11.77 +2, 16080, Note_on_c, 0, 62, 80
   11.78 +2, 16080, Note_off_c, 0, 64, 127
   11.79 +2, 16560, Note_on_c, 0, 66, 80
   11.80 +2, 16560, Note_off_c, 0, 62, 127
   11.81 +2, 17280, Note_on_c, 0, 64, 80
   11.82 +2, 17280, Note_off_c, 0, 66, 127
   11.83 +2, 17760, Note_on_c, 0, 62, 80
   11.84 +2, 17760, Note_off_c, 0, 64, 127
   11.85 +2, 18720, Note_on_c, 0, 61, 80
   11.86 +2, 18720, Note_off_c, 0, 62, 127
   11.87 +2, 18960, Note_on_c, 0, 62, 80
   11.88 +2, 18960, Note_off_c, 0, 61, 127
   11.89 +2, 19440, Note_on_c, 0, 64, 80
   11.90 +2, 19440, Note_off_c, 0, 62, 127
   11.91 +2, 19920, Note_on_c, 0, 62, 80
   11.92 +2, 19920, Note_off_c, 0, 64, 127
   11.93 +2, 20760, Note_off_c, 0, 62, 127
   11.94 +2, 21120, Note_on_c, 0, 62, 80
   11.95 +2, 21360, Note_on_c, 0, 64, 80
   11.96 +2, 21360, Note_off_c, 0, 62, 127
   11.97 +2, 21600, Note_off_c, 0, 64, 127
   11.98 +2, 21600, Note_on_c, 0, 66, 80
   11.99 +2, 21840, Note_on_c, 0, 69, 80
  11.100 +2, 21840, Note_off_c, 0, 66, 127
  11.101 +2, 22320, Note_off_c, 0, 69, 127
  11.102 +2, 22510, Note_on_c, 0, 69, 80
  11.103 +2, 22990, Note_off_c, 0, 69, 127
  11.104 +2, 23040, Note_on_c, 0, 66, 80
  11.105 +2, 23280, Note_on_c, 0, 64, 80
  11.106 +2, 23280, Note_off_c, 0, 66, 127
  11.107 +2, 23760, Note_on_c, 0, 62, 80
  11.108 +2, 23760, Note_off_c, 0, 64, 127
  11.109 +2, 24000, Note_on_c, 0, 66, 80
  11.110 +2, 24000, Note_off_c, 0, 62, 127
  11.111 +2, 24480, Note_on_c, 0, 64, 80
  11.112 +2, 24480, Note_off_c, 0, 66, 127
  11.113 +2, 25440, Note_off_c, 0, 64, 127
  11.114 +2, 25920, Note_on_c, 0, 62, 80
  11.115 +2, 26040, Note_off_c, 0, 62, 127
  11.116 +2, 26160, Note_on_c, 0, 62, 80
  11.117 +2, 26280, Note_off_c, 0, 62, 127
  11.118 +2, 26400, Note_on_c, 0, 62, 80
  11.119 +2, 26880, Note_on_c, 0, 66, 80
  11.120 +2, 26880, Note_off_c, 0, 62, 127
  11.121 +2, 27360, Note_on_c, 0, 69, 80
  11.122 +2, 27360, Note_off_c, 0, 66, 127
  11.123 +2, 27600, Note_on_c, 0, 71, 80
  11.124 +2, 27600, Note_off_c, 0, 69, 127
  11.125 +2, 28080, Note_on_c, 0, 69, 80
  11.126 +2, 28080, Note_off_c, 0, 71, 127
  11.127 +2, 29040, Note_on_c, 0, 64, 80
  11.128 +2, 29040, Note_off_c, 0, 69, 127
  11.129 +2, 29160, Note_off_c, 0, 64, 127
  11.130 +2, 29280, Note_on_c, 0, 64, 80
  11.131 +2, 29400, Note_off_c, 0, 64, 127
  11.132 +2, 29520, Note_on_c, 0, 64, 80
  11.133 +2, 29640, Note_off_c, 0, 64, 127
  11.134 +2, 29760, Note_on_c, 0, 64, 80
  11.135 +2, 30000, Note_off_c, 0, 64, 127
  11.136 +2, 30240, Note_on_c, 0, 64, 80
  11.137 +2, 30480, Note_off_c, 0, 64, 127
  11.138 +2, 30720, Note_on_c, 0, 64, 80
  11.139 +2, 30960, Note_off_c, 0, 64, 127
  11.140 +2, 31200, Note_on_c, 0, 64, 80
  11.141 +2, 31440, Note_on_c, 0, 66, 80
  11.142 +2, 31440, Note_off_c, 0, 64, 127
  11.143 +2, 31920, Note_on_c, 0, 64, 80
  11.144 +2, 31920, Note_off_c, 0, 66, 127
  11.145 +2, 32640, Note_off_c, 0, 64, 127
  11.146 +2, 33120, Note_on_c, 0, 62, 80
  11.147 +2, 33360, Note_on_c, 0, 64, 80
  11.148 +2, 33360, Note_off_c, 0, 62, 127
  11.149 +2, 33840, Note_on_c, 0, 66, 80
  11.150 +2, 33840, Note_off_c, 0, 64, 127
  11.151 +2, 34320, Note_on_c, 0, 62, 80
  11.152 +2, 34320, Note_off_c, 0, 66, 127
  11.153 +2, 34440, Note_off_c, 0, 62, 127
  11.154 +2, 34560, Note_on_c, 0, 62, 80
  11.155 +2, 34800, Note_on_c, 0, 66, 80
  11.156 +2, 34800, Note_off_c, 0, 62, 127
  11.157 +2, 35040, Note_on_c, 0, 69, 80
  11.158 +2, 35040, Note_off_c, 0, 66, 127
  11.159 +2, 35280, Note_off_c, 0, 69, 127
  11.160 +2, 35280, Note_on_c, 0, 71, 80
  11.161 +2, 35760, Note_on_c, 0, 69, 80
  11.162 +2, 35760, Note_off_c, 0, 71, 127
  11.163 +2, 36480, Note_on_c, 0, 62, 80
  11.164 +2, 36480, Note_off_c, 0, 69, 127
  11.165 +2, 36960, Note_off_c, 0, 62, 127
  11.166 +2, 36960, Note_on_c, 0, 64, 80
  11.167 +2, 37200, Note_off_c, 0, 64, 127
  11.168 +2, 37440, Note_on_c, 0, 64, 80
  11.169 +2, 37680, Note_off_c, 0, 64, 127
  11.170 +2, 37920, Note_on_c, 0, 64, 80
  11.171 +2, 38400, Note_on_c, 0, 66, 80
  11.172 +2, 38400, Note_off_c, 0, 64, 127
  11.173 +2, 38880, Note_on_c, 0, 71, 80
  11.174 +2, 38880, Note_off_c, 0, 66, 127
  11.175 +2, 39360, Note_on_c, 0, 69, 80
  11.176 +2, 39360, Note_off_c, 0, 71, 127
  11.177 +2, 39480, Note_off_c, 0, 69, 127
  11.178 +2, 39600, Note_on_c, 0, 69, 80
  11.179 +2, 39960, Note_off_c, 0, 69, 127
  11.180 +2, 40080, Note_on_c, 0, 67, 80
  11.181 +2, 40320, Note_on_c, 0, 69, 100
  11.182 +2, 40320, Note_off_c, 0, 67, 127
  11.183 +2, 40560, Note_off_c, 0, 69, 127
  11.184 +2, 40800, Note_on_c, 0, 62, 80
  11.185 +2, 41760, Note_on_c, 0, 61, 80
  11.186 +2, 41760, Note_off_c, 0, 62, 127
  11.187 +2, 42000, Note_off_c, 0, 61, 127
  11.188 +2, 42000, Note_on_c, 0, 62, 80
  11.189 +2, 42480, Note_on_c, 0, 64, 80
  11.190 +2, 42480, Note_off_c, 0, 62, 127
  11.191 +2, 42960, Note_on_c, 0, 62, 80
  11.192 +2, 42960, Note_off_c, 0, 64, 127
  11.193 +2, 43920, Note_off_c, 0, 62, 127
  11.194 +2, 44160, Note_on_c, 0, 62, 80
  11.195 +2, 44400, Note_off_c, 0, 62, 127
  11.196 +2, 44400, Note_on_c, 0, 64, 80
  11.197 +2, 44640, Note_off_c, 0, 64, 127
  11.198 +2, 44640, Note_on_c, 0, 66, 80
  11.199 +2, 45120, Note_on_c, 0, 62, 80
  11.200 +2, 45120, Note_off_c, 0, 66, 127
  11.201 +2, 45360, Note_on_c, 0, 67, 80
  11.202 +2, 45360, Note_off_c, 0, 62, 127
  11.203 +2, 46080, Note_on_c, 0, 66, 80
  11.204 +2, 46080, Note_off_c, 0, 67, 127
  11.205 +2, 46560, Note_on_c, 0, 64, 80
  11.206 +2, 46560, Note_off_c, 0, 66, 127
  11.207 +2, 47040, Note_off_c, 0, 64, 127
  11.208 +2, 47040, Note_on_c, 0, 62, 80
  11.209 +2, 47520, Note_on_c, 0, 66, 80
  11.210 +2, 47520, Note_off_c, 0, 62, 127
  11.211 +2, 48480, Note_off_c, 0, 66, 127
  11.212 +2, 48480, Note_on_c, 0, 62, 100
  11.213 +2, 55680, Note_off_c, 0, 62, 127
  11.214 +2, 55680, End_track
  11.215 +3, 0, Start_track
  11.216 +3, 0, Title_t, "{:voice 1 :duty 3}"
  11.217 +3, 0, Program_c, 1, 18
  11.218 +3, 0, Control_c, 1, 7, 100
  11.219 +3, 0, Control_c, 1, 91, 30
  11.220 +3, 0, Control_c, 1, 93, 0
  11.221 +3, 0, Control_c, 1, 10, 64
  11.222 +3, 0, Control_c, 1, 10, 64
  11.223 +3, 0, Control_c, 1, 121, 0
  11.224 +3, 0, Control_c, 1, 7, 100
  11.225 +3, 0, Control_c, 1, 91, 0
  11.226 +3, 0, Control_c, 1, 93, 30
  11.227 +3, 6720, Note_on_c, 1, 62, 100
  11.228 +3, 7560, Note_on_c, 1, 64, 100
  11.229 +3, 7560, Note_off_c, 1, 62, 127
  11.230 +3, 8400, Note_on_c, 1, 66, 100
  11.231 +3, 8400, Note_off_c, 1, 64, 127
  11.232 +3, 9240, Note_on_c, 1, 67, 100
  11.233 +3, 9240, Note_off_c, 1, 66, 127
  11.234 +3, 10080, Note_on_c, 1, 38, 80
  11.235 +3, 10080, Note_off_c, 1, 67, 127
  11.236 +3, 10800, Note_off_c, 1, 38, 127
  11.237 +3, 11040, Note_on_c, 1, 38, 80
  11.238 +3, 11760, Note_on_c, 1, 40, 80
  11.239 +3, 11760, Note_off_c, 1, 38, 127
  11.240 +3, 12000, Note_off_c, 1, 40, 127
  11.241 +3, 12240, Note_on_c, 1, 40, 80
  11.242 +3, 12480, Note_off_c, 1, 40, 127
  11.243 +3, 12720, Note_on_c, 1, 40, 80
  11.244 +3, 12840, Note_off_c, 1, 40, 127
  11.245 +3, 12960, Note_on_c, 1, 40, 80
  11.246 +3, 13920, Note_on_c, 1, 47, 80
  11.247 +3, 13920, Note_off_c, 1, 40, 127
  11.248 +3, 14640, Note_off_c, 1, 47, 127
  11.249 +3, 14880, Note_on_c, 1, 47, 80
  11.250 +3, 15600, Note_on_c, 1, 45, 80
  11.251 +3, 15600, Note_off_c, 1, 47, 127
  11.252 +3, 15840, Note_off_c, 1, 45, 127
  11.253 +3, 16080, Note_on_c, 1, 45, 80
  11.254 +3, 16320, Note_off_c, 1, 45, 127
  11.255 +3, 16560, Note_on_c, 1, 45, 80
  11.256 +3, 16680, Note_off_c, 1, 45, 127
  11.257 +3, 16800, Note_on_c, 1, 45, 80
  11.258 +3, 17760, Note_on_c, 1, 38, 80
  11.259 +3, 17760, Note_off_c, 1, 45, 127
  11.260 +3, 18480, Note_off_c, 1, 38, 127
  11.261 +3, 18720, Note_on_c, 1, 38, 80
  11.262 +3, 19440, Note_on_c, 1, 40, 80
  11.263 +3, 19440, Note_off_c, 1, 38, 127
  11.264 +3, 19680, Note_off_c, 1, 40, 127
  11.265 +3, 19920, Note_on_c, 1, 40, 80
  11.266 +3, 20160, Note_off_c, 1, 40, 127
  11.267 +3, 20400, Note_on_c, 1, 40, 80
  11.268 +3, 20520, Note_off_c, 1, 40, 127
  11.269 +3, 20640, Note_on_c, 1, 40, 80
  11.270 +3, 21600, Note_on_c, 1, 47, 80
  11.271 +3, 21600, Note_off_c, 1, 40, 127
  11.272 +3, 22320, Note_off_c, 1, 47, 127
  11.273 +3, 22560, Note_on_c, 1, 47, 80
  11.274 +3, 23280, Note_on_c, 1, 45, 80
  11.275 +3, 23280, Note_off_c, 1, 47, 127
  11.276 +3, 23520, Note_off_c, 1, 45, 127
  11.277 +3, 23760, Note_on_c, 1, 45, 80
  11.278 +3, 24000, Note_off_c, 1, 45, 127
  11.279 +3, 24240, Note_on_c, 1, 45, 80
  11.280 +3, 24360, Note_off_c, 1, 45, 127
  11.281 +3, 24480, Note_on_c, 1, 45, 80
  11.282 +3, 24960, Note_off_c, 1, 45, 127
  11.283 +3, 25440, Note_on_c, 1, 43, 80
  11.284 +3, 25920, Note_off_c, 1, 43, 127
  11.285 +3, 27360, Note_on_c, 1, 47, 80
  11.286 +3, 27840, Note_off_c, 1, 47, 127
  11.287 +3, 29280, Note_on_c, 1, 45, 80
  11.288 +3, 29760, Note_off_c, 1, 45, 127
  11.289 +3, 32640, Note_on_c, 1, 45, 80
  11.290 +3, 33120, Note_on_c, 1, 43, 80
  11.291 +3, 33120, Note_off_c, 1, 45, 127
  11.292 +3, 33600, Note_off_c, 1, 43, 127
  11.293 +3, 35040, Note_on_c, 1, 47, 80
  11.294 +3, 35520, Note_off_c, 1, 47, 127
  11.295 +3, 36960, Note_on_c, 1, 45, 80
  11.296 +3, 37680, Note_off_c, 1, 45, 127
  11.297 +3, 37920, Note_on_c, 1, 45, 80
  11.298 +3, 38400, Note_off_c, 1, 45, 127
  11.299 +3, 38640, Note_on_c, 1, 45, 80
  11.300 +3, 38880, Note_off_c, 1, 45, 127
  11.301 +3, 39120, Note_on_c, 1, 45, 80
  11.302 +3, 39600, Note_off_c, 1, 45, 127
  11.303 +3, 39840, Note_on_c, 1, 45, 80
  11.304 +3, 40080, Note_off_c, 1, 45, 127
  11.305 +3, 40320, Note_on_c, 1, 45, 80
  11.306 +3, 40800, Note_on_c, 1, 38, 80
  11.307 +3, 40800, Note_off_c, 1, 45, 127
  11.308 +3, 41520, Note_off_c, 1, 38, 127
  11.309 +3, 41760, Note_on_c, 1, 38, 80
  11.310 +3, 42240, Note_off_c, 1, 38, 127
  11.311 +3, 42480, Note_on_c, 1, 40, 80
  11.312 +3, 42720, Note_off_c, 1, 40, 127
  11.313 +3, 42960, Note_on_c, 1, 40, 80
  11.314 +3, 43200, Note_off_c, 1, 40, 127
  11.315 +3, 43440, Note_on_c, 1, 40, 80
  11.316 +3, 43560, Note_off_c, 1, 40, 127
  11.317 +3, 43680, Note_on_c, 1, 40, 80
  11.318 +3, 44640, Note_off_c, 1, 40, 127
  11.319 +3, 44640, Note_on_c, 1, 47, 80
  11.320 +3, 45360, Note_off_c, 1, 47, 127
  11.321 +3, 45600, Note_on_c, 1, 47, 80
  11.322 +3, 46320, Note_off_c, 1, 47, 127
  11.323 +3, 46320, Note_on_c, 1, 45, 80
  11.324 +3, 46560, Note_off_c, 1, 45, 127
  11.325 +3, 46800, Note_on_c, 1, 45, 80
  11.326 +3, 47040, Note_off_c, 1, 45, 127
  11.327 +3, 47280, Note_on_c, 1, 45, 80
  11.328 +3, 47400, Note_off_c, 1, 45, 127
  11.329 +3, 47520, Note_on_c, 1, 45, 80
  11.330 +3, 48000, Note_off_c, 1, 45, 127
  11.331 +3, 48480, Note_on_c, 1, 43, 80
  11.332 +3, 49440, Note_on_c, 1, 45, 80
  11.333 +3, 49440, Note_off_c, 1, 43, 127
  11.334 +3, 50400, Note_off_c, 1, 45, 127
  11.335 +3, 50400, Note_on_c, 1, 47, 80
  11.336 +3, 51360, Note_on_c, 1, 49, 80
  11.337 +3, 51360, Note_off_c, 1, 47, 127
  11.338 +3, 52320, Note_off_c, 1, 49, 127
  11.339 +3, 52320, Note_on_c, 1, 38, 100
  11.340 +3, 55680, Note_off_c, 1, 38, 127
  11.341 +3, 55680, End_track
  11.342 +4, 0, Start_track
  11.343 +4, 0, Title_t, "drums"
  11.344 +4, 0, Control_c, 9, 10, 64
  11.345 +4, 0, Control_c, 9, 7, 100
  11.346 +4, 0, Control_c, 9, 7, 100
  11.347 +4, 0, Control_c, 9, 91, 0
  11.348 +4, 0, Control_c, 9, 7, 100
  11.349 +4, 0, Control_c, 9, 93, 30
  11.350 +4, 0, Control_c, 9, 93, 0
  11.351 +4, 0, Control_c, 9, 10, 64
  11.352 +4, 0, Control_c, 9, 93, 30
  11.353 +4, 0, Control_c, 9, 121, 0
  11.354 +4, 0, Control_c, 9, 91, 30
  11.355 +4, 0, Program_c, 9, 0
  11.356 +4, 0, Control_c, 9, 32, 0
  11.357 +4, 0, Control_c, 9, 91, 30
  11.358 +4, 0, Control_c, 9, 0, 1
  11.359 +4, 0, Control_c, 9, 10, 64
  11.360 +4, 10080, Note_on_c, 9, 35, 80
  11.361 +4, 10558, Note_off_c, 9, 35, 127
  11.362 +4, 10560, Note_on_c, 9, 38, 80
  11.363 +4, 11038, Note_off_c, 9, 38, 127
  11.364 +4, 11040, Note_on_c, 9, 35, 80
  11.365 +4, 11518, Note_off_c, 9, 35, 127
  11.366 +4, 11520, Note_on_c, 9, 38, 80
  11.367 +4, 11759, Note_off_c, 9, 38, 127
  11.368 +4, 11760, Note_on_c, 9, 35, 80
  11.369 +4, 12238, Note_off_c, 9, 35, 127
  11.370 +4, 12240, Note_on_c, 9, 35, 80
  11.371 +4, 12478, Note_off_c, 9, 35, 127
  11.372 +4, 12480, Note_on_c, 9, 38, 80
  11.373 +4, 12958, Note_off_c, 9, 38, 127
  11.374 +4, 12960, Note_on_c, 9, 35, 80
  11.375 +4, 13198, Note_off_c, 9, 35, 127
  11.376 +4, 13200, Note_on_c, 9, 35, 80
  11.377 +4, 13439, Note_off_c, 9, 35, 127
  11.378 +4, 13440, Note_on_c, 9, 38, 80
  11.379 +4, 13918, Note_off_c, 9, 38, 127
  11.380 +4, 13920, Note_on_c, 9, 35, 80
  11.381 +4, 14398, Note_off_c, 9, 35, 127
  11.382 +4, 14400, Note_on_c, 9, 38, 80
  11.383 +4, 14878, Note_off_c, 9, 38, 127
  11.384 +4, 14880, Note_on_c, 9, 35, 80
  11.385 +4, 15358, Note_off_c, 9, 35, 127
  11.386 +4, 15360, Note_on_c, 9, 38, 80
  11.387 +4, 15599, Note_off_c, 9, 38, 127
  11.388 +4, 15600, Note_on_c, 9, 35, 80
  11.389 +4, 16078, Note_off_c, 9, 35, 127
  11.390 +4, 16080, Note_on_c, 9, 35, 80
  11.391 +4, 16318, Note_off_c, 9, 35, 127
  11.392 +4, 16320, Note_on_c, 9, 38, 80
  11.393 +4, 16798, Note_off_c, 9, 38, 127
  11.394 +4, 16800, Note_on_c, 9, 35, 80
  11.395 +4, 17038, Note_off_c, 9, 35, 127
  11.396 +4, 17040, Note_on_c, 9, 35, 80
  11.397 +4, 17279, Note_off_c, 9, 35, 127
  11.398 +4, 17280, Note_on_c, 9, 38, 80
  11.399 +4, 17758, Note_off_c, 9, 38, 127
  11.400 +4, 17760, Note_on_c, 9, 35, 80
  11.401 +4, 18238, Note_off_c, 9, 35, 127
  11.402 +4, 18240, Note_on_c, 9, 38, 80
  11.403 +4, 18718, Note_off_c, 9, 38, 127
  11.404 +4, 18720, Note_on_c, 9, 35, 80
  11.405 +4, 19198, Note_off_c, 9, 35, 127
  11.406 +4, 19200, Note_on_c, 9, 38, 80
  11.407 +4, 19439, Note_off_c, 9, 38, 127
  11.408 +4, 19440, Note_on_c, 9, 35, 80
  11.409 +4, 19918, Note_off_c, 9, 35, 127
  11.410 +4, 19920, Note_on_c, 9, 35, 80
  11.411 +4, 20158, Note_off_c, 9, 35, 127
  11.412 +4, 20160, Note_on_c, 9, 38, 80
  11.413 +4, 20638, Note_off_c, 9, 38, 127
  11.414 +4, 20640, Note_on_c, 9, 35, 80
  11.415 +4, 20878, Note_off_c, 9, 35, 127
  11.416 +4, 20880, Note_on_c, 9, 35, 80
  11.417 +4, 21119, Note_off_c, 9, 35, 127
  11.418 +4, 21120, Note_on_c, 9, 38, 80
  11.419 +4, 21598, Note_off_c, 9, 38, 127
  11.420 +4, 21600, Note_on_c, 9, 35, 80
  11.421 +4, 22078, Note_off_c, 9, 35, 127
  11.422 +4, 22080, Note_on_c, 9, 38, 80
  11.423 +4, 22558, Note_off_c, 9, 38, 127
  11.424 +4, 22560, Note_on_c, 9, 35, 80
  11.425 +4, 23038, Note_off_c, 9, 35, 127
  11.426 +4, 23040, Note_on_c, 9, 38, 80
  11.427 +4, 23279, Note_off_c, 9, 38, 127
  11.428 +4, 23280, Note_on_c, 9, 35, 80
  11.429 +4, 23758, Note_off_c, 9, 35, 127
  11.430 +4, 23760, Note_on_c, 9, 35, 80
  11.431 +4, 23998, Note_off_c, 9, 35, 127
  11.432 +4, 24000, Note_on_c, 9, 38, 80
  11.433 +4, 24478, Note_off_c, 9, 38, 127
  11.434 +4, 24480, Note_on_c, 9, 35, 80
  11.435 +4, 24718, Note_off_c, 9, 35, 127
  11.436 +4, 24720, Note_on_c, 9, 35, 80
  11.437 +4, 24959, Note_off_c, 9, 35, 127
  11.438 +4, 24960, Note_on_c, 9, 38, 80
  11.439 +4, 25438, Note_off_c, 9, 38, 127
  11.440 +4, 25440, Note_on_c, 9, 35, 80
  11.441 +4, 25918, Note_off_c, 9, 35, 127
  11.442 +4, 27360, Note_on_c, 9, 35, 80
  11.443 +4, 27838, Note_off_c, 9, 35, 127
  11.444 +4, 29280, Note_on_c, 9, 35, 80
  11.445 +4, 29758, Note_off_c, 9, 35, 127
  11.446 +4, 33120, Note_on_c, 9, 35, 80
  11.447 +4, 33598, Note_off_c, 9, 35, 127
  11.448 +4, 33600, Note_on_c, 9, 39, 80
  11.449 +4, 34078, Note_off_c, 9, 39, 127
  11.450 +4, 34560, Note_on_c, 9, 39, 80
  11.451 +4, 35038, Note_off_c, 9, 39, 127
  11.452 +4, 35040, Note_on_c, 9, 35, 80
  11.453 +4, 35518, Note_off_c, 9, 35, 127
  11.454 +4, 35520, Note_on_c, 9, 39, 80
  11.455 +4, 35998, Note_off_c, 9, 39, 127
  11.456 +4, 36480, Note_on_c, 9, 39, 80
  11.457 +4, 36958, Note_off_c, 9, 39, 127
  11.458 +4, 36960, Note_on_c, 9, 35, 80
  11.459 +4, 37438, Note_off_c, 9, 35, 127
  11.460 +4, 37440, Note_on_c, 9, 39, 80
  11.461 +4, 37918, Note_off_c, 9, 39, 127
  11.462 +4, 38400, Note_on_c, 9, 39, 80
  11.463 +4, 38878, Note_off_c, 9, 39, 127
  11.464 +4, 38880, Note_on_c, 9, 38, 80
  11.465 +4, 39120, Note_on_c, 9, 38, 80
  11.466 +4, 39120, Note_on_c, 9, 38, 80
  11.467 +4, 39120, Note_off_c, 9, 38, 127
  11.468 +4, 39360, Note_off_c, 9, 38, 127
  11.469 +4, 39360, Note_on_c, 9, 39, 100
  11.470 +4, 39600, Note_off_c, 9, 39, 127
  11.471 +4, 39600, Note_on_c, 9, 38, 80
  11.472 +4, 39840, Note_off_c, 9, 38, 127
  11.473 +4, 39840, Note_on_c, 9, 38, 100
  11.474 +4, 40080, Note_off_c, 9, 38, 127
  11.475 +4, 40080, Note_on_c, 9, 38, 80
  11.476 +4, 40318, Note_off_c, 9, 38, 127
  11.477 +4, 40320, Note_on_c, 9, 39, 80
  11.478 +4, 40560, Note_off_c, 9, 39, 127
  11.479 +4, 40560, Note_on_c, 9, 38, 80
  11.480 +4, 40800, Note_off_c, 9, 38, 127
  11.481 +4, 40800, Note_on_c, 9, 35, 80
  11.482 +4, 41278, Note_off_c, 9, 35, 127
  11.483 +4, 41280, Note_on_c, 9, 38, 80
  11.484 +4, 41758, Note_off_c, 9, 38, 127
  11.485 +4, 41760, Note_on_c, 9, 35, 80
  11.486 +4, 42238, Note_off_c, 9, 35, 127
  11.487 +4, 42240, Note_on_c, 9, 38, 80
  11.488 +4, 42479, Note_off_c, 9, 38, 127
  11.489 +4, 42480, Note_on_c, 9, 35, 80
  11.490 +4, 42958, Note_off_c, 9, 35, 127
  11.491 +4, 42960, Note_on_c, 9, 35, 80
  11.492 +4, 43198, Note_off_c, 9, 35, 127
  11.493 +4, 43200, Note_on_c, 9, 38, 80
  11.494 +4, 43678, Note_off_c, 9, 38, 127
  11.495 +4, 43680, Note_on_c, 9, 35, 80
  11.496 +4, 43918, Note_off_c, 9, 35, 127
  11.497 +4, 43920, Note_on_c, 9, 35, 80
  11.498 +4, 44159, Note_off_c, 9, 35, 127
  11.499 +4, 44160, Note_on_c, 9, 38, 80
  11.500 +4, 44638, Note_off_c, 9, 38, 127
  11.501 +4, 44640, Note_on_c, 9, 35, 80
  11.502 +4, 45118, Note_off_c, 9, 35, 127
  11.503 +4, 45120, Note_on_c, 9, 38, 80
  11.504 +4, 45598, Note_off_c, 9, 38, 127
  11.505 +4, 45600, Note_on_c, 9, 35, 80
  11.506 +4, 46078, Note_off_c, 9, 35, 127
  11.507 +4, 46080, Note_on_c, 9, 38, 80
  11.508 +4, 46320, Note_on_c, 9, 35, 80
  11.509 +4, 46320, Note_off_c, 9, 38, 127
  11.510 +4, 46798, Note_off_c, 9, 35, 127
  11.511 +4, 46800, Note_on_c, 9, 35, 80
  11.512 +4, 47040, Note_on_c, 9, 38, 80
  11.513 +4, 47040, Note_off_c, 9, 35, 127
  11.514 +4, 47518, Note_off_c, 9, 38, 127
  11.515 +4, 47520, Note_on_c, 9, 35, 80
  11.516 +4, 47758, Note_off_c, 9, 35, 127
  11.517 +4, 47760, Note_on_c, 9, 35, 80
  11.518 +4, 47999, Note_off_c, 9, 35, 127
  11.519 +4, 48000, Note_on_c, 9, 38, 80
  11.520 +4, 48238, Note_off_c, 9, 38, 127
  11.521 +4, 48240, Note_on_c, 9, 38, 80
  11.522 +4, 48478, Note_off_c, 9, 38, 127
  11.523 +4, 48480, Note_on_c, 9, 35, 80
  11.524 +4, 48958, Note_off_c, 9, 35, 127
  11.525 +4, 48960, Note_on_c, 9, 38, 80
  11.526 +4, 49198, Note_off_c, 9, 38, 127
  11.527 +4, 49200, Note_on_c, 9, 38, 80
  11.528 +4, 49438, Note_off_c, 9, 38, 127
  11.529 +4, 49440, Note_on_c, 9, 35, 80
  11.530 +4, 49918, Note_off_c, 9, 35, 127
  11.531 +4, 49920, Note_on_c, 9, 38, 80
  11.532 +4, 50158, Note_off_c, 9, 38, 127
  11.533 +4, 50160, Note_on_c, 9, 38, 80
  11.534 +4, 50398, Note_off_c, 9, 38, 127
  11.535 +4, 50400, Note_on_c, 9, 35, 80
  11.536 +4, 50878, Note_off_c, 9, 35, 127
  11.537 +4, 50880, Note_on_c, 9, 38, 80
  11.538 +4, 51118, Note_off_c, 9, 38, 127
  11.539 +4, 51120, Note_on_c, 9, 38, 80
  11.540 +4, 51358, Note_off_c, 9, 38, 127
  11.541 +4, 51360, Note_on_c, 9, 35, 80
  11.542 +4, 51599, Note_off_c, 9, 35, 127
  11.543 +4, 51600, Note_on_c, 9, 38, 80
  11.544 +4, 51838, Note_off_c, 9, 38, 127
  11.545 +4, 51840, Note_on_c, 9, 38, 80
  11.546 +4, 52078, Note_off_c, 9, 38, 127
  11.547 +4, 52080, Note_on_c, 9, 38, 80
  11.548 +4, 52318, Note_off_c, 9, 38, 127
  11.549 +4, 52320, Note_on_c, 9, 38, 80
  11.550 +4, 52798, Note_off_c, 9, 38, 127
  11.551 +4, 55680, End_track
  11.552 +0, 0, End_of_file
    12.1 Binary file music/pony-title.mid has changed
    13.1 Binary file music/sync-test.mid has changed
    14.1 Binary file music/sync-test.rg has changed