Karya, built on 2020-11-26T21:03:17 (patch 23b5be2d53a9e8e7d6136cda5aae2849abe5cded)
Safe HaskellNone

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

Documentation

tumpuk

type TumpukNote = (TumpukPitch, Attrs.Attributes, Dyn) Source #

Dyn 0 means a rest.

data TumpukPitch Source #

Constructors

Transpose Pitch.Step 
Prev 

Instances

Instances details
Eq TumpukPitch # 
Instance details

Defined in Derive.C.Bali.Reyong

Show TumpukPitch # 
Instance details

Defined in Derive.C.Bali.Reyong

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_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

infer_prepare :: PassedArgs a -> Maybe.Maybe Bool -> Deriver (Maybe.Maybe Pitch.Pitch) Source #

Like Gangsa.infer_prepare, except return a parsed Pitch.Pitch.

articulation

type Voice = Int Source #

kotekan

data KotekanPattern Source #

Constructors

KotekanPattern 

Fields

Instances

Instances details
Show KotekanPattern # 
Instance details

Defined in Derive.C.Bali.Reyong

type Chord = [Note] Source #

make_pattern :: KotekanPattern -> Pattern Source #

Figure out a pattern for each note of the scale.

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.

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.

data Degree Source #

Saih lima pitch degree.

Constructors

I 
O 
E 
U 
A 

Instances

Instances details
Enum Degree # 
Instance details

Defined in Derive.C.Bali.Reyong

Eq Degree # 
Instance details

Defined in Derive.C.Bali.Reyong

Methods

(==) :: Degree -> Degree -> Bool #

(/=) :: Degree -> Degree -> Bool #

Ord Degree # 
Instance details

Defined in Derive.C.Bali.Reyong

Show Degree # 
Instance details

Defined in Derive.C.Bali.Reyong

Pretty Degree # 
Instance details

Defined in Derive.C.Bali.Reyong

note_table :: Pitch.Octave -> Degree -> NoteTable Source #

Map letters to chords, starting from the given octave and Degree. Capital letters get Attrs.mute.

data Position Source #

Constructors

Position 

Instances

Instances details
Eq Position # 
Instance details

Defined in Derive.C.Bali.Reyong

Show Position # 
Instance details

Defined in Derive.C.Bali.Reyong

damping

damp_control :: ScoreT.Control Source #

Multiply this by Controls.dynamic for the dynamic of +mute notes created by infer-damp.

infer_damp_voices Source #

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.

infer_damp Source #

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.

data Hand Source #

Constructors

L 
R 

Instances

Instances details
Eq Hand # 
Instance details

Defined in Derive.C.Bali.Reyong

Methods

(==) :: Hand -> Hand -> Bool #

(/=) :: Hand -> Hand -> Bool #

Show Hand # 
Instance details

Defined in Derive.C.Bali.Reyong

Methods

showsPrec :: Int -> Hand -> ShowS #

show :: Hand -> String #

showList :: [Hand] -> ShowS #

Pretty Hand # 
Instance details

Defined in Derive.C.Bali.Reyong

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.