Karya, built on 2023-08-29T07:47:28 (patch 7a412d5d6ba4968ca4155ef276a062ccdeb9109a)
Safe HaskellSafe-Inferred

Solkattu.Bol

Description

Support for Hindustani style bols for pakhawaj and tabla.

It uses the same konnakol / solkattu framework, but of course the match is not perfect. I don't know how much difference because I don't know much about Hindustani, but at least these things:

  • Structures are different. At least there is simple x3 in tihais, though they seem to think of them as simply x3 rather than seq (gap) seq (gap) seq.
  • On the other hand, there's a notion of structured variation that doesn't seem to be present in Carnatic. It may be too ad-hoc to usefully notate. variation by taking from one place and adding to another. I have incomplete similar notions for Carnatic in combinators like "varying" and replacements, but those things are probably better done on the fly than notated.
  • Hindustani thinks of gaps as "only the space" rather than "karvai stroke and space". This means that "dha.__4" would look like 5 matras from a Hindostani point of view.
  • Notion of kali is in Hindustani, but not clear if it could have any useful notation presence.
  • Talas are all different. At the least they need different ruler symbols.
  • Stricter relationship between bols and strokes. I can probably have a single hardcoded stroke map, but beyond that I don't need to realize to strokes at all for reading. It would still be useful for machine realization. However, there is at least some variation between instruments, e.g. tabla typically doesn't use the "chapu" stroke, so pakhawaj dha is like thom + chapu while tabla is like thom + din. When realizing bols on mridangam, I can use the pakhawaj style.
Synopsis

Documentation

data Bol Source #

Constructors

Dha 
Dhet 
Dhom 
Di 
Din 
Dhi 
Dhin 
Dhit 
Ga 
Gi 
Ge 
Ghen 
Ka 
Kat 
Kre 
Ki 
Na 
Ne 
Ra 
Ri 
Ran 
Ta 
Tak 
Taa 
Te 
Tet 
Ti 
Tu 
Kran 

Instances

Instances details
IsString Sequence Source # 
Instance details

Defined in Solkattu.Dsl.Bol

Bounded Bol Source # 
Instance details

Defined in Solkattu.Bol

Methods

minBound :: Bol #

maxBound :: Bol #

Enum Bol Source # 
Instance details

Defined in Solkattu.Bol

Methods

succ :: Bol -> Bol #

pred :: Bol -> Bol #

toEnum :: Int -> Bol #

fromEnum :: Bol -> Int #

enumFrom :: Bol -> [Bol] #

enumFromThen :: Bol -> Bol -> [Bol] #

enumFromTo :: Bol -> Bol -> [Bol] #

enumFromThenTo :: Bol -> Bol -> Bol -> [Bol] #

Show Bol Source # 
Instance details

Defined in Solkattu.Bol

Methods

showsPrec :: Int -> Bol -> ShowS #

show :: Bol -> String #

showList :: [Bol] -> ShowS #

Eq Bol Source # 
Instance details

Defined in Solkattu.Bol

Methods

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

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

Ord Bol Source # 
Instance details

Defined in Solkattu.Bol

Methods

compare :: Bol -> Bol -> Ordering #

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

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

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

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

max :: Bol -> Bol -> Bol #

min :: Bol -> Bol -> Bol #

Expr.ToExpr Bol Source # 
Instance details

Defined in Solkattu.Bol

Solkattu.Notation Bol Source # 
Instance details

Defined in Solkattu.Bol

Pretty Bol Source # 
Instance details

Defined in Solkattu.Bol

Expr.ToExpr (Realize.Stroke Bol) Source # 
Instance details

Defined in Solkattu.Bol

parseBols :: BolT -> Either Error [Maybe Bols] Source #

data Bols Source #

parseBols can return 2nd speed sequences. This gets turned into a Sequence in Dsl.Bol.

Constructors

S1 Bol 
S2 Bol Bol 

Instances

Instances details
Show Bols Source # 
Instance details

Defined in Solkattu.Bol

Methods

showsPrec :: Int -> Bols -> ShowS #

show :: Bols -> String #

showList :: [Bols] -> ShowS #