Safe Haskell | Safe-Inferred |
---|
Carnatic style pitch ornaments.
The names don't correspond directly with anything traditional, as far as I know, but are inspired by http://www.gswift.com/article-2.html.
Pitch ornaments can be expressed either as pitch calls, or as control calls meant for a transpose track. They both have pros and cons:
Transposition control signal:
- I can keep the pitches separate and clear and collapse the pitch track. This correctly reflects the underlying swaram, with the gamakam as separate ornamentation.
- Related to the above, each call doesn't need to repeat the the pitch arg, so there's less redundancy. Calls are also simpler with one fewer argument.
Pitch signal:
- A pitch call can use absolute (
t-nn
) or scalar (t-diatonic
) transposition based on the type of its arguments, while the transpose signal has to either use a separate track, or the somewhat awkward->
call. - The pitch signal can represent an ornament involving multiple pitches, e.g. a slide frome one pitch to another. A transposition signal can only represent offsets from an external pitch.
So the pitch signal is more powerful, but the transposition signal is often more convenient, and can lead to less redundant notation. Unless I can think of a way to get the advantages of both, I might have to have both around, with their own versions of the same calls.
Synopsis
- library :: Library.Library
- module_ :: Module.Module
- kampita_variations :: Text -> (Maybe Trill.Direction -> Maybe Trill.Direction -> call) -> [(Expr.Symbol, call)]
- transition_default :: RealTime.RealTime
- jaru_time_default :: RealTime.RealTime
- speed_arg :: Sig.Parser Typecheck.RealTimeFunctionT
- neighbor_arg :: Sig.Parser ScoreT.Function
- lilt_env :: Sig.Parser Double
- c_kampita :: Maybe Trill.Direction -> Maybe Trill.Direction -> Generator Pitch
- trill_transitions :: Maybe Bool -> Trill.Adjust -> Double -> ScoreTime -> Typecheck.RealTimeFunctionT -> (ScoreTime, ScoreTime) -> Deriver [RealTime.RealTime]
- trill_from_transitions :: ScoreT.Function -> ScoreT.Function -> [RealTime.RealTime] -> [(RealTime.RealTime, Signal.Y)]
- c_dip :: Generator Pitch
- c_jaru :: Generator Pitch
- c_jaru_intervals :: ScoreT.TransposeT -> [Signal.Y] -> Generator Pitch
- c_kampita_c :: Maybe Trill.Direction -> Maybe Trill.Direction -> Generator Control
- kampita :: Maybe Trill.Direction -> Maybe Trill.Direction -> Trill.Adjust -> ScoreT.Function -> Typecheck.RealTimeFunctionT -> RealTime.RealTime -> DeriveT.Duration -> Double -> PassedArgs a -> Deriver Signal.Control
- smooth_trill :: RealTime.RealTime -> ScoreT.Function -> ScoreT.Function -> [RealTime.RealTime] -> Deriver Signal.Control
- convert_directions :: RealTime.RealTime -> ScoreT.Function -> Maybe Trill.Direction -> Maybe Trill.Direction -> ((ScoreT.Function, ScoreT.Function), Maybe Bool)
- c_nkampita_c :: Maybe Trill.Direction -> Maybe Trill.Direction -> Generator Control
- c_dip_c :: Generator Control
- dip :: Double -> Double -> Typecheck.RealTimeFunctionT -> Double -> RealTime.RealTime -> (ScoreTime, ScoreTime) -> Deriver Signal.Control
- jaru_transition_c :: CallName -> Maybe RealTime.RealTime -> Doc.Doc -> Generator Control
- c_jaru_intervals_c :: [Signal.Y] -> Generator Control
- jaru :: RealTime.RealTime -> RealTime.RealTime -> RealTime.RealTime -> RealTime.RealTime -> [Signal.Y] -> Signal.Control
- generator1 :: CallName -> Tags.Tags -> Doc.Doc -> WithArgDoc (PassedArgs d -> Deriver d) -> Call (GeneratorFunc d)
Documentation
kampita_variations :: Text -> (Maybe Trill.Direction -> Maybe Trill.Direction -> call) -> [(Expr.Symbol, call)] Source #
standard parameters
pitch calls
trill_transitions :: Maybe Bool -> Trill.Adjust -> Double -> ScoreTime -> Typecheck.RealTimeFunctionT -> (ScoreTime, ScoreTime) -> Deriver [RealTime.RealTime] Source #
trill_from_transitions :: ScoreT.Function -> ScoreT.Function -> [RealTime.RealTime] -> [(RealTime.RealTime, Signal.Y)] Source #
Make a trill signal from a list of transition times.
c_jaru_intervals :: ScoreT.TransposeT -> [Signal.Y] -> Generator Pitch Source #
control calls
kampita :: Maybe Trill.Direction -> Maybe Trill.Direction -> Trill.Adjust -> ScoreT.Function -> Typecheck.RealTimeFunctionT -> RealTime.RealTime -> DeriveT.Duration -> Double -> PassedArgs a -> Deriver Signal.Control Source #
You don't think there are too many arguments, do you?
smooth_trill :: RealTime.RealTime -> ScoreT.Function -> ScoreT.Function -> [RealTime.RealTime] -> Deriver Signal.Control Source #
convert_directions :: RealTime.RealTime -> ScoreT.Function -> Maybe Trill.Direction -> Maybe Trill.Direction -> ((ScoreT.Function, ScoreT.Function), Maybe Bool) Source #
dip :: Double -> Double -> Typecheck.RealTimeFunctionT -> Double -> RealTime.RealTime -> (ScoreTime, ScoreTime) -> Deriver Signal.Control Source #
jaru_transition_c :: CallName -> Maybe RealTime.RealTime -> Doc.Doc -> Generator Control Source #
jaru :: RealTime.RealTime -> RealTime.RealTime -> RealTime.RealTime -> RealTime.RealTime -> [Signal.Y] -> Signal.Control Source #
generator1 :: CallName -> Tags.Tags -> Doc.Doc -> WithArgDoc (PassedArgs d -> Deriver d) -> Call (GeneratorFunc d) Source #