-- maquinitas-tidal
-- parameters for instruments by Korg

module Boss.DR880 where

  import qualified Sound.Tidal.Params
  import Sound.Tidal.Pattern

  -- Drum machine 1
  
  drum1 :: Pattern String -> ControlPattern
  drum1 :: Pattern String -> ControlPattern
drum1 = Pattern Note -> ControlPattern
Sound.Tidal.Params.n forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a. Num a => a -> a -> a
subtract Note
60 forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Num a => String -> a
drum1midi forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
  
  drum1midi :: Num a => String -> a
  drum1midi :: forall a. Num a => String -> a
drum1midi String
m =
    case String
m of
      String
"kick1"         -> a
36
      String
"kick2"         -> a
35
      String
"snare1"        -> a
38
      String
"snare2"        -> a
40
      String
"closedHH"      -> a
42
      String
"crossStick"    -> a
37
      String
"clap"          -> a
39
      String
"cowbell"       -> a
56
      String
"pedalHH"       -> a
44
      String
"openHH"        -> a
46
      String
"tom1"          -> a
50
      String
"tom2"          -> a
48
      String
"tom3"          -> a
45
      String
"tom4"          -> a
41
      String
"chinaCym"      -> a
52
      String
"crash1"        -> a
49
      String
"crash2"        -> a
57
      String
"splashCym"     -> a
55
      String
"bell"          -> a
53
      String
"ride"          -> a
51
      String
_               -> a
0  -- no match

  
  -- Drum machine 2
  
  drum2 :: Pattern String -> ControlPattern
  drum2 :: Pattern String -> ControlPattern
drum2 = Pattern Note -> ControlPattern
Sound.Tidal.Params.n forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a. Num a => a -> a -> a
subtract Note
60 forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Num a => String -> a
drum2midi forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
  
  drum2midi :: Num a => String -> a
  drum2midi :: forall a. Num a => String -> a
drum2midi String
m =
    case String
m of
      String
"kick1"       -> a
60
      String
"kick2"       -> a
61
      String
"snare1"      -> a
62
      String
"snare2"      -> a
63
      String
"closedHH"    -> a
64
      String
"crossStick"  -> a
54
      String
"clap"        -> a
91
      String
"cowbell"     -> a
95
      String
"pedalHH"     -> a
96
      String
"openHH"      -> a
97
      String
"tom1"        -> a
69
      String
"tom2"        -> a
94
      String
"tom3"        -> a
70
      String
"tom4"        -> a
82
      String
"chinaCym"    -> a
92
      String
"crash1"      -> a
89
      String
"crash2"      -> a
90
      String
"splashCym"   -> a
93
      String
"bell"        -> a
84
      String
"ride"        -> a
59  
      String
_             -> a
0  -- no match


  -- Drum machine 3
  
  drum3 :: Pattern String -> ControlPattern
  drum3 :: Pattern String -> ControlPattern
drum3 = Pattern Note -> ControlPattern
Sound.Tidal.Params.n forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall a. Num a => a -> a -> a
subtract Note
60 forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Num a => String -> a
drum3midi forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
  
  drum3midi :: Num a => String -> a
  drum3midi :: forall a. Num a => String -> a
drum3midi String
m =
    case String
m of
      String
"kick1"       -> a
86
      String
"kick2"       -> a
87
      String
"snare1"      -> a
78
      String
"snare2"      -> a
79
      String
"closedHH"    -> a
83
      String
"crossStick"  -> a
76
      String
"clap"        -> a
77
      String
"cowbell"     -> a
85
      String
"pedalHH"     -> a
66
      String
"openHH"      -> a
65
      String
"tom1"        -> a
71
      String
"tom2"        -> a
72
      String
"tom3"        -> a
75
      String
"tom4"        -> a
67
      String
"chinaCym"    -> a
68
      String
"crash1"      -> a
73
      String
"crash2"      -> a
74
      String
"splashCym"   -> a
58
      String
"bell"        -> a
80
      String
"ride"        -> a
81
      String
_             -> a
0  -- no match