-- maquinitas-tidal
-- parameters for instruments by Roland

module Roland where
  import Sound.Tidal.Params
  import Sound.Tidal.Pattern
  
  -- i copied this from volcaBeats
  -- where this notation was used for midi notes
  -- so this needs to be adapted to CC
  sh01a :: Pattern String -> ControlPattern
  sh01a :: Pattern String -> ControlPattern
sh01a = Pattern Note -> ControlPattern
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
sh01aMidiCC forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)

  sh01aMidiCC :: Num a => String -> a
  sh01aMidiCC :: forall a. Num a => String -> a
sh01aMidiCC String
"modulation" = a
1
  sh01aMidiCC String
"lfoRate" = a
3
  sh01aMidiCC String
"portamentoTime" = a
5
  sh01aMidiCC String
"expressionPedal" = a
11
  sh01aMidiCC String
"lfoWaveform" = a
12
  sh01aMidiCC String
"vcoModDepth" = a
13
  sh01aMidiCC String
"vcoRange" = a
14
  sh01aMidiCC String
"vcoPulseWidth" = a
15
  sh01aMidiCC String
"vcoPwmSource" = a
16
  sh01aMidiCC String
"vcoModSens" = a
17
  sh01aMidiCC String
"vcoBendDepth" = a
18
  sh01aMidiCC String
"vcoPwmLevel" = a
19
  sh01aMidiCC String
"vcoSawLevel" = a
20
  sh01aMidiCC String
"vcoSubLevel" = a
21
  sh01aMidiCC String
"vcoSubType" = a
22
  sh01aMidiCC String
"vcoNoiseLevel" = a
23
  sh01aMidiCC String
"vcfEnvDepth" = a
24
  sh01aMidiCC String
"vcfModDepth" = a
25
  sh01aMidiCC String
"vcfKeyFollow" = a
26
  sh01aMidiCC String
"vcfBendDepth" = a
27
  sh01aMidiCC String
"vcaEnvSw" = a
28
  sh01aMidiCC String
"vcaEnvMode" = a
29
  sh01aMidiCC String
"envSustain" = a
30
  sh01aMidiCC String
"portamentMode" = a
31
  sh01aMidiCC String
"hold" = a
64
  sh01aMidiCC String
"portamento" = a
65
  sh01aMidiCC String
"vcfResonance" = a
71
  sh01aMidiCC String
"envRelease" = a
72
  sh01aMidiCC String
"envAttack" = a
73
  sh01aMidiCC String
"vcfCutoff" = a
74
  sh01aMidiCC String
"envDecay" = a
75
  sh01aMidiCC String
"tune" = a
76
  sh01aMidiCC String
"transposeSw" = a
77
  sh01aMidiCC String
"noiseMode" = a
78
  sh01aMidiCC String
"lfoMode" = a
79
  sh01aMidiCC String
"assignMode" = a
80
  sh01aMidiCC String
"chordVoice2Sw" = a
81
  sh01aMidiCC String
"chordVoice3Sw" = a
82
  sh01aMidiCC String
"chordVoice4Sw" = a
83
  sh01aMidiCC String
"chordVoice2KeyShift" = a
85
  sh01aMidiCC String
"chordVoice3KeyShift" = a
86
  sh01aMidiCC String
"chordVoice4KeyShift" = a
87

  -- TODO: also needs to be adapted
  tr08 :: Pattern String -> ControlPattern
  tr08 :: Pattern String -> ControlPattern
tr08 = Pattern Note -> ControlPattern
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
tr08MidiCC forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)

  tr08MidiCC :: String -> a
tr08MidiCC String
"bdTune" = a
20
  tr08MidiCC String
"bdTone" = a
21
  tr08MidiCC String
"bdComp" = a
22
  tr08MidiCC String
"bdDecay" = a
23
  tr08MidiCC String
"bdLevel" = a
24
  tr08MidiCC String
"sdTone" = a
25
  tr08MidiCC String
"sdSnappy" = a
26
  tr08MidiCC String
"sdComp" = a
27
  tr08MidiCC String
"sdDecay" = a
28
  tr08MidiCC String
"sdLevel" = a
29
  tr08MidiCC String
"ltTune" = a
46
  tr08MidiCC String
"ltDecay" = a
47
  tr08MidiCC String
"ltLevel" = a
48
  tr08MidiCC String
"mtTune" = a
49
  tr08MidiCC String
"mtDecay" = a
50
  tr08MidiCC String
"mtLevel" = a
51
  tr08MidiCC String
"htTune" = a
52
  tr08MidiCC String
"htDecay" = a
53
  tr08MidiCC String
"htLevel" = a
54
  tr08MidiCC String
"rsTune" = a
55
  tr08MidiCC String
"rsDecay" = a
56
  tr08MidiCC String
"rsLevel" = a
57
  tr08MidiCC String
"cpTune" = a
58
  tr08MidiCC String
"cpDecay" = a
59
  tr08MidiCC String
"cpLevel" = a
60
  tr08MidiCC String
"chTune" = a
61
  tr08MidiCC String
"chDecay" = a
62
  tr08MidiCC String
"chLevel" = a
63
  tr08MidiCC String
"accent" = a
71
  tr08MidiCC String
"ohTune" = a
80
  tr08MidiCC String
"ohDecay" = a
81
  tr08MidiCC String
"ohLevel" = a
82
  tr08MidiCC String
"cyTune" = a
83
  tr08MidiCC String
"cyDecay" = a
84
  tr08MidiCC String
"cyLevel" = a
85
  tr08MidiCC String
"cbTune" = a
86
  tr08MidiCC String
"cbDecay" = a
87
  tr08MidiCC String
"cbLevel" = a
88