Safe Haskell | Safe-Inferred |
---|
Utilities for kontakt.
Synopsis
- write :: FilePath -> Either Text Text -> IO ()
- tuning_ksp :: Maybe Patch.AttributeMap -> Patch.Scale -> Either Text Text
- tuning_template :: Text
- drum_mute_ksp :: Text -> CUtil.PitchedStrokes -> [(Drums.Group, [Drums.Group])] -> Either Text Text
- drum_mute_values :: CUtil.PitchedStrokes -> ([Int], [Int], [Drums.Group], Int)
- none :: Int
- make_stop_groups :: [(Drums.Group, [Drums.Group])] -> [Drums.Group] -> Either Text [Int]
- midi_pitch_array :: Vector.Unbox a => a -> [((Int, Int), a)] -> Vector.Vector a
- drum_mute_template :: Text
- interpolate :: Map Text Text -> Text -> Either Text Text
- ksp_array :: Int -> [Int] -> Text
Documentation
tuning_ksp
tuning_ksp :: Maybe Patch.AttributeMap -> Patch.Scale -> Either Text Text Source #
Create a script in Kontakt's hilariously incompetent KSP language to retune a 12TET patch to the given scale.
drum_mute_ksp
:: Text | |
-> CUtil.PitchedStrokes | |
-> [(Drums.Group, [Drums.Group])] | each Group along with a set of Groups that it stops |
-> Either Text Text |
Create KSP to handle sample stopping. Each drum Note has a Group, and each Group can stop a set of other groups from sounding.
Kontakt has a built-in mechanism, but as usual it gets it wrong. The built-in mechanism lets you assign notes to a group, and limit voices in the group, which means that two of the same strokes in a row will mute each other.
drum_mute_values :: CUtil.PitchedStrokes -> ([Int], [Int], [Drums.Group], Int) Source #
make_stop_groups :: [(Drums.Group, [Drums.Group])] -> [Drums.Group] -> Either Text [Int] Source #
midi_pitch_array :: Vector.Unbox a => a -> [((Int, Int), a)] -> Vector.Vector a Source #