-- Copyright 2017 Evan Laforge
-- This program is distributed under the terms of the GNU General Public
-- License 3.0, see COPYING or http://www.gnu.org/licenses/gpl-3.0.txt

{-# LANGUAGE RecordWildCards #-}
-- | Korvais from 2016.
module Solkattu.Score.Solkattu2016 where
import Prelude hiding ((.), (^), repeat)

import Solkattu.Dsl.Solkattu


c_16_09_28 :: Korvai
c_16_09_28 :: Korvai
c_16_09_28 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2016 Int
9 Int
28 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$
    Text -> Text -> Korvai -> Korvai
similarTo Text
"Solkattu2016" Text
"c_16_12_06_sriram1" forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> Sequence Group (Note 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. SequenceT sollu -> SequenceT sollu
group Sequence Group (Note Sollu)
tat_dit_ 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 -> SequenceT sollu
group Sequence Group (Note Sollu)
nakataka) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__6
    forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
2 Sequence Group (Note Sollu)
tat_dit_ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ (forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
2 Sequence Group (Note Sollu)
nakataka) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__6
    forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 Sequence Group (Note Sollu)
tat_dit_ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ forall a. Rest a => a
__ (forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 Sequence Group (Note Sollu)
nakataka) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
__6

    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
. Sequence Group (Note Sollu)
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
kpnpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)

    -- TODO the old one kind of looks nicer though...
    -- tat.__.dit.__.kitakina . nakatiku . tri_ __ (na.ka.takadinna.dheem) . __6
    --       .dit.__.kitakina . nakatiku . tri_ __       (takadinna.dheem) . __6
    --              .kitakina . nakatiku . tri_ __            (taka.dheem) . __6
    -- . tri (p6 . kp.p6 . kpnp.p6)
    where
    tat_dit_ :: Sequence Group (Note Sollu)
tat_dit_ = Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kitakina forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
nakatiku
    nakataka :: Sequence Group (Note Sollu)
nakataka = Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
takadinnaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dheem

    kitakina :: Sequence Group (Note Sollu)
kitakina = Sequence Group (Note Sollu)
kiforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kiforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kiforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ka
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.Sequence Group (Note 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))
kforall a. Monoid a => a -> a -> a
.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))
t)
        , (Sequence Group (Note Sollu)
kitakina, 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))
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))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
tStack =>
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 {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence Group (Note Sollu)
nakataka, forall {g}. Sequence g (Note (Stroke Stroke))
nforall 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))
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))
od)
        ]

c_16_12_06_sriram1 :: Korvai
c_16_12_06_sriram1 :: Korvai
c_16_12_06_sriram1 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2016 Int
12 Int
6 forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
source Text
"sriram" forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence Group (Note 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 a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (Sequence Group (Note Sollu)
purvangam.)
    [ forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence Group (Note Sollu)
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4) Sequence Group (Note Sollu)
ta_takadin
    , forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence Group (Note Sollu)
dheemforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4) (forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
kpnpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6)
    -- All variations can get kp and kpnp in the karvai, and
    -- 345 345 345 can become 345 345 3333
    ]
    where
    purvangam :: Sequence Group (Note Sollu)
purvangam =
        Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence Group (Note Sollu)
kitakinaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
nakatiku forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence Group (Note Sollu)
dinnakaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
takadinna))
            forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
                forall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence Group (Note Sollu)
kitakinaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
nakatiku forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri Sequence Group (Note Sollu)
dinnaka)
            forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
                          forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence Group (Note Sollu)
kitakinaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
nakatiku forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri Sequence Group (Note Sollu)
takadinna)
            forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__

    dinnaka :: Sequence Group (Note Sollu)
dinnaka = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ka
    kitakina :: Sequence Group (Note Sollu)
kitakina = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
kitaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kiforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kitaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ka

    ta_takadin :: Sequence Group (Note Sollu)
ta_takadin = 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
1 Sequence Group (Note Sollu)
tat_dit
    tat_dit :: Sequence Group (Note Sollu)
