{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE RecordWildCards #-}
module Solkattu.Instrument.Mridangam where
import qualified Data.List as List
import qualified Data.Map as Map
import qualified Data.Text as Text
import qualified Util.CallStack as CallStack
import qualified Util.Lists as Lists
import qualified Derive.Expr as Expr
import qualified Derive.Symbols as Symbols
import qualified Solkattu.Realize as Realize
import qualified Solkattu.S as S
import qualified Solkattu.Solkattu as Solkattu
import qualified Solkattu.Technique as Technique
import Global
data Stroke = Thoppi !Thoppi | Valantalai !Valantalai | Both !Thoppi !Valantalai
deriving (Stroke -> Stroke -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Stroke -> Stroke -> Bool
$c/= :: Stroke -> Stroke -> Bool
== :: Stroke -> Stroke -> Bool
$c== :: Stroke -> Stroke -> Bool
Eq, Eq Stroke
Stroke -> Stroke -> Bool
Stroke -> Stroke -> Ordering
Stroke -> Stroke -> Stroke
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Stroke -> Stroke -> Stroke
$cmin :: Stroke -> Stroke -> Stroke
max :: Stroke -> Stroke -> Stroke
$cmax :: Stroke -> Stroke -> Stroke
>= :: Stroke -> Stroke -> Bool
$c>= :: Stroke -> Stroke -> Bool
> :: Stroke -> Stroke -> Bool
$c> :: Stroke -> Stroke -> Bool
<= :: Stroke -> Stroke -> Bool
$c<= :: Stroke -> Stroke -> Bool
< :: Stroke -> Stroke -> Bool
$c< :: Stroke -> Stroke -> Bool
compare :: Stroke -> Stroke -> Ordering
$ccompare :: Stroke -> Stroke -> Ordering
Ord, Int -> Stroke -> ShowS
[Stroke] -> ShowS
Stroke -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Stroke] -> ShowS
$cshowList :: [Stroke] -> ShowS
show :: Stroke -> String
$cshow :: Stroke -> String
showsPrec :: Int -> Stroke -> ShowS
$cshowsPrec :: Int -> Stroke -> ShowS
Show)
data Thoppi =
Tha !Tha | Thom !Thom
| Gum
deriving (Thoppi -> Thoppi -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Thoppi -> Thoppi -> Bool
$c/= :: Thoppi -> Thoppi -> Bool
== :: Thoppi -> Thoppi -> Bool
$c== :: Thoppi -> Thoppi -> Bool
Eq, Eq Thoppi
Thoppi -> Thoppi -> Bool
Thoppi -> Thoppi -> Ordering
Thoppi -> Thoppi -> Thoppi
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Thoppi -> Thoppi -> Thoppi
$cmin :: Thoppi -> Thoppi -> Thoppi
max :: Thoppi -> Thoppi -> Thoppi
$cmax :: Thoppi -> Thoppi -> Thoppi
>= :: Thoppi -> Thoppi -> Bool
$c>= :: Thoppi -> Thoppi -> Bool
> :: Thoppi -> Thoppi -> Bool
$c> :: Thoppi -> Thoppi -> Bool
<= :: Thoppi -> Thoppi -> Bool
$c<= :: Thoppi -> Thoppi -> Bool
< :: Thoppi -> Thoppi -> Bool
$c< :: Thoppi -> Thoppi -> Bool
compare :: Thoppi -> Thoppi -> Ordering
$ccompare :: Thoppi -> Thoppi -> Ordering
Ord, Int -> Thoppi -> ShowS
[Thoppi] -> ShowS
Thoppi -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Thoppi] -> ShowS
$cshowList :: [Thoppi] -> ShowS
show :: Thoppi -> String
$cshow :: Thoppi -> String
showsPrec :: Int -> Thoppi -> ShowS
$cshowsPrec :: Int -> Thoppi -> ShowS
Show)
data Valantalai = Ki | Ta
| Mi
| Nam
| Din
| AraiChapu
| MuruChapu
| Dheem
| Kin
| Tan
deriving (Valantalai -> Valantalai -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Valantalai -> Valantalai -> Bool
$c/= :: Valantalai -> Valantalai -> Bool
== :: Valantalai -> Valantalai -> Bool
$c== :: Valantalai -> Valantalai -> Bool
Eq, Eq Valantalai
Valantalai -> Valantalai -> Bool
Valantalai -> Valantalai -> Ordering
Valantalai -> Valantalai -> Valantalai
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Valantalai -> Valantalai -> Valantalai
$cmin :: Valantalai -> Valantalai -> Valantalai
max :: Valantalai -> Valantalai -> Valantalai
$cmax :: Valantalai -> Valantalai -> Valantalai
>= :: Valantalai -> Valantalai -> Bool
$c>= :: Valantalai -> Valantalai -> Bool
> :: Valantalai -> Valantalai -> Bool
$c> :: Valantalai -> Valantalai -> Bool
<= :: Valantalai -> Valantalai -> Bool
$c<= :: Valantalai -> Valantalai -> Bool
< :: Valantalai -> Valantalai -> Bool
$c< :: Valantalai -> Valantalai -> Bool
compare :: Valantalai -> Valantalai -> Ordering
$ccompare :: Valantalai -> Valantalai -> Ordering
Ord, Int -> Valantalai -> ShowS
[Valantalai] -> ShowS
Valantalai -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Valantalai] -> ShowS
$cshowList :: [Valantalai] -> ShowS
show :: Valantalai -> String
$cshow :: Valantalai -> String
showsPrec :: Int -> Valantalai -> ShowS
$cshowsPrec :: Int -> Valantalai -> ShowS
Show, Int -> Valantalai
Valantalai -> Int
Valantalai -> [Valantalai]
Valantalai -> Valantalai
Valantalai -> Valantalai -> [Valantalai]
Valantalai -> Valantalai -> Valantalai -> [Valantalai]
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: Valantalai -> Valantalai -> Valantalai -> [Valantalai]
$cenumFromThenTo :: Valantalai -> Valantalai -> Valantalai -> [Valantalai]
enumFromTo :: Valantalai -> Valantalai -> [Valantalai]
$cenumFromTo :: Valantalai -> Valantalai -> [Valantalai]
enumFromThen :: Valantalai -> Valantalai -> [Valantalai]
$cenumFromThen :: Valantalai -> Valantalai -> [Valantalai]
enumFrom :: Valantalai -> [Valantalai]
$cenumFrom :: Valantalai -> [Valantalai]
fromEnum :: Valantalai -> Int
$cfromEnum :: Valantalai -> Int
toEnum :: Int -> Valantalai
$ctoEnum :: Int -> Valantalai
pred :: Valantalai -> Valantalai
$cpred :: Valantalai -> Valantalai
succ :: Valantalai -> Valantalai
$csucc :: Valantalai -> Valantalai
Enum, Valantalai
forall a. a -> a -> Bounded a
maxBound :: Valantalai
$cmaxBound :: Valantalai
minBound :: Valantalai
$cminBound :: Valantalai
Bounded)
data Tha = Palm
| Fingertips
| Fingers
deriving (Tha -> Tha -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Tha -> Tha -> Bool
$c/= :: Tha -> Tha -> Bool
== :: Tha -> Tha -> Bool
$c== :: Tha -> Tha -> Bool
Eq, Eq Tha
Tha -> Tha -> Bool
Tha -> Tha -> Ordering
Tha -> Tha -> Tha
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Tha -> Tha -> Tha
$cmin :: Tha -> Tha -> Tha
max :: Tha -> Tha -> Tha
$cmax :: Tha -> Tha -> Tha
>= :: Tha -> Tha -> Bool
$c>= :: Tha -> Tha -> Bool
> :: Tha -> Tha -> Bool
$c> :: Tha -> Tha -> Bool
<= :: Tha -> Tha -> Bool
$c<= :: Tha -> Tha -> Bool
< :: Tha -> Tha -> Bool
$c< :: Tha -> Tha -> Bool
compare :: Tha -> Tha -> Ordering
$ccompare :: Tha -> Tha -> Ordering
Ord, Int -> Tha -> ShowS
[Tha] -> ShowS
Tha -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Tha] -> ShowS
$cshowList :: [Tha] -> ShowS
show :: Tha -> String
$cshow :: Tha -> String
showsPrec :: Int -> Tha -> ShowS
$cshowsPrec :: Int -> Tha -> ShowS
Show)
data Thom =
Low
| Up
deriving (Thom -> Thom -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Thom -> Thom -> Bool
$c/= :: Thom -> Thom -> Bool
== :: Thom -> Thom -> Bool
$c== :: Thom -> Thom -> Bool
Eq, Eq Thom
Thom -> Thom -> Bool
Thom -> Thom -> Ordering
Thom -> Thom -> Thom
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Thom -> Thom -> Thom
$cmin :: Thom -> Thom -> Thom
max :: Thom -> Thom -> Thom
$cmax :: Thom -> Thom -> Thom
>= :: Thom -> Thom -> Bool
$c>= :: Thom -> Thom -> Bool
> :: Thom -> Thom -> Bool
$c> :: Thom -> Thom -> Bool
<= :: Thom -> Thom -> Bool
$c<= :: Thom -> Thom -> Bool
< :: Thom -> Thom -> Bool
$c< :: Thom -> Thom -> Bool
compare :: Thom -> Thom -> Ordering
$ccompare :: Thom -> Thom -> Ordering
Ord, Int -> Thom -> ShowS
[Thom] -> ShowS
Thom -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Thom] -> ShowS
$cshowList :: [Thom] -> ShowS
show :: Thom -> String
$cshow :: Thom -> String
showsPrec :: Int -> Thom -> ShowS
$cshowsPrec :: Int -> Thom -> ShowS
Show)
instance Solkattu.Notation Stroke where
notation :: Stroke -> (Style, Text)
notation (Thoppi Thoppi
t) = forall a. Notation a => a -> (Style, Text)
Solkattu.notation Thoppi
t
notation (Valantalai Valantalai
v) = forall a. Notation a => a -> (Style, Text)
Solkattu.notation Valantalai
v
notation (Both Thoppi
t Valantalai
v) = Text -> (Style, Text)
Solkattu.textNotation forall a b. (a -> b) -> a -> b
$ case Thoppi
t of
Tha Tha
_ -> case Valantalai
v of
Valantalai
Ki -> Text
"P"
Valantalai
Ta -> Text
"X"
Valantalai
_ -> forall a. Notation a => a -> Text
Solkattu.notationText Valantalai
v forall a. Semigroup a => a -> a -> a
<> Text
overline
Thom Thom
Low -> case Valantalai
v of
Valantalai
Kin -> Text
"o" forall a. Semigroup a => a -> a -> a
<> Text
cedillaBelow
Valantalai
Mi -> Text
"o" forall a. Semigroup a => a -> a -> a
<> Text
dotBelow
Valantalai
Tan -> Text
"ô"
Valantalai
_ -> Text -> Text
Text.toUpper (forall a. Notation a => a -> Text
Solkattu.notationText Valantalai
v)
Thom Thom
Up -> forall a. Notation a => a -> Text
Solkattu.notationText (Thom -> Thoppi
Thom Thom
Up)
Thoppi
Gum -> Text
"/"
instance Pretty Stroke where pretty :: Stroke -> Text
pretty = forall a. Notation a => a -> Text
Solkattu.notationText
cedillaBelow :: Text
cedillaBelow :: Text
cedillaBelow = Text
"\x0327"
dotBelow :: Text
dotBelow :: Text
dotBelow = Text
"\x0323"
overline :: Text
overline :: Text
overline = Text
"\x0305"
instance Solkattu.Notation Thoppi where
notation :: Thoppi -> (Style, Text)
notation = Text -> (Style, Text)
Solkattu.textNotation forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Thom Thom
Low -> Text
"o"
Thom Thom
Up -> Text
"ó"
Tha Tha
_ -> Text
"p"
Thoppi
Gum -> Text
"/"
instance Solkattu.Notation Valantalai where
notation :: Valantalai -> (Style, Text)
notation = Text -> (Style, Text)
Solkattu.textNotation forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Valantalai
Ki -> Text
"k"
Valantalai
Ta -> Text
"t"
Valantalai
Mi -> Text
"."
Valantalai
Nam -> Text
"n"
Valantalai
Din -> Text
"d"
Valantalai
AraiChapu -> Text
"u"
Valantalai
MuruChapu -> Text
"v"
Valantalai
Dheem -> Text
"i"
Valantalai
Kin -> Text
","
Valantalai
Tan -> Text
"^"
ganeshNotationThoppi :: Thoppi -> Text
ganeshNotationThoppi :: Thoppi -> Text
ganeshNotationThoppi = \case
Thom Thom
Low -> Text
"d"
Thom Thom
Up -> Text
"d"
Tha Tha
_ -> Text
"h"
Thoppi
Gum -> Text
"?"
ganeshNotationValantalai :: Valantalai -> Text
ganeshNotationValantalai :: Valantalai -> Text
ganeshNotationValantalai = \case
Valantalai
Ki -> Text
"k"
Valantalai
Ta -> Text
"t"
Valantalai
Mi -> Text
"?"
Valantalai
Nam -> Text
"n"
Valantalai
Din -> Text
"i"
Valantalai
AraiChapu -> Text
"l"
Valantalai
MuruChapu -> Text
"l"
Valantalai
Dheem -> Text
"?"
Valantalai
Kin -> Text
","
Valantalai
Tan -> Text
"^"
instance Pretty Thoppi where pretty :: Thoppi -> Text
pretty = forall a. Notation a => a -> Text
Solkattu.notationText
instance Pretty Valantalai where pretty :: Valantalai -> Text
pretty = forall a. Notation a => a -> Text
Solkattu.notationText
instance Expr.ToExpr Stroke where
to_expr :: Stroke -> Expr MiniVal
to_expr Stroke
s = forall val. Symbol -> Expr val
Expr.generator0 forall a b. (a -> b) -> a -> b
$ Text -> Symbol
Expr.Symbol forall a b. (a -> b) -> a -> b
$ case Stroke
s of
Thoppi Thoppi
t -> forall {a}. IsString a => Thoppi -> a
thoppi Thoppi
t
Valantalai Valantalai
v -> forall a. Notation a => a -> Text
Solkattu.notationText Valantalai
v
Both Thoppi
t Valantalai
v -> forall {a}. IsString a => Thoppi -> a
thoppi Thoppi
t forall a. Semigroup a => a -> a -> a
<> forall a. Notation a => a -> Text
Solkattu.notationText Valantalai
v
where
thoppi :: Thoppi -> a
thoppi Thoppi
t = case Thoppi
t of
Thom Thom
Low -> a
"o"
Thom Thom
Up -> a
"o/"
Tha Tha
_ -> a
"+"
Thoppi
Gum -> a
"/"
instance Expr.ToExpr (Realize.Stroke Stroke) where
to_expr :: Stroke Stroke -> Expr MiniVal
to_expr (Realize.Stroke Emphasis
emphasis Stroke
stroke) = case (Emphasis
emphasis, Stroke
stroke) of
(Emphasis
Realize.Normal, Stroke
_) -> forall a. ToExpr a => a -> Expr MiniVal
Expr.to_expr Stroke
stroke
(Emphasis
Realize.Light, Thoppi (Thom Thom
Low)) -> Expr MiniVal
"."
(Emphasis
Realize.Light, Thoppi (Tha Tha
_)) -> Expr MiniVal
"-"
(Emphasis
Realize.Heavy, Thoppi (Tha Tha
_)) -> Expr MiniVal
"*"
(Emphasis
Realize.Light, Stroke
_) -> forall a. ToExpr a => Symbol -> a -> Expr MiniVal
Expr.with Symbol
Symbols.weak Stroke
stroke
(Emphasis
Realize.Heavy, Stroke
_) -> forall a. ToExpr a => Symbol -> a -> Expr MiniVal
Expr.with Symbol
Symbols.accent Stroke
stroke
data Strokes a = Strokes {
forall a. Strokes a -> a
k :: a, forall a. Strokes a -> a
t :: a
, forall a. Strokes a -> a
l :: a
, forall a. Strokes a -> a
n :: a, forall a. Strokes a -> a
d :: a, forall a. Strokes a -> a
u :: a, forall a. Strokes a -> a
v :: a, forall a. Strokes a -> a
i :: a
, forall a. Strokes a -> a
y :: a, forall a. Strokes a -> a
j :: a
, forall a. Strokes a -> a
p :: a, forall a. Strokes a -> a
p' :: a
, forall a. Strokes a -> a
o :: a, forall a. Strokes a -> a
o' :: a
, forall a. Strokes a -> a
_' :: a
, forall a. Strokes a -> a
od :: a
} deriving (forall a b. a -> Strokes b -> Strokes a
forall a b. (a -> b) -> Strokes a -> Strokes b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> Strokes b -> Strokes a
$c<$ :: forall a b. a -> Strokes b -> Strokes a
fmap :: forall a b. (a -> b) -> Strokes a -> Strokes b
$cfmap :: forall a b. (a -> b) -> Strokes a -> Strokes b
Functor, Int -> Strokes a -> ShowS
forall a. Show a => Int -> Strokes a -> ShowS
forall a. Show a => [Strokes a] -> ShowS
forall a. Show a => Strokes a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Strokes a] -> ShowS
$cshowList :: forall a. Show a => [Strokes a] -> ShowS
show :: Strokes a -> String
$cshow :: forall a. Show a => Strokes a -> String
showsPrec :: Int -> Strokes a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Strokes a -> ShowS
Show)
strokes :: Strokes Stroke
strokes :: Strokes Stroke
strokes = Strokes
{ k :: Stroke
k = Valantalai -> Stroke
Valantalai Valantalai
Ki
, t :: Stroke
t = Valantalai -> Stroke
Valantalai Valantalai
Ta
, l :: Stroke
l = Valantalai -> Stroke
Valantalai Valantalai
Mi
, n :: Stroke
n = Valantalai -> Stroke
Valantalai Valantalai
Nam
, d :: Stroke
d = Valantalai -> Stroke
Valantalai Valantalai
Din
, u :: Stroke
u = Valantalai -> Stroke
Valantalai Valantalai
AraiChapu
, v :: Stroke
v = Valantalai -> Stroke
Valantalai Valantalai
MuruChapu
, i :: Stroke
i = Valantalai -> Stroke
Valantalai Valantalai
Dheem
, y :: Stroke
y = Valantalai -> Stroke
Valantalai Valantalai
Kin
, j :: Stroke
j = Valantalai -> Stroke
Valantalai Valantalai
Tan
, p :: Stroke
p = Thoppi -> Stroke
Thoppi (Tha -> Thoppi
Tha Tha
Palm)
, p' :: Stroke
p' = Thoppi -> Stroke
Thoppi (Tha -> Thoppi
Tha Tha
Fingertips)
, o :: Stroke
o = Thoppi -> Stroke
Thoppi (Thom -> Thoppi
Thom Thom
Low)
, o' :: Stroke
o' = Thoppi -> Stroke
Thoppi (Thom -> Thoppi
Thom Thom
Up)
, _' :: Stroke
_' = Thoppi -> Stroke
Thoppi Thoppi
Gum
, od :: Stroke
od = Thoppi -> Valantalai -> Stroke
Both (Thom -> Thoppi
Thom Thom
Low) Valantalai
Din
}
notes :: Strokes (S.Sequence g (Solkattu.Note (Realize.Stroke Stroke)))
notes :: forall g. Strokes (Sequence g (Note (Stroke Stroke)))
notes = forall stroke g. stroke -> Sequence g (Note (Stroke stroke))
Realize.strokeToSequence forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Strokes Stroke
strokes
type SequenceR = S.Sequence () (Realize.Note Stroke)
rnotes :: Strokes SequenceR
rnotes :: Strokes (Sequence () (Note Stroke))
rnotes = forall g a. Note g a -> Sequence g a
S.singleton forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g a. a -> Note g a
S.Note forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall stroke. Stroke stroke -> Note stroke
Realize.Note forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall stroke. stroke -> Stroke stroke
Realize.stroke forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Strokes Stroke
strokes
bothRStrokes :: CallStack.Stack => Realize.Stroke Stroke
-> Realize.Stroke Stroke -> Realize.Stroke Stroke
bothRStrokes :: Stack => Stroke Stroke -> Stroke Stroke -> Stroke Stroke
bothRStrokes (Realize.Stroke Emphasis
em1 Stroke
s1) (Realize.Stroke Emphasis
em2 Stroke
s2) =
forall stroke. Emphasis -> stroke -> Stroke stroke
Realize.Stroke (Emphasis
em1 forall a. Semigroup a => a -> a -> a
<> Emphasis
em2) (Stack => Stroke -> Stroke -> Stroke
bothStrokes Stroke
s1 Stroke
s2)
bothStrokes :: CallStack.Stack => Stroke -> Stroke -> Stroke
bothStrokes :: Stack => Stroke -> Stroke -> Stroke
bothStrokes (Thoppi Thoppi
a) (Valantalai Valantalai
b) = Thoppi -> Valantalai -> Stroke
Both Thoppi
a Valantalai
b
bothStrokes (Valantalai Valantalai
b) (Thoppi Thoppi
a) = Thoppi -> Valantalai -> Stroke
Both Thoppi
a Valantalai
b
bothStrokes Stroke
a Stroke
b =
forall a. Stack => Text -> a
Solkattu.throw forall a b. (a -> b) -> a -> b
$ Text
"requires thoppi & valantalai: " forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> Text
showt (Stroke
a, Stroke
b)
val :: Stroke -> Maybe Valantalai
val :: Stroke -> Maybe Valantalai
val (Valantalai Valantalai
s) = forall a. a -> Maybe a
Just Valantalai
s
val (Both Thoppi
_ Valantalai
s) = forall a. a -> Maybe a
Just Valantalai
s
val (Thoppi Thoppi
_) = forall a. Maybe a
Nothing
setVal :: Valantalai -> Stroke -> Stroke
setVal :: Valantalai -> Stroke -> Stroke
setVal Valantalai
v (Valantalai Valantalai
_) = Valantalai -> Stroke
Valantalai Valantalai
v
setVal Valantalai
v (Both Thoppi
t Valantalai
_) = Thoppi -> Valantalai -> Stroke
Both Thoppi
t Valantalai
v
setVal Valantalai
_ (Thoppi Thoppi
t) = Thoppi -> Stroke
Thoppi Thoppi
t
thoppi :: Stroke -> Maybe Thoppi
thoppi :: Stroke -> Maybe Thoppi
thoppi (Thoppi Thoppi
s) = forall a. a -> Maybe a
Just Thoppi
s
thoppi (Both Thoppi
s Valantalai
_) = forall a. a -> Maybe a
Just Thoppi
s
thoppi (Valantalai Valantalai
_) = forall a. Maybe a
Nothing
setThoppi :: Thoppi -> Stroke -> Stroke
setThoppi :: Thoppi -> Stroke -> Stroke
setThoppi Thoppi
_ (Valantalai Valantalai
v) = Valantalai -> Stroke
Valantalai Valantalai
v
setThoppi Thoppi
t (Both Thoppi
_ Valantalai
v) = Thoppi -> Valantalai -> Stroke
Both Thoppi
t Valantalai
v
setThoppi Thoppi
t (Thoppi Thoppi
_) = Thoppi -> Stroke
Thoppi Thoppi
t
addThoppi :: Thoppi -> Stroke -> Stroke
addThoppi :: Thoppi -> Stroke -> Stroke
addThoppi Thoppi
t (Valantalai Valantalai
v) = Thoppi -> Valantalai -> Stroke
Both Thoppi
t Valantalai
v
addThoppi Thoppi
t (Both Thoppi
_ Valantalai
v) = Thoppi -> Valantalai -> Stroke
Both Thoppi
t Valantalai
v
addThoppi Thoppi
t (Thoppi Thoppi
_) = Thoppi -> Stroke
Thoppi Thoppi
t
fromString :: String -> Either Text [Maybe Stroke]
fromString :: String -> Either Text [Maybe Stroke]
fromString = forall (m :: * -> *) a b.
Monad m =>
(a -> m (Maybe b)) -> [a] -> m [b]
mapMaybeM Char -> Either Text (Maybe (Maybe Stroke))
parse
where
parse :: Char -> Either Text (Maybe (Maybe Stroke))
parse Char
c = case Char
c of
Char
' ' -> forall a b. b -> Either a b
Right forall a. Maybe a
Nothing
Char
'_' -> forall a b. b -> Either a b
Right forall a b. (a -> b) -> a -> b
$ forall a. a -> Maybe a
Just forall a. Maybe a
Nothing
Char
_ -> case forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup Char
c Map Char Stroke
notations of
Maybe Stroke
Nothing -> forall a b. a -> Either a b
Left forall a b. (a -> b) -> a -> b
$ Text
"unknown mridangam stroke: " forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> Text
showt Char
c
Just Stroke
s -> forall a b. b -> Either a b
Right forall a b. (a -> b) -> a -> b
$ forall a. a -> Maybe a
Just forall a b. (a -> b) -> a -> b
$ forall a. a -> Maybe a
Just Stroke
s
notations :: Map Char Stroke
notations :: Map Char Stroke
notations = forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList forall a b. (a -> b) -> a -> b
$ ([(Char, Stroke)]
extras++) forall a b. (a -> b) -> a -> b
$ forall a a2 b. (a -> Maybe a2) -> [(a, b)] -> [(a2, b)]
Lists.mapMaybeFst Text -> Maybe Char
isChar forall a b. (a -> b) -> a -> b
$
forall a k. (a -> k) -> [a] -> [(k, a)]
Lists.keyOn forall a. Notation a => a -> Text
Solkattu.notationText forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
[ forall a b. (a -> b) -> [a] -> [b]
map Thoppi -> Stroke
Thoppi ([Thoppi]
lhs forall a. [a] -> [a] -> [a]
++ [Thom -> Thoppi
Thom Thom
Up, Thoppi
Gum])
, forall a b. (a -> b) -> [a] -> [b]
map Valantalai -> Stroke
Valantalai [Valantalai]
rhs
, [Thoppi -> Valantalai -> Stroke
Both Thoppi
lh Valantalai
rh | Thoppi
lh <- [Thoppi]
lhs, Valantalai
rh <- [Valantalai]
rhs, Valantalai
rh forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
`notElem` [Valantalai
Mi, Valantalai
Kin, Valantalai
Tan]]
]
where
extras :: [(Char, Stroke)]
extras =
[ (Char
'y', forall a. Strokes a -> a
y Strokes Stroke
strokes)
, (Char
'j', forall a. Strokes a -> a
j Strokes Stroke
strokes)
, (Char
'l', forall a. Strokes a -> a
l Strokes Stroke
strokes)
]
isChar :: Text -> Maybe Char
isChar Text
t = case Text -> String
untxt Text
t of
[Char
c] -> forall a. a -> Maybe a
Just Char
c
String
_ -> forall a. Maybe a
Nothing
lhs :: [Thoppi]
lhs = [Tha -> Thoppi
Tha Tha
Palm, Thom -> Thoppi
Thom Thom
Low]
rhs :: [Valantalai]
rhs = [forall a. Bounded a => a
minBound .. ]
printNotations :: IO ()
printNotations :: IO ()
printNotations = forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ String -> IO ()
putStrLn
[ [Char
k] forall a. Semigroup a => a -> a -> a
<> String
": " forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> String
show Stroke
v
| (Char
k, Stroke
v) <- forall b a. Ord b => (a -> b) -> [a] -> [a]
List.sortOn forall a b. (a, b) -> b
snd (forall k a. Map k a -> [(k, a)]
Map.toList Map Char Stroke
notations)
]
postprocess :: [Technique.Flat Stroke] -> [Technique.Flat Stroke]
postprocess :: [Flat Stroke] -> [Flat Stroke]
postprocess = forall stroke.
Technique (Stroke stroke) -> [Flat stroke] -> [Flat stroke]
Technique.postprocess forall a b. (a -> b) -> a -> b
$ forall stroke. Technique stroke -> Technique (Stroke stroke)
Technique.plain Technique Stroke
technique
technique :: Technique.Technique Stroke
technique :: Technique Stroke
technique [Stroke]
prevs Stroke
cur (Stroke
next:[Stroke]
_)
| Int -> ([Stroke], Stroke, Stroke)
prev Int
1 forall a. Eq a => a -> a -> Bool
== ([Stroke
k], Stroke
t, Stroke
k) = forall a. a -> Maybe a
Just Stroke
k
| Int -> ([Stroke], Stroke, Stroke)
prev Int
1 forall a. Eq a => a -> a -> Bool
== ([Stroke
k], Stroke
pStroke -> Stroke -> Stroke
&Stroke
t, Stroke
k) = forall a. a -> Maybe a
Just (Stroke
pStroke -> Stroke -> Stroke
&Stroke
k)
| Int -> ([Stroke], Stroke, Stroke)
prev Int
2 forall a. Eq a => a -> a -> Bool
== ([Stroke
k, Stroke
o], Stroke
o, Stroke
k) = forall a. a -> Maybe a
Just Stroke
p
where
prev :: Int -> ([Stroke], Stroke, Stroke)
prev Int
n = (forall a. Int -> [a] -> [a]
Lists.takeEnd Int
n [Stroke]
prevs, Stroke
cur, Stroke
next)
Strokes {Stroke
od :: Stroke
_' :: Stroke
o' :: Stroke
p' :: Stroke
j :: Stroke
y :: Stroke
i :: Stroke
v :: Stroke
u :: Stroke
d :: Stroke
n :: Stroke
l :: Stroke
o :: Stroke
p :: Stroke
t :: Stroke
k :: Stroke
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes Stroke
strokes
& :: Stroke -> Stroke -> Stroke
(&) = Stack => Stroke -> Stroke -> Stroke
bothStrokes
technique [Stroke]
_ Stroke
_ [Stroke]
_ = forall a. Maybe a
Nothing
__ :: SequenceR
__ :: Sequence () (Note Stroke)
__ = forall g a. Note g a -> Sequence g a
S.singleton forall stroke. SNote stroke
Realize.rest
defaultPatterns :: Realize.PatternMap Stroke
defaultPatterns :: PatternMap Stroke
defaultPatterns = forall a. Stack => Either Text a -> a
Solkattu.check forall a b. (a -> b) -> a -> b
$ [(Int, Sequence () (Note Stroke))]
-> Either Text (PatternMap Stroke)
patterns
[ (Int
5, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
, (Int
6, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
, (Int
7, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
, (Int
8, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
, (Int
9, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
]
where
Strokes {Sequence () (Note Stroke)
od :: Sequence () (Note Stroke)
_' :: Sequence () (Note Stroke)
o' :: Sequence () (Note Stroke)
p' :: Sequence () (Note Stroke)
p :: Sequence () (Note Stroke)
j :: Sequence () (Note Stroke)
y :: Sequence () (Note Stroke)
i :: Sequence () (Note Stroke)
v :: Sequence () (Note Stroke)
u :: Sequence () (Note Stroke)
d :: Sequence () (Note Stroke)
l :: Sequence () (Note Stroke)
o :: Sequence () (Note Stroke)
n :: Sequence () (Note Stroke)
t :: Sequence () (Note Stroke)
k :: Sequence () (Note Stroke)
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes (Sequence () (Note Stroke))
rnotes
. :: Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
(.) = forall a. Semigroup a => a -> a -> a
(<>)
misc :: [(S.Matra, SequenceR)]
misc :: [(Int, Sequence () (Note Stroke))]
misc =
[ (Int
7, forall g a. Sequence g a -> Sequence g a
su forall a b. (a -> b) -> a -> b
$ forall a. Monoid a => [a] -> a
mconcat [Sequence () (Note Stroke)
k, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
t, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
k, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
n, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
__, Sequence () (Note Stroke)
o, Sequence () (Note Stroke)
__])
]
where Strokes {Sequence () (Note Stroke)
od :: Sequence () (Note Stroke)
_' :: Sequence () (Note Stroke)
o' :: Sequence () (Note Stroke)
p' :: Sequence () (Note Stroke)
p :: Sequence () (Note Stroke)
j :: Sequence () (Note Stroke)
y :: Sequence () (Note Stroke)
i :: Sequence () (Note Stroke)
v :: Sequence () (Note Stroke)
u :: Sequence () (Note Stroke)
d :: Sequence () (Note Stroke)
l :: Sequence () (Note Stroke)
o :: Sequence () (Note Stroke)
n :: Sequence () (Note Stroke)
t :: Sequence () (Note Stroke)
k :: Sequence () (Note Stroke)
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes (Sequence () (Note Stroke))
rnotes
kt_kn_o :: Realize.PatternMap Stroke
kt_kn_o :: PatternMap Stroke
kt_kn_o = forall a. Stack => Either Text a -> a
Solkattu.check forall a b. (a -> b) -> a -> b
$ [(Int, Sequence () (Note Stroke))]
-> Either Text (PatternMap Stroke)
patterns
[ (Int
5, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
, (Int
7, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
, (Int
9, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o)
]
where
Strokes {Sequence () (Note Stroke)
od :: Sequence () (Note Stroke)
_' :: Sequence () (Note Stroke)
o' :: Sequence () (Note Stroke)
p' :: Sequence () (Note Stroke)
p :: Sequence () (Note Stroke)
j :: Sequence () (Note Stroke)
y :: Sequence () (Note Stroke)
i :: Sequence () (Note Stroke)
v :: Sequence () (Note Stroke)
u :: Sequence () (Note Stroke)
d :: Sequence () (Note Stroke)
l :: Sequence () (Note Stroke)
o :: Sequence () (Note Stroke)
n :: Sequence () (Note Stroke)
t :: Sequence () (Note Stroke)
k :: Sequence () (Note Stroke)
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes (Sequence () (Note Stroke))
rnotes
. :: Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
(.) = forall a. Semigroup a => a -> a -> a
(<>)
fives :: [SequenceR]
fives :: [Sequence () (Note Stroke)]
fives =
[ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.forall g a. Sequence g a -> Sequence g a
su (Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
t)Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.forall g a. Sequence g a -> Sequence g a
su (Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
t)Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
]
where
Strokes {Sequence () (Note Stroke)
od :: Sequence () (Note Stroke)
_' :: Sequence () (Note Stroke)
o' :: Sequence () (Note Stroke)
p' :: Sequence () (Note Stroke)
p :: Sequence () (Note Stroke)
j :: Sequence () (Note Stroke)
y :: Sequence () (Note Stroke)
i :: Sequence () (Note Stroke)
v :: Sequence () (Note Stroke)
u :: Sequence () (Note Stroke)
d :: Sequence () (Note Stroke)
n :: Sequence () (Note Stroke)
l :: Sequence () (Note Stroke)
o :: Sequence () (Note Stroke)
t :: Sequence () (Note Stroke)
k :: Sequence () (Note Stroke)
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes (Sequence () (Note Stroke))
rnotes
. :: Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
(.) = forall a. Semigroup a => a -> a -> a
(<>)
intense :: [SequenceR]
intense :: [Sequence () (Note Stroke)]
intense =
[ Sequence () (Note Stroke)
iSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
iSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
iSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.forall g a. Sequence g a -> Sequence g a
su (Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
t)Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
]
where
Strokes {Sequence () (Note Stroke)
od :: Sequence () (Note Stroke)
_' :: Sequence () (Note Stroke)
o' :: Sequence () (Note Stroke)
p' :: Sequence () (Note Stroke)
p :: Sequence () (Note Stroke)
j :: Sequence () (Note Stroke)
y :: Sequence () (Note Stroke)
v :: Sequence () (Note Stroke)
u :: Sequence () (Note Stroke)
d :: Sequence () (Note Stroke)
l :: Sequence () (Note Stroke)
t :: Sequence () (Note Stroke)
o :: Sequence () (Note Stroke)
n :: Sequence () (Note Stroke)
k :: Sequence () (Note Stroke)
i :: Sequence () (Note Stroke)
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes (Sequence () (Note Stroke))
rnotes
. :: Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
(.) = forall a. Semigroup a => a -> a -> a
(<>)
families567 :: [Realize.PatternMap Stroke]
families567 :: [PatternMap Stroke]
families567 = forall a b. (a -> b) -> [a] -> [b]
map forall a. Stack => Either Text a -> a
Solkattu.check forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map [(Int, Sequence () (Note Stroke))]
-> Either Text (PatternMap Stroke)
patterns forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall a b. [a] -> [b] -> [(a, b)]
zip [Int
5..]) forall a b. (a -> b) -> a -> b
$
[ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
] forall a. a -> [a] -> [a]
: forall a b. (a -> b) -> [a] -> [b]
map (forall a b. (a -> b) -> [a] -> [b]
map forall g a. Sequence g a -> Sequence g a
su)
[ [ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
]
, [ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
]
, [ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kpSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kpnpSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
]
, [ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kpSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kpnpSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
]
, [ Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
]
, [ Sequence () (Note Stroke)
uSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
uSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
uSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
oSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__
]
, [ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kpSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kpnpSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
]
, [ Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
odSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
odSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
, Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
odSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
tSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
__Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
o
]
]
where
Strokes {Sequence () (Note Stroke)
_' :: Sequence () (Note Stroke)
o' :: Sequence () (Note Stroke)
p' :: Sequence () (Note Stroke)
j :: Sequence () (Note Stroke)
y :: Sequence () (Note Stroke)
i :: Sequence () (Note Stroke)
v :: Sequence () (Note Stroke)
d :: Sequence () (Note Stroke)
l :: Sequence () (Note Stroke)
od :: Sequence () (Note Stroke)
u :: Sequence () (Note Stroke)
p :: Sequence () (Note Stroke)
o :: Sequence () (Note Stroke)
n :: Sequence () (Note Stroke)
t :: Sequence () (Note Stroke)
k :: Sequence () (Note Stroke)
od :: forall a. Strokes a -> a
_' :: forall a. Strokes a -> a
o' :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
p' :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
j :: forall a. Strokes a -> a
y :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
v :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
l :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
..} = Strokes (Sequence () (Note Stroke))
rnotes
. :: Sequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
(.) = forall a. Semigroup a => a -> a -> a
(<>)
kp :: Sequence () (Note Stroke)
kp = Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
p
kpnp :: Sequence () (Note Stroke)
kpnp = Sequence () (Note Stroke)
kSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
pSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
nSequence () (Note Stroke)
-> Sequence () (Note Stroke) -> Sequence () (Note Stroke)
.Sequence () (Note Stroke)
p
su :: S.Sequence g a -> S.Sequence g a
su :: forall g a. Sequence g a -> Sequence g a
su = forall g a. Note g a -> Sequence g a
S.singleton forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g a. Int -> [Note g a] -> Note g a
S.changeSpeed Int
1 forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g a. Sequence g a -> [Note g a]
S.toList
patterns :: [(S.Matra, SequenceR)]
-> Either Realize.Error (Realize.PatternMap Stroke)
patterns :: [(Int, Sequence () (Note Stroke))]
-> Either Text (PatternMap Stroke)
patterns = forall stroke.
[(Pattern, Sequence () (Note stroke))]
-> Either Text (PatternMap stroke)
Realize.patternMap forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a -> b) -> [a] -> [b]
map (forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> p a c -> p b c
first Int -> Pattern
Solkattu.pattern)