Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone

Derive.Call.Bali.Reyong

Contents

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.

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 #

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

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 #

Pentatonic pitch degree.

Constructors

I 
O 
E 
U 
A 

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

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

damping

damp_control :: Control Source #

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

infer_damp_voices :: Instrument -> (RealTime.RealTime -> RealTime.RealTime) -> [Score.Event] -> [Score.Event] 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 sufficiently far, or the opposite hand if it is not too busy.

set_damp :: Signal.Y -> Score.Event -> Maybe.Maybe Score.Event Source #

Possibly create a damped note at the end of the given note.

could_damp :: Score.Event -> Bool Source #

True for events which could get an inferred damp.

data Hand Source #

Constructors

L 
R 

Instances

Eq Hand # 

Methods

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

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

Show Hand # 

Methods

showsPrec :: Int -> Hand -> ShowS #

show :: Hand -> String #

showList :: [Hand] -> ShowS #

Pretty Hand # 

zip_next :: [a] -> [(a, [a])] Source #

assign_hands :: [Score.Event] -> [(Hand, 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