-- maquinitas-tidal
-- parameters for instruments by Korg
module Korg where
import Sound.Tidal.Params
import Sound.Tidal.Pattern
volcaBeats :: Pattern String -> ControlPattern
volcaBeats = n . (subtract 60 . volcaBeatsMidiNote <$>)
volcaBeatsMidiNote :: Num a => String -> a
volcaBeatsMidiNote "bd" = 36
volcaBeatsMidiNote "sd" = 38
volcaBeatsMidiNote "lt" = 43
volcaBeatsMidiNote "ht" = 50
volcaBeatsMidiNote "ch" = 42
volcaBeatsMidiNote "oh" = 46
volcaBeatsMidiNote "cp" = 39
volcaBeatsMidiNote "cl" = 75
volcaBeatsMidiNote "ag" = 67
volcaBeatsMidiNote "cr" = 49
volcaBeatsMidiNote _ = 0
-- Korg MR-16 drum machine
mr16 :: Pattern String -> ControlPattern
mr16 = n . (subtract 60 . mr16MidiNote <$>)
mr16MidiNote :: Num a => String -> a
-- bass drum
mr16MidiNote "bd" = 35
-- rimshot
mr16MidiNote "rs" = 37
-- snare drum
mr16MidiNote "sd" = 38
-- clap
mr16MidiNote "cp" = 39
-- low tom
mr16MidiNote "lt" = 41
-- closed hihat
mr16MidiNote "ch" = 42
-- open hihat
mr16MidiNote "oh" = 46
-- high tom
mr16MidiNote "ht" = 47
-- crash
mr16MidiNote "cr" = 49
-- ride
mr16MidiNote "rd" = 51
-- low conga
mr16MidiNote "lc" = 52
-- high conga
mr16MidiNote "hc" = 53
-- tambourine
mr16MidiNote "ta" = 54
-- cow bell
mr16MidiNote "cb" = 56
-- timbale
mr16MidiNote "ti" = 57
-- cabasa
mr16MidiNote "ca" = 58
-- wood block
mr16MidiNote "wb" = 60
-- low agogo
mr16MidiNote "la" = 61
-- high agogo
mr16MidiNote "ha" = 63
-- metronome piano
mr16MidiNote "mp" = 64
-- metronome forte
mr16MidiNote "mf" = 65