module Sound.Tidal.Params where
import Sound.Tidal.Stream
import Sound.Tidal.Pattern
import Sound.OSC.FD
import Sound.OSC.Datum
import Data.Map as Map
make' :: (a -> Datum) -> Param -> Pattern a -> OscPattern
make' toOsc par p = fmap (\x -> Map.singleton par (defaultV x)) p
where defaultV a = Just $ toOsc a
sound :: Pattern String -> OscPattern
sound = make' string sound_p
sound_p = S "sound" Nothing
offset :: Pattern Double -> OscPattern
offset = make' float offset_p
offset_p = F "offset" (Just 0)
begin :: Pattern Double -> OscPattern
begin = make' float begin_p
begin_p = F "begin" (Just 0)
end :: Pattern Double -> OscPattern
end = make' float end_p
end_p = F "end" (Just 1)
speed :: Pattern Double -> OscPattern
speed = make' float speed_p
speed_p = F "speed" (Just 1)
pan :: Pattern Double -> OscPattern
pan = make' float pan_p
pan_p = F "pan" (Just 0.5)
velocity :: Pattern Double -> OscPattern
velocity = make' float velocity_p
velocity_p = F "velocity" (Just 0)
vowel :: Pattern String -> OscPattern
vowel = make' string vowel_p
vowel_p = S "vowel" (Just "")
cutoff :: Pattern Double -> OscPattern
cutoff = make' float cutoff_p
cutoff_p = F "cutoff" (Just 0)
resonance :: Pattern Double -> OscPattern
resonance = make' float resonance_p
resonance_p = F "resonance" (Just 0)
accelerate :: Pattern Double -> OscPattern
accelerate = make' float accelerate_p
accelerate_p = F "accelerate" (Just 0)
shape :: Pattern Double -> OscPattern
shape = make' float shape_p
shape_p = F "shape" (Just 0)
kriole :: Pattern Int -> OscPattern
kriole = make' int32 kriole_p
kriole_p = I "kriole" (Just 0)
gain :: Pattern Double -> OscPattern
gain = make' float gain_p
gain_p = F "gain" (Just 1)
cut :: Pattern Int -> OscPattern
cut = make' int32 cut_p
cut_p = I "cut" (Just (0))
delay :: Pattern Double -> OscPattern
delay = make' float delay_p
delay_p = F "delay" (Just (0))
delaytime :: Pattern Double -> OscPattern
delaytime = make' float delaytime_p
delaytime_p = F "delaytime" (Just (1))
delayfeedback :: Pattern Double -> OscPattern
delayfeedback = make' float delayfeedback_p
delayfeedback_p = F "delayfeedback" (Just (1))
crush :: Pattern Double -> OscPattern
crush = make' float crush_p
crush_p = F "crush" (Just 0)
coarse :: Pattern Int -> OscPattern
coarse = make' int32 coarse_p
coarse_p = I "coarse" (Just 0)
hcutoff :: Pattern Double -> OscPattern
hcutoff = make' float hcutoff_p
hcutoff_p = F "hcutoff" (Just 0)
hresonance :: Pattern Double -> OscPattern
hresonance = make' float hresonance_p
hresonance_p = F "hresonance" (Just 0)
bandf :: Pattern Double -> OscPattern
bandf = make' float bandf_p
bandf_p = F "bandf" (Just 0)
bandq :: Pattern Double -> OscPattern
bandq = make' float bandq_p
bandq_p = F "bandq" (Just 0)
unit :: Pattern String -> OscPattern
unit = make' string unit_p
unit_p = S "unit" (Just "rate")
loop :: Pattern Int -> OscPattern
loop = make' int32 loop_p
loop_p = I "loop" (Just 1)