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

Derive.C.India.Pakhawaj

Description

Functions to realize pakhawaj bols.

Synopsis

Documentation

calls

realize_bols Source #

Arguments

:: ScoreTime

End time, which is used for the duration of the final note. This is needed if the last bol is a sequence.

-> [(ScoreTime, Text)] 
-> Either Text [(ScoreTime, Bol)] 

implementation

data Stroke Source #

Constructors

Tet 
Te 
Tette

either tet or te, whichever is more convenient

Ne

tet with two fingers

Na 
Ta 
Di 
Di1

di with one finger

Di3

di with three fingers bayan

Ka 
Ge 

Instances

Instances details
Eq Stroke # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

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

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

Show Stroke # 
Instance details

Defined in Derive.C.India.Pakhawaj

Pretty Stroke # 
Instance details

Defined in Derive.C.India.Pakhawaj

data Bol Source #

Instances

Instances details
Eq Bol # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

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

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

Show Bol # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

showsPrec :: Int -> Bol -> ShowS #

show :: Bol -> String #

showList :: [Bol] -> ShowS #

Pretty Bol # 
Instance details

Defined in Derive.C.India.Pakhawaj

data Note a Source #

Constructors

Rest 
Note a 
Notes [Note a] 

Instances

Instances details
Functor Note # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

fmap :: (a -> b) -> Note a -> Note b #

(<$) :: a -> Note b -> Note a #

Foldable Note # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

fold :: Monoid m => Note m -> m #

foldMap :: Monoid m => (a -> m) -> Note a -> m #

foldMap' :: Monoid m => (a -> m) -> Note a -> m #

foldr :: (a -> b -> b) -> b -> Note a -> b #

foldr' :: (a -> b -> b) -> b -> Note a -> b #

foldl :: (b -> a -> b) -> b -> Note a -> b #

foldl' :: (b -> a -> b) -> b -> Note a -> b #

foldr1 :: (a -> a -> a) -> Note a -> a #

foldl1 :: (a -> a -> a) -> Note a -> a #

toList :: Note a -> [a] #

null :: Note a -> Bool #

length :: Note a -> Int #

elem :: Eq a => a -> Note a -> Bool #

maximum :: Ord a => Note a -> a #

minimum :: Ord a => Note a -> a #

sum :: Num a => Note a -> a #

product :: Num a => Note a -> a #

Traversable Note # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

traverse :: Applicative f => (a -> f b) -> Note a -> f (Note b) #

sequenceA :: Applicative f => Note (f a) -> f (Note a) #

mapM :: Monad m => (a -> m b) -> Note a -> m (Note b) #

sequence :: Monad m => Note (m a) -> m (Note a) #

Eq a => Eq (Note a) # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

(==) :: Note a -> Note a -> Bool #

(/=) :: Note a -> Note a -> Bool #

Show a => Show (Note a) # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

showsPrec :: Int -> Note a -> ShowS #

show :: Note a -> String #

showList :: [Note a] -> ShowS #

Pretty a => Pretty (Note a) # 
Instance details

Defined in Derive.C.India.Pakhawaj

Methods

pretty :: Note a -> Text Source #

format :: Note a -> Doc Source #

formatList :: [Note a] -> Doc Source #

type Syllable = Text Source #

Textual representation of a bol.

infer_tette :: [Bol] -> [Bol] Source #

Replace Tette with either Tet or Te, based on its neighbors.

map_neighbors :: Traversable t => (Maybe b -> a -> Maybe a -> b) -> t a -> t b Source #

This is different from map f . Seq.zip_neighbors in that you can see whatever change f made to the previous value.