tat_dit = Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ditforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ta forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence Group (Note Sollu)
taka forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
din
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
tat, 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)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note 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))
t)
        , (Sequence Group (Note Sollu)
kitakina, 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))
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))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oStack =>
Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
&forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence Group (Note Sollu)
dinnaka, 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))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
hv 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))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence Group (Note Sollu)
takadinna, 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)
        , (Sequence Group (Note Sollu)
din, forall {g}. Sequence g (Note (Stroke Stroke))
o)
        , (Sequence Group (Note Sollu)
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence Group (Note Sollu)
tat_dit, 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))
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))
o)
        , (Sequence Group (Note Sollu)
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
u)
        , (Tag
midforall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
dheem, forall {g}. Sequence g (Note (Stroke Stroke))
i)
        , (Sequence Group (Note Sollu)
thom, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        ]

c_16_12_06_sriram2 :: Korvai
c_16_12_06_sriram2 :: Korvai
c_16_12_06_sriram2 =
    Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2016 Int
12 Int
6 forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
source Text
"sriram" forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence Group (Note 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
7 forall a b. (a -> b) -> a -> b
$
      forall a. Monoid a => a -> a
r2 Sequence Group (Note Sollu)
takadinnanakita forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
f1       forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__7
    forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 Sequence Group (Note Sollu)
takadinnanakita forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
f1forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
f2    forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__7
    forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 Sequence Group (Note Sollu)
takadinnanakita forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
f1forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
f2forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
f3 forall a. Monoid a => a -> a -> a
. Tag
2forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__7
    forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tamforall 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
.Sequence Group (Note Sollu)
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5)
    where
    takadinnanakita :: Sequence Group (Note Sollu)
takadinnanakita = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
takadinnaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kita
    f1 :: Sequence Group (Note Sollu)
f1 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    f2 :: Sequence Group (Note Sollu)
f2 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
takitaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    f3 :: Sequence Group (Note Sollu)
f3 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
guforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
guforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
taforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence Group (Note Sollu)
naforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
kita, forall {g}. Sequence g (Note (Stroke Stroke))
nforall 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)
        , (Sequence Group (Note Sollu)
f1, 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 {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 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
__)
        , (Sequence Group (Note Sollu)
f2, forall {g}. Sequence g (Note (Stroke Stroke))
nforall 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))
dforall 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
__)
        , (Sequence Group (Note Sollu)
f3, 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))
dforall 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
__)
        , (Sequence Group (Note Sollu)
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Tag
2forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence Group (Note Sollu)
din, 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))
u)
        , (Sequence Group (Note Sollu)
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)
        ]

c_16_12_06_janahan1 :: Korvai
c_16_12_06_janahan1 :: Korvai
c_16_12_06_janahan1 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2016 Int
12 Int
6 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
janahan forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence Group (Note 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. SequenceT sollu -> SequenceT sollu
tri (forall a. Monoid a => [a] -> a
mconcat (forall sollu.
(Stack, Pretty sollu) =>
Int -> FMatra -> SequenceT sollu -> [SequenceT sollu]
expand Int
3 FMatra
2 Sequence Group (Note Sollu)
theme)) forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin forall a. Rest a => a
__ (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
    theme :: Sequence Group (Note Sollu)
theme = Sequence Group (Note Sollu)
takadinnaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
takitaforall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
na
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence Group (Note Sollu)
theme, Sequence Group (Note (Stroke Stroke))
onforall 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))
oStack =>
Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
&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
.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))
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
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
        ]

c_16_12_06_janahan2 :: Korvai
c_16_12_06_janahan2 :: Korvai
c_16_12_06_janahan2 = Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2016 Int
12 Int
6 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
janahan forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence Group (Note 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. SequenceT sollu -> SequenceT sollu
tri Sequence Group (Note Sollu)
theme forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
2 Sequence Group (Note Sollu)
theme) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 Sequence Group (Note Sollu)
theme)
        forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu -> SequenceT sollu
spread Int
2 Sequence Group (Note Sollu)
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6
        forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu -> SequenceT sollu
spread Int
2 Sequence Group (Note Sollu)
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6
        forall a. Monoid a => a -> a -> a
. forall sollu. Int -> SequenceT sollu -> SequenceT sollu
spread Int
2 Sequence Group (Note Sollu)
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence Group (Note Sollu)
kpnpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p6
    where
    theme :: Sequence Group (Note Sollu)
theme = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence Group (Note Sollu)
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence Group (Note Sollu)
takadinna
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam [(Sequence Group (Note 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))
k)]