# HG changeset patch # User Robert McIntyre # Date 1336121104 18000 # Node ID 3e74bf517d8f330286cf8000f594a86eff12ab3c # Parent 32375de697e5b7d29789b1753b52b40d1e1b5550 enabled duty-selection via title information in the midi file. diff -r 32375de697e5 -r 3e74bf517d8f clojure/com/aurellem/run/music.clj --- a/clojure/com/aurellem/run/music.clj Fri May 04 03:34:32 2012 -0500 +++ b/clojure/com/aurellem/run/music.clj Fri May 04 03:45:04 2012 -0500 @@ -482,31 +482,19 @@ (int (* (:duration note-event) 0x100)))) notes-with-silence))) - (defn midi->mini-midi [#^File midi-file] (let [targets (target-tracks midi-file) get-track (fn [n] (if (not (nil? n)) (midi-track->mini-midi midi-file n) - []))] + [])) + duty-info (keys (track-info midi-file))] + {:voice-1 (get-track (nth targets 0)) :voice-2 (get-track (nth targets 1)) - :noise (get-track (nth targets 2))})) - - ;; {:track-1 (flatten (midi-track->mini-midi midi-file 0)) - ;; :track-2 (flatten (midi-track->mini-midi midi-file 1))}) - - - - - -(defn wave-duty - "get desired wave-duty from the file for the particular channel." - [#^File midi-file channel] - - - ) - + :noise (get-track (nth targets 2)) + :duty (zipmap (map :out duty-info) + (map :duty duty-info))})) (defn play-midi [#^File midi-file] (let [track-1-target 0xA000 @@ -514,15 +502,19 @@ program-target 0xC000 mini-midi (midi->mini-midi midi-file) long-silence (flatten (note-codes 20 0 9001)) - wave-duty-1 2 - wave-duty-2 3 + + voice-1 (flatten (:voice-1 mini-midi)) + wave-duty-1 ((:duty mini-midi) 0) + + voice-2 (flatten (:voice-2 mini-midi)) + wave-duty-2 ((:duty mini-midi) 1) ] (-> (second (music-base)) (set-memory-range track-1-target long-silence) (set-memory-range track-2-target long-silence) - (set-memory-range track-1-target (flatten (:voice-1 mini-midi))) - (set-memory-range track-2-target (flatten (:voice-2 mini-midi))) + (set-memory-range track-1-target voice-1) + (set-memory-range track-2-target voice-2) (set-memory-range program-target (music-kernel wave-duty-1 wave-duty-2)) diff -r 32375de697e5 -r 3e74bf517d8f music/Friendship is Magic (MLP Theme Song).rg Binary file music/Friendship is Magic (MLP Theme Song).rg has changed