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

module Korg where

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

  volcaBeats :: Pattern String -> ControlPattern
  volcaBeats :: Pattern String -> ControlPattern
volcaBeats = Pattern Note -> ControlPattern
n (Pattern Note -> ControlPattern)
-> (Pattern String -> Pattern Note)
-> Pattern String
-> ControlPattern
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Note -> Note -> Note
forall a. Num a => a -> a -> a
subtract Note
60 (Note -> Note) -> (String -> Note) -> String -> Note
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Note
forall a. Num a => String -> a
volcaBeatsMidiNote (String -> Note) -> Pattern String -> Pattern Note
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)

  volcaBeatsMidiNote :: Num a => String -> a
  volcaBeatsMidiNote :: String -> a
volcaBeatsMidiNote String
"bd" = a
36
  volcaBeatsMidiNote String
"sd" = a
38
  volcaBeatsMidiNote String
"lt" = a
43
  volcaBeatsMidiNote String
"ht" = a
50
  volcaBeatsMidiNote String
"ch" = a
42
  volcaBeatsMidiNote String
"oh" = a
46
  volcaBeatsMidiNote String
"cp" = a
39
  volcaBeatsMidiNote String
"cl" = a
75
  volcaBeatsMidiNote String
"ag" = a
67
  volcaBeatsMidiNote String
"cr" = a
49

  -- Korg MR-16 drum machine
  mr16 :: Pattern String -> ControlPattern
  mr16 :: Pattern String -> ControlPattern
mr16 = Pattern Note -> ControlPattern
n (Pattern Note -> ControlPattern)
-> (Pattern String -> Pattern Note)
-> Pattern String
-> ControlPattern
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Note -> Note -> Note
forall a. Num a => a -> a -> a
subtract Note
60 (Note -> Note) -> (String -> Note) -> String -> Note
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Note
forall a. Num a => String -> a
mr16MidiNote (String -> Note) -> Pattern String -> Pattern Note
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
  mr16MidiNote :: Num a => String -> a
  -- bass drum
  mr16MidiNote :: String -> a
mr16MidiNote String
"bd" = a
35
  -- rimshot
  mr16MidiNote String
"rs" = a
37
  -- snare drum
  mr16MidiNote String
"sd" = a
38
  -- clap
  mr16MidiNote String
"cp" = a
39
  -- low tom
  mr16MidiNote String
"lt" = a
41
  -- closed hihat
  mr16MidiNote String
"ch" = a
42
  -- open hihat
  mr16MidiNote String
"oh" = a
46
  -- high tom
  mr16MidiNote String
"ht" = a
47
  -- crash
  mr16MidiNote String
"cr" = a
49
  -- ride
  mr16MidiNote String
"rd" = a
51
  -- low conga
  mr16MidiNote String
"lc" = a
52
  -- high conga
  mr16MidiNote String
"hc" = a
53
  -- tambourine
  mr16MidiNote String
"ta" = a
54
  -- cow bell
  mr16MidiNote String
"cb" = a
56
  -- timbale
  mr16MidiNote String
"ti" = a
57
  -- cabasa
  mr16MidiNote String
"ca" = a
58
  -- wood block
  mr16MidiNote String
"wb" = a
60
  -- low agogo
  mr16MidiNote String
"la" = a
61
  -- high agogo
  mr16MidiNote String
"ha" = a
63
  -- metronome piano
  mr16MidiNote String
"mp" = a
64
  -- metronome forte
  mr16MidiNote String
"mf" = a
65