Safe Haskell | Safe-Inferred |
---|
Derive.C.Bali.Reyong
Description
Calls for reyong and trompong techniques.
/-------\/----\/-------\/----\--\ 4e 4u 4a 5i 5o 5e 5u 5a 6i 6o 6e 6u 3 5 6 1 2 3 5 6 1 2 3 5
Synopsis
- module_ :: Module.Module
- library :: Library.Library
- cek :: Attrs.Attributes
- reyong_pattern :: [Char.Char] -> [Char.Char] -> Pattern
- c_ngoret :: Sig.Parser (Maybe.Maybe Pitch.Transpose) -> Generator Note
- voices_env :: Sig.Parser [Voice]
- c_tumpuk :: Generator Note
- tumpuk :: PassedArgs Score.Event -> DeriveT.ControlRef -> RealTime.RealTime -> [TumpukNote] -> NoteDeriver
- place_env :: Sig.Parser DeriveT.ControlRef
- type TumpukNote = (TumpukPitch, Attrs.Attributes, Dyn)
- data TumpukPitch
- type Dyn = Signal.Y
- realize_tumpuk :: Maybe.Maybe RealTime.RealTime -> RealTime.RealTime -> RealTime.RealTime -> Double -> Maybe.Maybe DeriveT.Pitch -> DeriveT.Pitch -> RealTime.RealTime -> [TumpukNote] -> NoteDeriver
- parse_tumpuk :: [Char.Char] -> Either Text [TumpukNote]
- articulations :: Map Char.Char (Attrs.Attributes, Dyn)
- c_tumpuk_auto :: Generator Note
- select_pattern :: RealTime.RealTime -> Double -> Double -> Either Text ([TumpukNote], RealTime.RealTime)
- tumpuk_patterns :: [([TumpukNote], (RealTime.RealTime, RealTime.RealTime))]
- c_byong :: Generator Note
- c_pitches :: [Pitch.Pitch] -> Generator Note
- c_cancel_kotekan :: Transformer Note
- c_norot :: Maybe.Maybe Bool -> Generator Note
- realize_positions :: ((Voice, note) -> NoteDeriver) -> [Voice] -> Map Pitch.PitchClass [note] -> Pitch.Pitch -> Deriver NoteDeriver
- realize_pattern :: Pattern -> Generator Note
- filter_voices :: [Voice] -> [a] -> [(Voice, a)]
- c_kotekan_regular :: Maybe.Maybe Text -> Maybe.Maybe Call.UpDown -> Generator Note
- kernel_doc :: Doc.Doc
- realize_notes_args :: PassedArgs a -> (Maybe.Maybe Bool, Bool) -> (Pitch.Pitch -> Maybe.Maybe Pitch.Note) -> Gangsa.Repeat -> ScoreTime -> (Voice, [[Note]]) -> NoteDeriver
- realize_notes :: (ScoreTime, ScoreTime) -> Types.Orientation -> (Bool, Bool) -> (Pitch.Pitch -> Maybe.Maybe Pitch.Note) -> Gangsa.Repeat -> ScoreTime -> (Voice, [Chord]) -> NoteDeriver
- kernel_to_pattern :: Call.UpDown -> Gangsa.Kernel -> Maybe.Maybe KotekanPattern
- get_parsed_pitch :: PassedArgs a -> Deriver (Pitch.Pitch, Pitch.Pitch -> Maybe.Maybe Pitch.Note)
- infer_prepare :: PassedArgs a -> Maybe.Maybe Bool -> Deriver (Maybe.Maybe Pitch.Pitch)
- make_articulation :: [Position] -> Bool -> CallName -> (Position -> [Pitch.Pitch]) -> Attrs.Attributes -> Generator Note
- type Voice = Int
- realize_note :: (Pitch.Pitch -> Maybe.Maybe Pitch.Note) -> Voice -> ScoreTime -> Note -> NoteDeriver
- data KotekanPattern = KotekanPattern {
- kotekan_above :: !([Maybe.Maybe Pitch.Step], Pitch.Step)
- kotekan_below :: !([Maybe.Maybe Pitch.Step], Pitch.Step)
- type Pattern = Map Pitch.PitchClass [[Chord]]
- type Chord = [Note]
- type Note = (Pitch.Pitch, Attrs.Attributes)
- make_pattern :: KotekanPattern -> Pattern
- kotekan_pattern :: Pitch.PitchClass -> [Pitch.Pitch] -> KotekanPattern -> Pitch.PitchClass -> [[Chord]]
- assign_positions :: KotekanPattern -> Pitch.PitchClass -> Pitch.PitchClass -> [Pitch.Pitch] -> [[Maybe.Maybe Pitch.Pitch]]
- assign_closest :: Ord key => (a -> b -> key) -> [a] -> [b] -> [(a, b)]
- parse_kotekan :: [Char.Char] -> [Char.Char] -> KotekanPattern
- parse_relative :: [Char.Char] -> [Maybe.Maybe Pitch.Step]
- type NoteTable = Map Char.Char Chord
- data Degree
- to_pc :: Degree -> Pitch.PitchClass
- parse_absolute :: NoteTable -> [Char.Char] -> [Chord]
- parse_note :: NoteTable -> Char.Char -> Note
- norot_prepare_patterns :: Map Pitch.PitchClass [[Chord]]
- norot_patterns :: Map Pitch.PitchClass [[Chord]]
- note_table :: Pitch.Octave -> Degree -> NoteTable
- data Position = Position {
- pos_cek :: !Pitch.Pitch
- pos_byong :: ![Pitch.Pitch]
- pos_table :: !NoteTable
- reyong_positions :: [Position]
- position1 :: Position
- position2 :: Position
- position3 :: Position
- position4 :: Position
- make_position :: NoteTable -> Char.Char -> [Char.Char] -> Position
- c_hand_damp :: Transformer Note
- hand_damp :: Set ScoreT.Instrument -> (RealTime.RealTime -> RealTime.RealTime) -> Stream.Stream Score.Event -> Stream.Stream Score.Event
- c_infer_damp :: Transformer Note
- damp_control :: ScoreT.Control
- infer_damp_voices :: Set ScoreT.Instrument -> (RealTime.RealTime -> RealTime.RealTime) -> (RealTime.RealTime -> RealTime.RealTime) -> [Score.Event] -> Log.LogId [Score.Event]
- make_damp :: RealTime.RealTime -> Signal.Y -> Score.Event -> Score.Event
- infer_damp :: (RealTime.RealTime -> RealTime.RealTime) -> [Score.Event] -> ([Maybe.Maybe Signal.Y], [Score.Event])
- could_damp :: Score.Event -> Bool
- damped :: Attrs.Attributes
- undamped :: Attrs.Attributes
- data Hand
- other :: Hand -> Hand
- assign_hands :: [Score.Event] -> ([(Hand, Score.Event)], [Score.Event])
- baris :: [([Char.Char], [Char.Char])]
- c_realize_reyong :: Transformer Note
- c_realize_trompong :: Transformer Note
- c_lower_octave_note :: Transformer Note
- c_upper :: Library.Calls Note
- solkattu_module :: Module.Module
- c_solkattu_note :: [Pitch.Step] -> Generator Note
Documentation
voices_env :: Sig.Parser [Voice] Source #
tumpuk
tumpuk :: PassedArgs Score.Event -> DeriveT.ControlRef -> RealTime.RealTime -> [TumpukNote] -> NoteDeriver Source #
type TumpukNote = (TumpukPitch, Attrs.Attributes, Dyn) Source #
Dyn 0 means a rest.
data TumpukPitch Source #
Constructors
Transpose Pitch.Step | |
Prev |
Instances
Show TumpukPitch Source # | |
Defined in Derive.C.Bali.Reyong Methods showsPrec :: Int -> TumpukPitch -> ShowS # show :: TumpukPitch -> String # showList :: [TumpukPitch] -> ShowS # | |
Eq TumpukPitch Source # | |
Defined in Derive.C.Bali.Reyong |
realize_tumpuk :: Maybe.Maybe RealTime.RealTime -> RealTime.RealTime -> RealTime.RealTime -> Double -> Maybe.Maybe DeriveT.Pitch -> DeriveT.Pitch -> RealTime.RealTime -> [TumpukNote] -> NoteDeriver Source #
parse_tumpuk :: [Char.Char] -> Either Text [TumpukNote] Source #
articulations :: Map Char.Char (Attrs.Attributes, Dyn) Source #
These more or less correspond to the group articulations:
/ X - + o m- nx .o
select_pattern :: RealTime.RealTime -> Double -> Double -> Either Text ([TumpukNote], RealTime.RealTime) Source #
If dur is long, use the slow end of the patterns. If dur is short, try to fit the pattern in the first 2/3, dropping patterns if they exceed that at their fastest.
tumpuk_patterns :: [([TumpukNote], (RealTime.RealTime, RealTime.RealTime))] Source #
Pattern and usable time range. TODO probably I can vary -=, nx, and .o, or just randomize the dyn for non-final notes.
c_byong
cancel
kilitan
realize_positions :: ((Voice, note) -> NoteDeriver) -> [Voice] -> Map Pitch.PitchClass [note] -> Pitch.Pitch -> Deriver NoteDeriver Source #
realize_pattern :: Pattern -> Generator Note Source #
Kilitan is implemented as a set of patterns indexed by an absolute pitch degree. The patterns are similar to kotekan, except with absolute pitches, and without a polos / sangsih division.
filter_voices :: [Voice] -> [a] -> [(Voice, a)] Source #
Select the given Voice indices.
kotekan
kernel_doc :: Doc.Doc Source #
realize_notes_args :: PassedArgs a -> (Maybe.Maybe Bool, Bool) -> (Pitch.Pitch -> Maybe.Maybe Pitch.Note) -> Gangsa.Repeat -> ScoreTime -> (Voice, [[Note]]) -> NoteDeriver Source #
realize_notes :: (ScoreTime, ScoreTime) -> Types.Orientation -> (Bool, Bool) -> (Pitch.Pitch -> Maybe.Maybe Pitch.Note) -> Gangsa.Repeat -> ScoreTime -> (Voice, [Chord]) -> NoteDeriver Source #
get_parsed_pitch :: PassedArgs a -> Deriver (Pitch.Pitch, Pitch.Pitch -> Maybe.Maybe Pitch.Note) Source #
Like Gangsa.get_pitch
, but get the symbolic pitch.
infer_prepare :: PassedArgs a -> Maybe.Maybe Bool -> Deriver (Maybe.Maybe Pitch.Pitch) Source #
Like Gangsa.infer_prepare
, except return a parsed Pitch.Pitch.
articulation
make_articulation :: [Position] -> Bool -> CallName -> (Position -> [Pitch.Pitch]) -> Attrs.Attributes -> Generator Note Source #
realize_note :: (Pitch.Pitch -> Maybe.Maybe Pitch.Note) -> Voice -> ScoreTime -> Note -> NoteDeriver Source #
kotekan
data KotekanPattern Source #
Constructors
KotekanPattern | |
Fields
|
Instances
Show KotekanPattern Source # | |
Defined in Derive.C.Bali.Reyong Methods showsPrec :: Int -> KotekanPattern -> ShowS # show :: KotekanPattern -> String # showList :: [KotekanPattern] -> ShowS # |
type Note = (Pitch.Pitch, Attrs.Attributes) Source #
make_pattern :: KotekanPattern -> Pattern Source #
Figure out a pattern for each note of the scale.
kotekan_pattern :: Pitch.PitchClass -> [Pitch.Pitch] -> KotekanPattern -> Pitch.PitchClass -> [[Chord]] Source #
assign_positions :: KotekanPattern -> Pitch.PitchClass -> Pitch.PitchClass -> [Pitch.Pitch] -> [[Maybe.Maybe Pitch.Pitch]] Source #
assign_closest :: Ord key => (a -> b -> key) -> [a] -> [b] -> [(a, b)] Source #
Find the value from the first list that is closest to the first element of the first list, and then zip them up.
parse_kotekan :: [Char.Char] -> [Char.Char] -> KotekanPattern Source #
parse_relative :: [Char.Char] -> [Maybe.Maybe Pitch.Step] Source #
absolute
type NoteTable = Map Char.Char Chord Source #
Map a char to the notes it represents for a certain position. Each position has different set of notes available. This is just to interpret a mini-notation for each position.
Saih lima pitch degree.
to_pc :: Degree -> Pitch.PitchClass Source #
norot_patterns :: Map Pitch.PitchClass [[Chord]] Source #
note_table :: Pitch.Octave -> Degree -> NoteTable Source #
Map letters to chords, starting from the given octave and Degree. Capital
letters get Attrs.mute
.
Constructors
Position | |
Fields
|
Instances
reyong_positions :: [Position] Source #
damping
hand_damp :: Set ScoreT.Instrument -> (RealTime.RealTime -> RealTime.RealTime) -> Stream.Stream Score.Event -> Stream.Stream Score.Event Source #
damp_control :: ScoreT.Control Source #
Multiply this by Controls.dynamic
for the dynamic of +mute notes created
by infer-damp.
Arguments
:: Set ScoreT.Instrument | |
-> (RealTime.RealTime -> RealTime.RealTime) | duration required to damp |
-> (RealTime.RealTime -> RealTime.RealTime) | |
-> [Score.Event] | |
-> Log.LogId [Score.Event] |
Divide notes into voices. Assign each note to a hand. The end of each note needs a free hand to damp. That can be the same hand if the next note with that hand is a sufficiently long time from now, or the opposite hand if it is not too busy.
make_damp :: RealTime.RealTime -> Signal.Y -> Score.Event -> Score.Event Source #
Create a damped note at the end of the given note.
Arguments
:: (RealTime.RealTime -> RealTime.RealTime) | |
-> [Score.Event] | |
-> ([Maybe.Maybe Signal.Y], [Score.Event]) | dump level for each event, or Nothing if undamped |
could_damp :: Score.Event -> Bool Source #
True for events which could get an inferred damp.
assign_hands :: [Score.Event] -> ([(Hand, Score.Event)], [Score.Event]) Source #
Assign hands based on the direction of the pitches. This is a bit simplistic but hopefully works well enough.
patterns
realize-reyong
octave transposition
solkattu
c_solkattu_note :: [Pitch.Step] -> Generator Note Source #
These calls are used by the Reyong
realization.