{-# LANGUAGE RecordWildCards #-}
module Solkattu.Score.Solkattu2013 where
import Prelude hiding ((.), (^), repeat)
import qualified Util.Lists as Lists
import qualified Solkattu.Instrument.KendangTunggal as KendangTunggal
import qualified Solkattu.Instrument.Mridangam as Mridangam
import qualified Solkattu.Korvai as Korvai
import Solkattu.Dsl.Solkattu
c_13_07_23 :: Korvai
c_13_07_23 :: Korvai
c_13_07_23 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2013 Int
7 Int
23 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin SequenceT Sollu
tat_din__ (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p5) (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p6) (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p7)
where
tat_din__ :: SequenceT Sollu
tat_din__ = SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam [(SequenceT Sollu
tat_din__, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)]
c_13_08_14 :: Korvai
c_13_08_14 :: Korvai
c_13_08_14 = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2013 Int
8 Int
14 forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi (StrokeMaps
mridangam forall a. Semigroup a => a -> a -> a
<> StrokeMaps
kendang)
[ forall sollu. SequenceT sollu -> SequenceT sollu
group (Int -> Int -> SequenceT Sollu
theme Int
2 Int
1) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
2 (Int -> Int -> SequenceT Sollu
theme Int
2 Int
2) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 (Int -> Int -> SequenceT Sollu
theme Int
2 Int
3) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p7 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p5
, let ta_din__ :: SequenceT Sollu
ta_din__ = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ in
forall sollu. SequenceT sollu -> SequenceT sollu
group (Int -> Int -> SequenceT Sollu
theme Int
3 Int
1) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din__
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
3 (Int -> Int -> SequenceT Sollu
theme Int
3 Int
2) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din__
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
6 (Int -> Int -> SequenceT Sollu
theme Int
3 Int
3) forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin SequenceT Sollu
ta_din__ (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p7) (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p6) (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p5)
, forall sollu. SequenceT sollu -> SequenceT sollu
group (Int -> Int -> SequenceT Sollu
theme Int
4 Int
1) forall a. Monoid a => a -> a -> a
. SequenceT Sollu
pat7 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 (Int -> Int -> SequenceT Sollu
theme Int
4 Int
2) forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 SequenceT Sollu
pat8 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
8 (Int -> Int -> SequenceT Sollu
theme Int
4 Int
3)
forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
dheem forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__4) (forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT Sollu
pat9) (forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT Sollu
pat8) (forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT Sollu
pat7)
]
where
theme :: Int -> Int -> SequenceT Sollu
theme Int
gap1 Int
gap2 = SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n Int
gap1 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n Int
gap1 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n Int
gap2 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n Int
gap1)
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
, (SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)
, (SequenceT Sollu
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
i)
]
kendang :: StrokeMaps
kendang = StrokeMap Stroke -> StrokeMaps
makeKendang1
[ (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
aforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
a)
, (SequenceT Sollu
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
a)
] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
a :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
å :: forall a. Strokes a -> a
u :: forall a. Strokes a -> a
t :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
pk :: forall a. Strokes a -> a
å :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
t :: Sequence g (Note (Stroke Stroke))
p :: Sequence g (Note (Stroke Stroke))
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes
pat7 :: SequenceT Sollu
pat7 = SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
pat8 :: SequenceT Sollu
pat8 = SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
pat9 :: SequenceT Sollu
pat9 = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
c_yt1 :: Korvai
c_yt1 :: Korvai
c_yt1 = Text -> Korvai -> Korvai
source Text
"youtube" forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
forall sollu.
(Stack, Pretty sollu) =>
FMatra -> FMatra -> SequenceT sollu -> SequenceT sollu
reduceTo FMatra
4 FMatra
2 SequenceT Sollu
theme forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p6)
where
theme :: SequenceT Sollu
theme = SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
theme, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4)
, (SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)
, (Tag
midforall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
i)
]
c_13_10_29 :: Korvai
c_13_10_29 :: Korvai
c_13_10_29 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2013 Int
10 Int
29 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam
[ SequenceT Sollu
sequence
, forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6 SequenceT Sollu
sequence
]
where
sequence :: SequenceT Sollu
sequence = forall sollu.
Pretty sollu =>
FMatra -> SequenceT sollu -> SequenceT sollu -> SequenceT sollu
reduce3 FMatra
2 forall a. Monoid a => a
ø (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4)
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6) (forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)
]
c_13_11_05 :: Korvai
c_13_11_05 :: Korvai
c_13_11_05 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2013 Int
11 Int
5 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4) forall sollu. SequenceT sollu
theme
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
theme forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
theme forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su forall sollu. SequenceT sollu
p6
where
theme :: Sequence Group (Note sollu)
theme = forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam [(SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)]
c_13_11_12 :: Korvai
c_13_11_12 :: Korvai
c_13_11_12 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2013 Int
11 Int
12 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam
[ SequenceT Sollu
sequence, forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6 SequenceT Sollu
sequence
]
where
sequence :: SequenceT Sollu
sequence =
SequenceT Sollu
theme forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
2 SequenceT Sollu
theme forall a. Monoid a => a -> a -> a
. SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 SequenceT Sollu
theme
forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4)
forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu -> SequenceT sollu
spread Int
3 SequenceT Sollu
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu -> SequenceT sollu
spread Int
2 SequenceT Sollu
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ SequenceT Sollu
tdgnt
theme :: SequenceT Sollu
theme = SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
od)
]
c_13_12_11 :: Korvai
c_13_12_11 :: Korvai
c_13_12_11 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2013 Int
12 Int
11 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam
[ forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
8 forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
sarvaSam Tala
adi SequenceT Sollu
theme14
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
sarvaSam Tala
adi SequenceT Sollu
theme14, forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
sarvaSam Tala
adi SequenceT Sollu
theme14
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Duration -> SequenceT sollu -> SequenceT sollu
__a Duration
4 SequenceT Sollu
theme14 forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Duration -> SequenceT sollu -> SequenceT sollu
__a Duration
4 SequenceT Sollu
theme14
forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Duration -> SequenceT sollu -> SequenceT sollu
__a Duration
4 SequenceT Sollu
theme14 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
, forall a. Monoid a => [a] -> a
mconcat [forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
8 forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
sarvaSam Tala
adi SequenceT Sollu
t | SequenceT Sollu
t <- [SequenceT Sollu]
themes]
forall a. Monoid a => a -> a -> a
. forall a. Monoid a => [a] -> a
mconcat [forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
sarvaSam Tala
adi SequenceT Sollu
t | SequenceT Sollu
t <- [SequenceT Sollu]
themes]
forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (forall sollu.
(Stack, Pretty sollu) =>
Duration -> SequenceT sollu -> SequenceT sollu
__a Duration
4 SequenceT Sollu
theme14 forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
Duration -> SequenceT sollu -> SequenceT sollu
__a Duration
4 SequenceT Sollu
theme16)
, SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
structure SequenceT Sollu
theme14 (SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6)
, SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
structure SequenceT Sollu
theme16 (SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4)
, SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
structure SequenceT Sollu
theme18 (SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2)
, SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
structure SequenceT Sollu
theme20 forall a. Monoid a => a
ø
]
where
structure :: SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
structure SequenceT Sollu
theme SequenceT Sollu
karvai =
SequenceT Sollu
theme forall a. Monoid a => a -> a -> a
. SequenceT Sollu
karvai forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
kpforall a. Monoid a => a -> a -> a
. SequenceT Sollu
theme forall a. Monoid a => a -> a -> a
. SequenceT Sollu
karvai forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
kpnpforall a. Monoid a => a -> a -> a
.SequenceT Sollu
theme forall a. Monoid a => a -> a -> a
. SequenceT Sollu
karvai forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
themes :: [SequenceT Sollu]
themes = [SequenceT Sollu
theme14, SequenceT Sollu
theme16, SequenceT Sollu
theme18]
theme14 :: SequenceT Sollu
theme14 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
theme16 :: SequenceT Sollu
theme16 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
theme18 :: SequenceT Sollu
theme18 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
theme20 :: SequenceT Sollu
theme20 = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (forall sollu. SequenceT sollu -> SequenceT sollu
stripRests SequenceT Sollu
theme14, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
]
make_k1 :: [Sequence] -> Korvai
make_k1 :: [SequenceT Sollu] -> Korvai
make_k1 = Korvai -> Korvai
ganesh forall b c a. (b -> c) -> (a -> b) -> a -> c
• Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
k1_mridangam forall b c a. (b -> c) -> (a -> b) -> a -> c
• forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
5)
k1_1 :: Korvai
k1_1 :: Korvai
k1_1 = [SequenceT Sollu] -> Korvai
make_k1 [SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
sequence SequenceT Sollu
p SequenceT Sollu
g | SequenceT Sollu
g <- [SequenceT Sollu]
gaps, SequenceT Sollu
p <- [forall sollu. SequenceT sollu
p5, forall sollu. SequenceT sollu
p6, forall sollu. SequenceT sollu
p7]]
where
gaps :: [SequenceT Sollu]
gaps = [SequenceT Sollu
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__, SequenceT Sollu
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3, SequenceT Sollu
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__, SequenceT Sollu
thom, forall a. Monoid a => a
ø]
sequence :: SequenceT Sollu -> SequenceT Sollu -> SequenceT Sollu
sequence SequenceT Sollu
pt SequenceT Sollu
gap =
forall sollu. SequenceT sollu
sam forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n (Int
10 forall a. Num a => a -> a -> a
- Int
pdur) forall a. Monoid a => a -> a -> a
. SequenceT Sollu
pt
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a' forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n (Int
10 forall a. Num a => a -> a -> a
- Int
pdur) forall a. Monoid a => a -> a -> a
. SequenceT Sollu
pt
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
sam forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
di forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ki forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
gap
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ka forall a. Monoid a => a -> a -> a
. SequenceT Sollu
di forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ki forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
gap
forall a. Monoid a => a -> a -> a
. case Int
pdur of
Int
5 -> forall sollu. SequenceT sollu -> SequenceT sollu
p567 forall sollu. SequenceT sollu
end_gap
Int
6 -> forall sollu. SequenceT sollu -> SequenceT sollu
p666 forall sollu. SequenceT sollu
end_gap
Int
_ -> forall sollu. SequenceT sollu -> SequenceT sollu
p765 forall sollu. SequenceT sollu
end_gap
where
end_gap :: SequenceT sollu
end_gap = forall sollu. Int -> SequenceT sollu
__n (Int
5 forall a. Num a => a -> a -> a
- forall sollu. Stack => SequenceT sollu -> Int
matrasOfI SequenceT Sollu
gap)
pdur :: Int
pdur = forall sollu. Stack => SequenceT sollu -> Int
matrasOfI SequenceT Sollu
pt
k1_2 :: Korvai
k1_2 :: Korvai
k1_2 = [SequenceT Sollu] -> Korvai
make_k1 forall a b. (a -> b) -> a -> b
$ (forall a. a -> [a] -> [a]
:[]) forall a b. (a -> b) -> a -> b
$
forall sollu. SequenceT sollu
sam forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din_ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
p7
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a' forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din_ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
p7
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
sam forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a' forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din_ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT Sollu
p7
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din_ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tadin_ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
p7)
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_din_ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tadin_ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tadin_ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
p7)
where
p7 :: SequenceT Sollu
p7 = SequenceT Sollu
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
ta_din_ :: SequenceT Sollu
ta_din_ = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
tadin_ :: SequenceT Sollu
tadin_ = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
k1_3 :: Korvai
k1_3 :: Korvai
k1_3 = [SequenceT Sollu] -> Korvai
make_k1 forall a b. (a -> b) -> a -> b
$ (forall a. a -> [a] -> [a]
:[]) forall a b. (a -> b) -> a -> b
$
SequenceT Sollu
k1_a forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tata_dindin_ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a' forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tata_dindin_ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
k1_a' forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tata_dindin_
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ (SequenceT Sollu
kpnpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ (SequenceT Sollu
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ forall sollu. SequenceT sollu
p6
where
tata_dindin_ :: SequenceT Sollu
tata_dindin_ = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3
k1_a, k1_a' :: Sequence
k1_a :: SequenceT Sollu
k1_a = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
thom
k1_a' :: SequenceT Sollu
k1_a' = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
thom
k1_mridangam :: Korvai.StrokeMaps
k1_mridangam :: StrokeMaps
k1_mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
n)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
n)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
]
k2 :: Bool -> Korvai
k2 :: Bool -> Korvai
k2 Bool
chatusram_transition = Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
k1_mridangam forall a b. (a -> b) -> a -> b
$ forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
5 forall a b. (a -> b) -> a -> b
$
SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5
forall a. Monoid a => a -> a -> a
. if Bool
chatusram_transition
then forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
4 (forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5))
else SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall sollu. SequenceT sollu
__5 forall sollu. SequenceT sollu
p6
k3s :: Korvai
k3s :: Korvai
k3s = Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
5)
[ SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dinforall sollu. SequenceT sollu -> Int -> SequenceT sollu
§Int
2 forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ditforall sollu. SequenceT sollu -> Int -> SequenceT sollu
§Int
4 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
taforall sollu. SequenceT sollu -> Int -> SequenceT sollu
§Int
6forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall sollu. SequenceT sollu -> Int -> SequenceT sollu
§Int
0forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ta
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6
, SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__4
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__4
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
dit forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tat forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tangkita
forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ forall sollu. SequenceT sollu
p6
]
where
tangkita :: SequenceT Sollu
tangkita = forall g sollu. Sequence g sollu -> Sequence g sollu
su (SequenceT Sollu
tang forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. SequenceT Sollu
kitataka forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tarikitataka)
kitataka :: SequenceT Sollu
kitataka = SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
thaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ka
tarikitataka :: SequenceT Sollu
tarikitataka = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
riforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitataka
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
pStack =>
Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
&forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.SequenceT Sollu
tat, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
kitataka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
, (SequenceT Sollu
tarikitataka, forall {g}. Sequence g (Note (Stroke Stroke))
uforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
]
t_sarva1 :: Korvai
t_sarva1 :: Korvai
t_sarva1 = Korvai -> Korvai
sarvalaghu forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6 SequenceT Sollu
sarva
where
sarva :: SequenceT Sollu
sarva = forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$
SequenceT Sollu
dhomforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.SequenceT Sollu
mi forall a. Monoid a => a -> a -> a
. SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
miforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.SequenceT Sollu
mi
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
miforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.SequenceT Sollu
mi forall a. Monoid a => a -> a -> a
. SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
miforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
diforall a. Monoid a => a -> a -> a
.SequenceT Sollu
mi
rh :: Sequence g (Note (Stroke Stroke))
-> Sequence g (Note (Stroke Stroke))
rh Sequence g (Note (Stroke Stroke))
x = Sequence g (Note (Stroke Stroke))
xforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
dforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k forall a. Monoid a => a -> a -> a
. forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
dforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
sarva,
(forall {g}.
Sequence g (Note (Stroke Stroke))
-> Sequence g (Note (Stroke Stroke))
rh forall a. Rest a => a
__ Stack =>
Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
& (forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
forall a. Monoid a => a -> a -> a
. forall {g}.
Sequence g (Note (Stroke Stroke))
-> Sequence g (Note (Stroke Stroke))
rh forall {g}. Sequence g (Note (Stroke Stroke))
n Stack =>
Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
& (forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)))
]
t1s :: Korvai
t1s :: Korvai
t1s = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6)
[ SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p5
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p6
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p7
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p8
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p9
]
where
utarangam :: SequenceT Sollu -> SequenceT Sollu
utarangam = forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga)
reduce :: SequenceT Sollu -> SequenceT Sollu
reduce = forall sollu.
Pretty sollu =>
FMatra -> SequenceT sollu -> SequenceT sollu -> SequenceT sollu
reduce3 FMatra
2 forall a. Monoid a => a
ø
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
uforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
]
t2s :: Korvai
t2s :: Korvai
t2s = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6)
[ SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__5) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p5
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p6
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p7
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dheemforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dingaforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p7)
, let tadin_ :: Int -> SequenceT Sollu
tadin_ Int
n = forall a. Monoid a => Int -> a -> a
repeat Int
n (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) in
SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din)
forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
tadin_ Int
1 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5 forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
tadin_ Int
2 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5 forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
tadin_ Int
3 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p8)
]
where
reduce :: SequenceT Sollu -> SequenceT Sollu
reduce = forall sollu.
Pretty sollu =>
FMatra -> SequenceT sollu -> SequenceT sollu -> SequenceT sollu
reduce3 FMatra
2 forall a. Monoid a => a
ø
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
, (SequenceT Sollu
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
]
t3s :: Korvai
t3s :: Korvai
t3s = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6)
[ SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
naforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinga) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p5
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinga) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p6
, SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) forall a. Monoid a => a -> a -> a
. SequenceT Sollu -> SequenceT Sollu
utarangam forall sollu. SequenceT sollu
p7
, (Int, Int, Int)
-> (Int, Int, Int) -> (Int, Int, Int) -> SequenceT Sollu
variation (Int
5, Int
5, Int
5) (Int
6, Int
6, Int
6) (Int
7, Int
7, Int
7)
, (Int, Int, Int)
-> (Int, Int, Int) -> (Int, Int, Int) -> SequenceT Sollu
variation (Int
7, Int
7, Int
7) (Int
6, Int
6, Int
6) (Int
5, Int
5, Int
5)
, (Int, Int, Int)
-> (Int, Int, Int) -> (Int, Int, Int) -> SequenceT Sollu
variation (Int
5, Int
6, Int
7) (Int
5, Int
6, Int
7) (Int
5, Int
6, Int
7)
, (Int, Int, Int)
-> (Int, Int, Int) -> (Int, Int, Int) -> SequenceT Sollu
variation (Int
7, Int
6, Int
5) (Int
7, Int
6, Int
5) (Int
7, Int
6, Int
5)
, (Int, Int, Int)
-> (Int, Int, Int) -> (Int, Int, Int) -> SequenceT Sollu
variation (Int
5, Int
6, Int
7) (Int
6, Int
6, Int
6) (Int
7, Int
6, Int
5)
]
where
utarangam :: SequenceT Sollu -> SequenceT Sollu
utarangam SequenceT Sollu
p = forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga) (forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT Sollu
p) (forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ SequenceT Sollu
p) (forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall sollu. SequenceT sollu
__3 SequenceT Sollu
p)
variation :: (Int, Int, Int)
-> (Int, Int, Int) -> (Int, Int, Int) -> SequenceT Sollu
variation (Int
a1, Int
a2, Int
a3) (Int
b1, Int
b2, Int
b3) (Int
c1, Int
c2, Int
c3) =
SequenceT Sollu -> SequenceT Sollu
reduce (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinnaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinga)
forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga)
(forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin forall a. Monoid a => a
ø (forall sollu. Int -> SequenceT sollu
pat Int
a1) (forall sollu. Int -> SequenceT sollu
pat Int
a2) (forall sollu. Int -> SequenceT sollu
pat Int
a3))
(forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin forall a. Rest a => a
__ (forall sollu. Int -> SequenceT sollu
pat Int
b1) (forall sollu. Int -> SequenceT sollu
pat Int
b2) (forall sollu. Int -> SequenceT sollu
pat Int
b3))
(forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin forall sollu. SequenceT sollu
__3 (forall sollu. Int -> SequenceT sollu
pat Int
c1) (forall sollu. Int -> SequenceT sollu
pat Int
c2) (forall sollu. Int -> SequenceT sollu
pat Int
c3))
reduce :: SequenceT Sollu -> SequenceT Sollu
reduce = forall sollu.
Pretty sollu =>
FMatra -> SequenceT sollu -> SequenceT sollu -> SequenceT sollu
reduce3 FMatra
2 forall a. Monoid a => a
ø
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
dinga, forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
, (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
uforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
]
t4s2 :: Korvai
t4s2 :: Korvai
t4s2 = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6)
[ SequenceT Sollu
purvangam1 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, SequenceT Sollu
purvangam1 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5
, Int -> SequenceT Sollu
purvangam2 Int
6 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, Int -> SequenceT Sollu
purvangam2 Int
4 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, Int -> SequenceT Sollu
purvangam2 Int
2 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p8)
]
where
purvangam1 :: SequenceT Sollu
purvangam1 =
SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. SequenceT Sollu
takita forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (SequenceT Sollu
takita) forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (SequenceT Sollu
takita) forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6
purvangam2 :: Int -> SequenceT Sollu
purvangam2 Int
gap = forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. SequenceT Sollu
takitaforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. Int -> SequenceT sollu
__n Int
gap)
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam forall a b. (a -> b) -> a -> b
$
[ (SequenceT Sollu
takita, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
, (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
] forall a. [a] -> [a] -> [a]
++ StrokeMap Stroke
m_ta_katakita
t4s3 :: Korvai
t4s3 :: Korvai
t4s3 = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6)
[ SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__7
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__7
forall a. Monoid a => a -> a -> a
. SequenceT Sollu
ta_katakitaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__7
forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
langforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6)
(forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5))
(forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5))
(forall sollu. SequenceT sollu -> SequenceT sollu
tri (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5))
]
where
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam forall a b. (a -> b) -> a -> b
$
[ (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
] forall a. [a] -> [a] -> [a]
++ StrokeMap Stroke
m_ta_katakita
ta_katakita :: Sequence
ta_katakita :: SequenceT Sollu
ta_katakita = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kitataka
m_ta_katakita :: StrokeMap Mridangam.Stroke
m_ta_katakita :: StrokeMap Stroke
m_ta_katakita =
[ (SequenceT Sollu
ta_katakita, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
]
t5s :: Korvai
t5s :: Korvai
t5s = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6 forall b c a. (b -> c) -> (a -> b) -> a -> c
• (SequenceT Sollu
purvangam.))
[ forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri123 (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__6) forall sollu. SequenceT sollu
p6
, forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri123 (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ka) forall sollu. SequenceT sollu
p7
, forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri123 (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri123 (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga) (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
, let tadin :: SequenceT Sollu
tadin = SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
in forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga) (SequenceT Sollu
tadinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6) (SequenceT Sollu
tadinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6) (SequenceT Sollu
tadinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
, forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
(SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5)
(SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
(SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p7forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p7forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p7)
, forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4)
(SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p7)
(SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
(SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
]
where
purvangam :: SequenceT Sollu
purvangam = forall a. Monoid a => [a] -> a
mconcat forall a b. (a -> b) -> a -> b
$ forall sollu.
(Stack, Pretty sollu) =>
Int -> FMatra -> SequenceT sollu -> [SequenceT sollu]
expand Int
3 FMatra
3 (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ditforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kiforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
thom, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
tatforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
dforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
uforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
thom, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
takaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
]
misra_lead :: Korvai
misra_lead :: Korvai
misra_lead = Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$
forall sollu. Int -> SequenceT sollu
__M Int
8 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) SequenceT Sollu
takadinna
forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna)
forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (SequenceT Sollu
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na) (forall a. Monoid a => a -> a
r2 (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na)) (forall a. Monoid a => a -> a
r3 (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na))
where
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
takadinna, forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
tam, forall {g}. Sequence g (Note (Stroke Stroke))
od)
]
koraippu_misra_no_karvai :: Korvai
koraippu_misra_no_karvai :: Korvai
koraippu_misra_no_karvai = Korvai -> Korvai
koraippu forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map forall g sollu. Sequence g sollu -> Sequence g sollu
su
[ forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap Int -> SequenceT Sollu
long [Int
1..Int
7]
, forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap (forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap Int -> SequenceT Sollu
short) [[Int
1, Int
2], [Int
3, Int
4], [Int
5, Int
6], [Int
7, Int
7]]
, forall a. Monoid a => [a] -> a
group2 [Int -> SequenceT Sollu
half Int
n forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
half (forall a. Ord a => a -> a -> a
min Int
7 (Int
nforall a. Num a => a -> a -> a
+Int
1)) | Int
n <- [Int
1,Int
3..Int
7]]
, forall a. Monoid a => a -> a
r8 (forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p7)
, forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r5 forall sollu. SequenceT sollu
p7 forall a. Monoid a => a -> a -> a
. forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
3 (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p7)
]
where
group2 :: [b] -> b
group2 [b]
seq = forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap forall a. Monoid a => [a] -> a
mconcat (forall a. Int -> [a] -> [[a]]
Lists.chunked Int
2 [b]
seq)
long :: Int -> SequenceT Sollu
long Int
n = SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__8 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (forall sollu. Int -> SequenceT sollu
gap Int
n forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
fill Int
n) SequenceT Sollu
tan7
forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
gap Int
n forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Int -> SequenceT Sollu
karvai Int
n) (Int -> SequenceT Sollu
fill Int
n)
short :: Int -> SequenceT Sollu
short Int
n = SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tan7 forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
gap Int
n forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Int -> SequenceT Sollu
karvai Int
n) (Int -> SequenceT Sollu
fill Int
n)
half :: Int -> SequenceT Sollu
half Int
n = SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tan7 forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
gap Int
n forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
fill Int
n
gap :: Int -> SequenceT sollu
gap Int
n = forall sollu. Int -> SequenceT sollu
__n (Int
7forall a. Num a => a -> a -> a
-Int
nforall a. Num a => a -> a -> a
+Int
1)
fill :: Int -> SequenceT Sollu
fill Int
n = (forall a. [a] -> Int -> a
!! (Int
nforall a. Num a => a -> a -> a
-Int
1))
[ SequenceT Sollu
ta
, SequenceT Sollu
taka
, SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na
, SequenceT Sollu
takadinna
, forall sollu. SequenceT sollu
p5
, forall sollu. SequenceT sollu
p6
, forall sollu. SequenceT sollu
p7
]
karvai :: Int -> SequenceT Sollu
karvai Int
n_
| Int
n forall a. Ord a => a -> a -> Bool
> Int
1 = SequenceT Sollu
din forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu
__n Int
n
| Bool
otherwise = forall sollu. Int -> SequenceT sollu
__n (Int
nforall a. Num a => a -> a -> a
+Int
1)
where n :: Int
n = Int
7 forall a. Num a => a -> a -> a
- Int
n_
tan7 :: SequenceT Sollu
tan7 = SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
]
koraippu_misra :: Korvai
koraippu_misra :: Korvai
koraippu_misra = Korvai -> Korvai
koraippu forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [SequenceT Sollu] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map forall g sollu. Sequence g sollu -> Sequence g sollu
su
[ forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap Int -> SequenceT Sollu
long [Int
1..Int
7]
, forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap (forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap Int -> SequenceT Sollu
short) [[Int
1, Int
2], [Int
3, Int
4], [Int
5, Int
6], [Int
7, Int
7]]
, forall a. Monoid a => [a] -> a
group2 [Int -> SequenceT Sollu
half Int
n forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
half (forall a. Ord a => a -> a -> a
min Int
7 (Int
nforall a. Num a => a -> a -> a
+Int
1)) | Int
n <- [Int
1,Int
3..Int
7]]
, forall a. Monoid a => a -> a
r8 (forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p7)
, forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r5 forall sollu. SequenceT sollu
p7 forall a. Monoid a => a -> a -> a
. forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
3 (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p7)
]
where
long :: Int -> SequenceT Sollu
long Int
n = forall sollu. Int -> SequenceT sollu
__M Int
8 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Int -> SequenceT Sollu
fill Int
n) SequenceT Sollu
tan7 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (Int -> SequenceT Sollu
fill Int
n)
short :: Int -> SequenceT Sollu
short Int
n = forall sollu. Int -> SequenceT sollu
__M Int
4 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tan7 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (Int -> SequenceT Sollu
fill Int
n)
half :: Int -> SequenceT Sollu
half Int
n = forall sollu. Int -> SequenceT sollu
__M Int
2 forall a. Monoid a => a -> a -> a
. SequenceT Sollu
tan7 forall a. Monoid a => a -> a -> a
. Int -> SequenceT Sollu
fill Int
n
group2 :: [b] -> b
group2 [b]
seq = forall b a. Monoid b => (a -> b) -> [a] -> b
mconcatMap forall a. Monoid a => [a] -> a
mconcat (forall a. Int -> [a] -> [[a]]
Lists.chunked Int
2 [b]
seq)
fill :: Int -> SequenceT Sollu
fill Int
n = [SequenceT Sollu]
fills forall a. [a] -> Int -> a
!! (Int
nforall a. Num a => a -> a -> a
-Int
1) forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
SequenceT sollu -> SequenceT sollu
karvai SequenceT Sollu
din
fills :: [SequenceT Sollu]
fills = forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
zipWith (\Int
n SequenceT Sollu
p -> forall sollu. Int -> SequenceT sollu
__n (Int
nforall a. Num a => a -> a -> a
+Int
1) forall a. Monoid a => a -> a -> a
. SequenceT Sollu
p) [Int
6, Int
5..]
[ SequenceT Sollu
ta
, SequenceT Sollu
taka
, SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na
, SequenceT Sollu
takadinna
, forall sollu. SequenceT sollu
p5
, forall sollu. SequenceT sollu
p6
, forall sollu. SequenceT sollu
p7
]
tan7 :: SequenceT Sollu
tan7 = SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
gaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
din
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
tangforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
, (SequenceT Sollu
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dinforall a. Monoid a => a -> a -> a
.SequenceT Sollu
na, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
]
tir_18 :: Korvai
tir_18 :: Korvai
tir_18 = Korvai -> Korvai
tirmanam forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> SequenceT Sollu -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
__sam Tala
adi forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ forall sollu.
Pretty sollu =>
FMatra -> SequenceT sollu -> SequenceT sollu -> SequenceT sollu
reduce3 FMatra
2 forall a. Monoid a => a
ø (SequenceT Sollu
dhomforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
dhomforall a. Monoid a => a -> a -> a
.SequenceT Sollu
kaforall a. Monoid a => a -> a -> a
.SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
langforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga)
where
mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
[ (SequenceT Sollu
dhomforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ka, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
, (SequenceT Sollu
taforall a. Monoid a => a -> a -> a
.SequenceT Sollu
langforall a. Monoid a => a -> a -> a
.SequenceT Sollu
ga, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
uforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
]