boomwhacker 0.0.2 → 0.0.2.1
raw patch · 2 files changed
+18/−10 lines, 2 files
Files
- boomwhacker.cabal +6/−6
- src/Main.hs +12/−4
boomwhacker.cabal view
@@ -1,5 +1,5 @@ Name: boomwhacker-Version: 0.0.2+Version: 0.0.2.1 Synopsis: Convert MIDI file to play-along boomwhacker animation Description: Convert MIDI file to play-along boomwhacker animation:@@ -28,7 +28,7 @@ ShakeRules.hs Source-Repository this- Tag: 0.0.2+ Tag: 0.0.2.1 Type: darcs Location: https://hub.darcs.net/thielema/boomwhacker @@ -38,17 +38,17 @@ Executable boomwhacker Build-Depends:- HPDF >=1.7 && <1.8,- time >=1.8 && <1.14,+ HPDF >=1.7 && <1.9,+ time >=1.8 && <1.16, shell-utility >=0.1 && <0.2,- optparse-applicative >=0.11 && <0.19,+ optparse-applicative >=0.11 && <0.20, midi >=0.2.2 && <0.3, event-list >=0.1.3 && <0.2, non-negative >=0.1.2 && <0.2, filepath >=1.3 && <1.6, transformers >=0.3 && <0.7, non-empty >=0.3.4 && <0.4,- containers >=0.4 && <0.8,+ containers >=0.4 && <0.9, array >=0.4 && <0.6, utility-ht >=0.0.10 && <0.1, base >=4.5 && <5
src/Main.hs view
@@ -279,10 +279,18 @@ selectTracks [] midi = Right midi selectTracks trackNos (MidiFile.Cons typ division tracks) = MidiFile.Cons typ division <$>- let trackMap = IntMap.fromList $ zip [1..] tracks in- Trav.forM trackNos $ \trackNo ->- maybe (Left $ printf "track %d not available" trackNo) Right $- IntMap.lookup trackNo trackMap+ let trackSet = IntSet.fromList trackNos in+ Trav.forM (zip [1..] tracks) $ \(trackNo,track) ->+ Right $+ if IntSet.member trackNo trackSet+ then track+ else EventList.filter isTempoEvent track++isTempoEvent :: MidiEvent.T -> Bool+isTempoEvent ev =+ case ev of+ MidiEvent.MetaEvent (MetaEvent.SetTempo _microsPerQN) -> True+ _ -> False noteLetters :: [Char]