-- 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 #-}
-- | Solkattu scores from 2017.
module Solkattu.Score.Solkattu2017 where
import           Prelude hiding ((.), (^), repeat)

import qualified Solkattu.Instrument.KendangTunggal as KendangTunggal
import qualified Solkattu.Instrument.Reyong as Reyong
import qualified Solkattu.Instrument.Sargam as Sargam
import qualified Solkattu.S as S
import qualified Solkattu.Tala as Tala

import           Solkattu.Dsl.Solkattu


koraippu_janahan :: Korvai
koraippu_janahan :: Korvai
koraippu_janahan =
    Korvai -> Korvai
koraippu forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
source Text
"janahan" forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence -> 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
$
    let seq :: Matra -> Sequence
seq = Sequence -> Sequence -> Matra -> Sequence
sequence Sequence
takita Sequence
takadinna
    in forall a. Monoid a => [a] -> a
mconcat
        [ Matra -> Sequence
seq Matra
4 forall a. Monoid a => a -> a -> a
. Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
talangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
gaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        , Matra -> Sequence
seq Matra
3 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p5 forall a. Monoid a => a -> a -> a
. Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        , Matra -> Sequence
seq Matra
2 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
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        , Matra -> Sequence
seq Matra
1 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
. Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        ]
    forall a. Semigroup a => a -> a -> a
<> let seq :: Matra -> Sequence
seq = Sequence -> Sequence -> Matra -> Sequence
sequence (Sequence
nangforall a. Monoid a => a -> a -> a
.Sequence
kttk) (forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
nakatiku)
    in forall a. Monoid a => [a] -> a
mconcat
        [ Matra -> Sequence
seq Matra
4 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
nang_kita_nakatiku forall a. Monoid a => a -> a -> a
. Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        , Matra -> Sequence
seq Matra
3 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
thomforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
kitataka)) forall a. Monoid a => a -> a -> a
. Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        , Matra -> Sequence
seq Matra
2 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
nang_kita_nakatiku) forall a. Monoid a => a -> a -> a
. Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        , Matra -> Sequence
seq Matra
1 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
nangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
nakatiku)) forall a. Monoid a => a -> a -> a
. Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
        ]
    forall a. Semigroup a => a -> a -> a
<> let kitakita :: Sequence
kitakita = forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
taka)
        in forall sollu. SequenceT sollu
samforall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. Sequence
kitakita forall a. Monoid a => a -> a -> a
. Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3
            forall a. Monoid a => a -> a -> a
. Sequence
kitakita forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
nakatiku forall a. Monoid a => a -> a -> a
. Sequence
nang_kita_nakatiku) forall a. Monoid a => a -> a -> a
. Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3
            forall a. Monoid a => a -> a -> a
. Sequence
kitakita forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
nakatiku forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 Sequence
nang_kita_nakatiku forall a. Monoid a => a -> a -> a
. Sequence
nakatiku)
            forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
nang_kita_nakatiku
            forall a. Monoid a => a -> a -> a
. Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
    where
    -- problems:
    -- . Some soft p in tam.__3.
    -- . Maybe make the whole thing s2, but tam3 = s0 (tam.__3), where s0 sets
    -- absolute speed.
    -- . Variations, like taka.talang.__.ga, ga can be k or o.
    --   . Emphasize ktkno with pk t k n o
    sequence :: Sequence -> Sequence -> Matra -> Sequence
sequence Sequence
takita Sequence
takadinna Matra
takitas = forall sollu. SequenceT sollu
sam
        forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3
            forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
takadinna
        forall a. Monoid a => a -> a -> a
. forall a. Monoid a => Matra -> a -> a
repeat Matra
takitas Sequence
takita forall a. Monoid a => a -> a -> a
. Sequence
takadinna
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam forall a b. (a -> b) -> a -> b
$ StrokeMap Stroke
strokes forall a. [a] -> [a] -> [a]
++
        [ (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takita, 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)
        , (Sequence
takita, 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
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)
        ]
    -- TODO not hooked up
    _janahan_mridangam :: StrokeMaps
_janahan_mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam forall a b. (a -> b) -> a -> b
$ StrokeMap Stroke
strokes forall a. [a] -> [a] -> [a]
++
        [ (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takita, 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)
        , (Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
takita, forall {g}. Sequence g (Note (Stroke Stroke))
oforall 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))
k)
        , (Sequence
takita, 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)
        , (Sequence
takadinna, 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)
        ]
    strokes :: StrokeMap Stroke
strokes =
        [ (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
talangforall a. Monoid a => a -> a -> a
.Sequence
ga, 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))
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)
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
tat, 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))
k)
        , (Sequence
thom, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
nangforall a. Monoid a => a -> a -> a
.Sequence
kitataka, 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))
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)
        , (Sequence
nangforall a. Monoid a => a -> a -> a
.Sequence
kita, 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))
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
thomforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
kitataka, 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))
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))
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)
        , (Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kitataka, 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))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        ]

nang_kita_nakatiku :: Sequence
nang_kita_nakatiku :: Sequence
nang_kita_nakatiku = Sequence
nangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
nakatiku

e_spacing :: Korvai
e_spacing :: Korvai
e_spacing = Korvai -> Korvai
exercise forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi (StrokeMap Stroke -> StrokeMaps
makeMridangam []) forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
__sam Tala
adi) 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 (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
        [ forall a b. (a -> b) -> [a] -> [b]
map forall sollu. SequenceT sollu -> SequenceT sollu
arithmetic [Sequence
p5, Sequence
p6, Sequence
p7, Sequence
p8, Sequence
p9]
        , forall a b. (a -> b) -> [a] -> [b]
map forall sollu. SequenceT sollu -> SequenceT sollu
geometric [Sequence
p5, Sequence
p6, Sequence
p7, Sequence
p8, Sequence
p9]
        ]
    where
    p5 :: Sequence
p5 = Sequence
tdgnt
    p6 :: Sequence
p6 = Sequence
td_gnt
    p7 :: Sequence
p7 = Sequence
t_d_gnt
    p8 :: Sequence
p8 = Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ginforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
thom
    p9 :: Sequence
p9 = Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ginforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
thom
    arithmetic :: SequenceT sollu -> SequenceT sollu
arithmetic SequenceT sollu
seq = forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 SequenceT sollu
seq forall a. Monoid a => a -> a -> a
. forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 SequenceT sollu
seq forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT sollu
seq
    geometric :: SequenceT sollu -> SequenceT sollu
geometric SequenceT sollu
seq = forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
4 SequenceT sollu
seq forall a. Monoid a => a -> a -> a
. forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 SequenceT sollu
seq forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri SequenceT sollu
seq

c_17_02_06 :: Korvai
c_17_02_06 :: Korvai
c_17_02_06 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
2 Matra
6 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
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) (Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
dingaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
    where
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
takitaforall a. Monoid a => a -> a -> a
.Sequence
dingaforall a. Monoid a => a -> a -> a
.Sequence
din, 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))
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))
od)
        , (Sequence
taka, 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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        ]

c_17_03_20 :: Korvai
c_17_03_20 :: Korvai
c_17_03_20 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
3 Matra
20 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$
    Text -> Korvai -> Korvai
comment Text
"Trichy Sankaran plays in Laya Vinyas, adi talam solo, 1:54." forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi (StrokeMaps
mridangam forall a. Semigroup a => a -> a -> a
<> StrokeMaps
kendang forall a. Semigroup a => a -> a -> a
<> StrokeMaps
reyong) 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.
Stack =>
SequenceT sollu -> Duration -> SequenceT sollu
sarvaD Sequence
sarva (Duration
6 forall a. Num a => a -> a -> a
* Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
theme
        forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> FMatra -> SequenceT sollu -> SequenceT sollu
reduceTo FMatra
4 FMatra
2 Sequence
theme forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
sd (forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall sollu. SequenceT sollu
p6) forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
sd 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 a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) forall sollu. SequenceT sollu
p6
    where
    sarva :: Sequence
sarva = forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na
    theme :: Sequence
theme = Stack => Text -> Sequence
strS Text
"tat_taka takadinna nakadit_ talang_ga"
    -- I'm not sure if I prefer smaller fragments that are easier to read, or
    -- doing the whole theme at once.
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
sarva, 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))
dforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
n)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
taka, 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))
t)
        , (Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
ditforall a. Monoid a => a -> a -> a
.Sequence
talang, 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))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
u)
        , (Sequence
ga, forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
k)
        ]
    kendang :: StrokeMaps
kendang = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
sarva, 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))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
theme, forall {g}. Sequence g (Note (Stroke Stroke))
pforall 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))
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))
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))
pforall 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))
uforall 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))
p)
        ] 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))
pk :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
p :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
t :: Sequence g (Note (Stroke Stroke))
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes
    reyong :: StrokeMaps
reyong = StrokeMap Stroke -> StrokeMaps
makeReyong
        [ (Sequence
sarva, 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
__)
        , (Sequence
theme, forall {g}. Sequence g (Note (Stroke Stroke))
bforall 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))
kforall a. Monoid a => a -> a -> a
.forall {g}. 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))
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))
iforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
r2forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
r3forall 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))
bforall 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))
b)
        ] where Reyong.Strokes {Sequence g (Note (Stroke Stroke))
x :: forall a. Strokes a -> a
k :: forall a. Strokes a -> a
o :: forall a. Strokes a -> a
b :: forall a. Strokes a -> a
i :: forall a. Strokes a -> a
r4 :: forall a. Strokes a -> a
r3 :: forall a. Strokes a -> a
r2 :: forall a. Strokes a -> a
r1 :: forall a. Strokes a -> a
r4 :: Sequence g (Note (Stroke Stroke))
r1 :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
r3 :: Sequence g (Note (Stroke Stroke))
r2 :: Sequence g (Note (Stroke Stroke))
i :: Sequence g (Note (Stroke Stroke))
x :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
b :: Sequence g (Note (Stroke Stroke))
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
Reyong.notes

c_17_09_25 :: Korvai
c_17_09_25 :: Korvai
c_17_09_25 = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
9 Matra
25 forall a b. (a -> b) -> a -> b
$ Text -> Text -> Korvai -> Korvai
similarTo Text
"Solkattu2017" Text
"c_17_03_20" forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
Tala.misra_chapu StrokeMaps
mridangam
    [ forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
3 forall a. Monoid a => a -> a -> a
. Sequence
theme
    , forall a. Monoid a => [a] -> a
mconcat [Sequence
v forall sollu.
(Stack, Pretty sollu) =>
SequenceT sollu -> SequenceT sollu -> SequenceT sollu
`replaceStart` Sequence
theme_ 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 sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
6 Sequence
theme | Sequence
v <- [Sequence]
variants]
    , forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
4 Sequence
theme forall a. Monoid a => a -> a -> a
. Sequence
sequence
    , forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
dropM FMatra
8 Sequence
theme forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 Sequence
sequence
    , forall sollu.
(Stack, Pretty sollu) =>
FMatra -> SequenceT sollu -> SequenceT sollu
rdropM (FMatra
6forall a. Num a => a -> a -> a
+FMatra
2forall a. Num a => a -> a -> a
+FMatra
6forall a. Num a => a -> a -> a
+FMatra
2) Sequence
sequence
    ]
    where
    theme :: Sequence
theme = Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
talangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga
    theme_ :: Sequence
theme_ = Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Tag
2forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
langforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    variants :: [Sequence]
variants = [Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__, Sequence
diku, Sequence
thomforall a. Monoid a => a -> a -> a
.Sequence
thom, Sequence
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__]
    sequence :: Sequence
sequence = forall sollu.
(Stack, Pretty sollu) =>
FMatra -> FMatra -> SequenceT sollu -> SequenceT sollu
reduceTo FMatra
4 FMatra
2 Sequence
theme forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
sd (forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall sollu. SequenceT sollu
p6) forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (forall sollu. SequenceT sollu
__2forall a. Monoid a => a -> a -> a
.Sequence
ga) forall sollu. SequenceT sollu
p6
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
diku, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dit, 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))
k)
        , (Sequence
talang, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
u)
        , (Tag
2forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
lang, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
u)
        , (Sequence
ga, forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
thom, forall {g}. Sequence g (Note (Stroke Stroke))
o)
        ]

c_17_04_04 :: Korvai
c_17_04_04 :: Korvai
c_17_04_04 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
4 Matra
4 forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
source Text
"subash chandran" forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
Tala.misra_chapu 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
sd forall b c a. (b -> c) -> (a -> b) -> a -> c
 (Sequence
purvangam.))
    [ Matra -> Sequence -> Sequence -> Sequence
utarangam Matra
3 Sequence
takita (Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
taka)
    , Matra -> Sequence -> Sequence -> Sequence
utarangam Matra
4 Sequence
takadinna Sequence
takadinna
    , Matra -> Sequence -> Sequence -> Sequence
utarangam Matra
5 Sequence
tdgnt Sequence
tdgnt
    , Matra -> Sequence -> Sequence -> Sequence
utarangam Matra
6 Sequence
td_gnt Sequence
td_gnt
    ]
    where
    purvangam :: Sequence
purvangam = Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. Sequence
tadimi
              forall a. Monoid a => a -> a -> a
. Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
. Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3 forall a. Monoid a => a -> a -> a
. Sequence
tadimi
    utarangam :: Matra -> Sequence -> Sequence -> Sequence
utarangam Matra
n Sequence
p Sequence
p2 = forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
4 Sequence
p) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 Sequence
p) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 Sequence
p)
        forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
n) (forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
p2)
    tadimi :: Sequence
tadimi = Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
diforall a. Monoid a => a -> a -> a
.Sequence
miforall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
takadinna
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
din, 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))
nforall 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))
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))
od)
        , (Sequence
tadimi, 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))
nforall 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))
pStack =>
Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
-> Sequence Group (Note (Stroke Stroke))
&forall {g}. Sequence g (Note (Stroke Stroke))
dforall 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))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)

        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
tdgnt, 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))
o)
        , (Sequence
takita, 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)
        , (Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
taka, 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))
nforall 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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
takadinna, 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 {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        ]

c_17_04_23 :: Korvai
c_17_04_23 :: Korvai
c_17_04_23 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
4 Matra
23 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> 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
sd -- remove for melkalam
    [ Sequence
purvangam forall a. Monoid a => a -> a -> a
. forall {g} {sollu}.
Sequence g sollu -> Sequence g sollu -> Sequence g sollu
utarangam (forall sollu. SequenceT sollu -> SequenceT sollu
g (Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt)) (forall sollu. SequenceT sollu -> SequenceT sollu
g (Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt))
    , Sequence
purvangam forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (forall sollu. SequenceT sollu -> SequenceT sollu
r32111 Sequence
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
r32111 (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tdgnt)
        forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
r32111 (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
tdgnt))
    , Sequence
purvangam forall a. Monoid a => a -> a -> a
. forall {g} {sollu}.
Sequence g sollu -> Sequence g sollu -> Sequence g sollu
utarangam (forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
taforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
ginforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2)) forall sollu. SequenceT sollu
p7
    ]
    where
    r32111 :: SequenceT sollu -> SequenceT sollu
r32111 SequenceT sollu
ns = forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 SequenceT sollu
ns) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 SequenceT sollu
ns) forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (forall sollu. SequenceT sollu -> SequenceT sollu
g SequenceT sollu
ns)
    purvangam :: Sequence
purvangam = forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) (forall sollu. SequenceT sollu -> SequenceT sollu
g (Sequence
taforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
takadinna))
        forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
SequenceT sollu -> SequenceT sollu -> SequenceT sollu
sandi (forall sollu. SequenceT sollu -> SequenceT sollu
g (Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
takadinna)) (forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2) (forall sollu. SequenceT sollu -> SequenceT sollu
g (Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
takadinna)))
    utarangam :: Sequence g sollu -> Sequence g sollu -> Sequence g sollu
utarangam Sequence g sollu
p7 Sequence g sollu
p7' = forall a. Monoid a => [a] -> a
mconcat
        [ forall g sollu. Sequence g sollu -> Sequence g sollu
sd Sequence g sollu
p7 forall a. Monoid a => a -> a -> a
. Sequence g sollu
p7 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence g sollu
end
        | Sequence g sollu
end <- [Sequence g sollu
p7', Sequence g sollu
p7'forall a. Monoid a => a -> a -> a
.Sequence g sollu
p7', Sequence g sollu
p7'forall a. Monoid a => a -> a -> a
.Sequence g sollu
p7'forall a. Monoid a => a -> a -> a
.Sequence g sollu
p7']
        -- TODO some kind of x, xx, xxx function
        ]
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        -- TODO spread doesn't work with standard patterns, but it should
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tdgnt, 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))
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))
o)
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
ka, 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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        ]

c_17_05_10 :: Korvai
c_17_05_10 :: Korvai
c_17_05_10 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
5 Matra
10 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi StrokeMaps
insts forall a b. (a -> b) -> a -> b
$
    forall a. Monoid a => [a] -> a
mconcat (forall a b. (a -> b) -> [a] -> [b]
map forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$
        forall a b. [a] -> (a -> b) -> [b]
for ([Sequence
taforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
n | Matra
n <- [Matra
4, Matra
3, Matra
2, Matra
1]] forall a. [a] -> [a] -> [a]
++ [forall a. Monoid a => a
ø])
            (forall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
dinga)
        forall a. [a] -> [a] -> [a]
++ forall a b. [a] -> (a -> b) -> [b]
for ([Sequence
taforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
n | Matra
n <- [Matra
3, Matra
2, Matra
1]]) (forall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
dinga)
        ) forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
FMatra -> FMatra -> SequenceT sollu -> SequenceT sollu
reduceTo FMatra
3 FMatra
1 (Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
dinga)
    forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
4 Sequence
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
group Sequence
tdgnt)

    -- TODO an alternate way to this is a reduceTo that makes a list,
    -- then zipWith a replacePrefix, e.g.:
    -- reduceTo 3 1 (ta.__4 . ta.__.kita.takadinna.dinga) `with`
    --     [ ø, ta.__3, ta.__2, ta.__, ta, ø
    --     , ø, ta.__3 , ta.__
    --     ]
    -- This is less code, but maybe not very obvious?

    -- ta.__4 . ta.__.kita.takadinna.dinga
    -- ta.__3 . ta.__.kita.takadinna.dinga
    -- ta.__  . ta.__.kita.takadinna.dinga
    --     ta . ta.__.kita.takadinna.dinga
    --          ta.__.kita.takadinna.dinga
    --            ta.__.__.takadinna.dinga
    --               ta.__.takadinna.dinga
    --                  ta.takadinna.dinga
    where
    insts :: StrokeMaps
insts = StrokeMaps
mridangam forall a. Semigroup a => a -> a -> a
<> StrokeMaps
kendang forall a. Semigroup a => a -> a -> a
<> StrokeMaps
sargam
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
kita, forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
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
__)
        ]
    kendang :: StrokeMaps
kendang = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
kita, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
takadinna, 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))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
dinga, forall {g}. Sequence g (Note (Stroke Stroke))
aforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tdgnt, 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))
aforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
        ] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
å :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
t :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
p :: 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
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes
    sargam :: StrokeMaps
sargam = [(Matra, Sequence Group (Note (Stroke Stroke)))]
-> StrokeMap Stroke -> StrokeMaps
makeSargam []
        [ (Sequence
ta, forall {g}. SequenceM g
s1)
        , (Sequence
kita, forall {g}. SequenceM g
nforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
s1)
        , (Sequence
takadinna, forall {g}. SequenceM g
dforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
nforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
pforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
d)
        , (Sequence
dinga, forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
hv forall {g}. SequenceM g
gforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
s)
        , (Sequence
tdgnt, forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
hv forall {g}. SequenceM g
rforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
gforall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
hv forall {g}. SequenceM g
pforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
mforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
n)
        ] where Sargam.Strokes {SequenceM g
n1 :: forall a. Strokes a -> a
d1 :: forall a. Strokes a -> a
p1 :: forall a. Strokes a -> a
m1 :: forall a. Strokes a -> a
g1 :: forall a. Strokes a -> a
r1 :: forall a. Strokes a -> a
s1 :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
m :: forall a. Strokes a -> a
g :: forall a. Strokes a -> a
r :: forall a. Strokes a -> a
s :: forall a. Strokes a -> a
n_ :: forall a. Strokes a -> a
d_ :: forall a. Strokes a -> a
p_ :: forall a. Strokes a -> a
m_ :: forall a. Strokes a -> a
g_ :: forall a. Strokes a -> a
r_ :: forall a. Strokes a -> a
s_ :: forall a. Strokes a -> a
n1 :: SequenceM g
d1 :: SequenceM g
p1 :: SequenceM g
m1 :: SequenceM g
g1 :: SequenceM g
r1 :: SequenceM g
n_ :: SequenceM g
d_ :: SequenceM g
p_ :: SequenceM g
m_ :: SequenceM g
g_ :: SequenceM g
r_ :: SequenceM g
s_ :: SequenceM g
m :: SequenceM g
r :: SequenceM g
s :: SequenceM g
g :: SequenceM g
p :: SequenceM g
d :: SequenceM g
n :: SequenceM g
s1 :: SequenceM g
..} = forall g. Strokes (SequenceM g)
Sargam.notes

c_17_05_19 :: Korvai
c_17_05_19 :: Korvai
c_17_05_19 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
5 Matra
15 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
exercise forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p8 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
thom)) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p8 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu
p5
    where
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam [(Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
thom, 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))
o)]

c_17_05_19_janahan :: Korvai
c_17_05_19_janahan :: Korvai
c_17_05_19_janahan =
    Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
5 Matra
15 forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
source Text
"janahan" forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Matra -> Matra -> Sequence
tat_din_din_tam Matra
4 Matra
3 forall a. Monoid a => a -> a -> a
. Matra -> Matra -> Sequence
tat_din_din_tam Matra
4 Matra
2 forall a. Monoid a => a -> a -> a
. Matra -> Matra -> Sequence
tat_din_din_tam Matra
3 Matra
2
        forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2forall a. Monoid a => a -> a -> a
.Sequence
ta) forall a. Monoid a => a -> a -> a
. Sequence
tatforall 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 -> SequenceT sollu
group (Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
takita))
    where
    tat_din_din_tam :: Matra -> Matra -> Sequence
tat_din_din_tam Matra
a Matra
b =
          Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4         forall a. Monoid a => a -> a -> a
.    Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
a forall a. Monoid a => a -> a -> a
. Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
b forall a. Monoid a => a -> a -> a
. Sequence
ta
        forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2forall a. Monoid a => a -> a -> a
.Sequence
kumforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2 forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^(Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
a forall a. Monoid a => a -> a -> a
. Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
b forall a. Monoid a => a -> a -> a
. Sequence
ta)
        -- TODO with thom
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
d)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
n)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tat, 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))
k)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tam, 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))
n)
        , (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
kum, forall {g}. Sequence g (Note (Stroke Stroke))
o)
        , (Sequence
takadinna, 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))
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
takita, 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)
        ]

c_17_06_02_janahan :: Korvai
c_17_06_02_janahan :: Korvai
c_17_06_02_janahan = Korvai -> Korvai
tirmanam forall a b. (a -> b) -> a -> b
$ Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
6 Matra
2 forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
source Text
"janahan" forall a b. (a -> b) -> a -> b
$
        Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    forall sollu. Stack => Duration -> SequenceT sollu
__D Duration
2 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
kttk) (forall sollu. SequenceT sollu -> SequenceT sollu
group (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
tkforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
tat))
    where
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
tk, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
kttk, 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))
o)
        ]

c_17_06_15 :: Korvai
c_17_06_15 :: Korvai
c_17_06_15 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
6 Matra
15 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    [ forall a. Monoid a => [a] -> a
mconcat [forall a. (Semigroup a, Monoid a) => [a] -> a -> a
suffix [Sequence]
sequence (Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
gap) | Matra
gap <- [Matra
4, Matra
3, Matra
2]]
    , forall sollu.
SequenceT sollu -> [SequenceT sollu] -> SequenceT sollu
join (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
ta) [forall a. (Semigroup a, Monoid a) => [a] -> a -> a
suffix [Sequence]
sequence (Sequence
thomforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
gap) | Matra
gap <- [Matra
2, Matra
3, Matra
4]]
    ]
    where
    sequence :: [Sequence]
sequence = [Sequence
takadinna, Sequence
takita, Sequence
taka, Sequence
ta]
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
takita, 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
taka, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
thom, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        ]

c_17_06_19 :: Korvai
c_17_06_19 :: Korvai
c_17_06_19 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
6 Matra
19 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> Sequence -> Korvai
korvaiS1 Tala
adi StrokeMaps
inst 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
ø (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)
        forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
SequenceT sollu -> SequenceT sollu -> SequenceT sollu
sandi forall sollu. SequenceT sollu
p5 (forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall sollu. SequenceT sollu
p5 (Sequence
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5) (Sequence
kpnpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5))
    where
    inst :: StrokeMaps
inst = StrokeMaps
mridangam forall a. Semigroup a => a -> a -> a
<> StrokeMaps
kendang forall a. Semigroup a => a -> a -> a
<> StrokeMaps
sargam
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dit, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)
        ]
    kendang :: StrokeMaps
kendang = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dit, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
a)
        ] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
å :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
t :: Sequence g (Note (Stroke Stroke))
p :: 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
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes
    sargam :: StrokeMaps
sargam = [(Matra, Sequence Group (Note (Stroke Stroke)))]
-> StrokeMap Stroke -> StrokeMaps
makeSargam
        [ (Matra
5, forall g sollu. Sequence g sollu -> Sequence g sollu
su (forall {g}. SequenceM g
d_forall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
sforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
d_forall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
n_) forall a. Monoid a => a -> a -> a
. forall {g}. SequenceM g
sforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
n_forall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
p_)
        ]
        [ (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dit, forall {g}. SequenceM g
pforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
m)
        , (Sequence
takadinna, forall {g}. SequenceM g
pforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
mforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
rforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
m)
        , (Sequence
din, forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
hv forall {g}. SequenceM g
s)
        , (Sequence
tam, forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
hv forall {g}. SequenceM g
s_)
        , (Sequence
kp, forall {g}. SequenceM g
sforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
p_)
        , (Sequence
kpnp, forall {g}. SequenceM g
sforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
p_forall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
rforall a. Monoid a => a -> a -> a
.forall {g}. SequenceM g
p_)
        ] where Sargam.Strokes {SequenceM g
n1 :: SequenceM g
d1 :: SequenceM g
p1 :: SequenceM g
m1 :: SequenceM g
g1 :: SequenceM g
r1 :: SequenceM g
s1 :: SequenceM g
n :: SequenceM g
d :: SequenceM g
g :: SequenceM g
m_ :: SequenceM g
g_ :: SequenceM g
r_ :: SequenceM g
s_ :: SequenceM g
r :: SequenceM g
m :: SequenceM g
p :: SequenceM g
p_ :: SequenceM g
n_ :: SequenceM g
s :: SequenceM g
d_ :: SequenceM g
n1 :: forall a. Strokes a -> a
d1 :: forall a. Strokes a -> a
p1 :: forall a. Strokes a -> a
m1 :: forall a. Strokes a -> a
g1 :: forall a. Strokes a -> a
r1 :: forall a. Strokes a -> a
s1 :: forall a. Strokes a -> a
n :: forall a. Strokes a -> a
d :: forall a. Strokes a -> a
p :: forall a. Strokes a -> a
m :: forall a. Strokes a -> a
g :: forall a. Strokes a -> a
r :: forall a. Strokes a -> a
s :: forall a. Strokes a -> a
n_ :: forall a. Strokes a -> a
d_ :: forall a. Strokes a -> a
p_ :: forall a. Strokes a -> a
m_ :: forall a. Strokes a -> a
g_ :: forall a. Strokes a -> a
r_ :: forall a. Strokes a -> a
s_ :: forall a. Strokes a -> a
..} = forall g. Strokes (SequenceM g)
Sargam.notes

c_17_06_19_koraippu :: Korvai
c_17_06_19_koraippu :: Korvai
c_17_06_19_koraippu = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
6 Matra
19 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
koraippu forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall sollu. Stack => Duration -> SequenceT sollu
restD Duration
2 .)
    [ forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
tanga7 forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall a. Monoid a => a -> a -> a
. Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence
tatforall 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 (Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) forall a. Monoid a => a -> a -> a
. Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence
tatforall 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 (Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4) forall a. Monoid a => a -> a -> a
. Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt

    -- 6 + 15
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ forall g sollu. Matra -> Sequence g sollu -> Sequence g sollu
nadai Matra
6 (Sequence
tanga7forall a. Monoid a => a -> a -> a
.Sequence
ga) forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__5forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__5forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__5 forall a. Monoid a => a -> a -> a
. Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt

    -- 334353
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
tangaforall a. Monoid a => a -> a -> a
.Sequence
dinga forall a. Monoid a => a -> a -> a
. Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
tangaforall a. Monoid a => a -> a -> a
.Sequence
dinga forall a. Monoid a => a -> a -> a
. Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tangaforall a. Monoid a => a -> a -> a
.Sequence
dinga forall a. Monoid a => a -> a -> a
. Sequence
kpforall a. Monoid a => a -> a -> a
.Sequence
tdgnt
    ]
    where
    tanga7 :: Sequence
tanga7 = Sequence
tangaforall a. Monoid a => a -> a -> a
.Sequence
dingaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
tanga, 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))
k)
        , (Sequence
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 {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tat, Sequence Group (Note (Stroke Stroke))
on)
        , (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        ]

-- variations:
-- purvangam . any dintaka
-- utarangam . any dintaka
--
-- purvangam [k_kt, v___]
-- utarangam

c_17_07_13 :: Korvai
c_17_07_13 :: Korvai
c_17_07_13 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
7 Matra
13 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
trikalam forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi (StrokeMaps
mridangamforall a. Semigroup a => a -> a -> a
<>StrokeMaps
kendang) forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
    -- TODO when I can do branches, any dintaka can substitute
    -- purvangam (any dintakas) . utarangam (any dintakas)
    [ forall a b. (a -> b) -> [a] -> [b]
map Sequence -> Sequence
purvangam [Sequence]
dintakas
    , forall a b. (a -> b) -> [a] -> [b]
map Sequence -> Sequence
utarangam [Sequence]
dintakas
    , [Sequence
utarangam_gap]

    -- tisram
    , forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Matra -> Sequence g sollu -> Sequence g sollu
nadai Matra
6)
        [ forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence -> Sequence
purvangam Sequence
basic_dintaka)
        , Sequence
one_avartanam forall a. Monoid a => a -> a -> a
. Sequence -> Sequence
utarangam Sequence
basic_dintaka
        ]
    , (forall a. a -> [a] -> [a]
:[]) 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 -> Sequence
purvangam Sequence
basic_dintaka)
        forall a. Monoid a => a -> a -> a
. Sequence
one_avartanam forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence -> Sequence
utarangam Sequence
basic_dintaka)
    ]
    where
    purvangam :: Sequence -> Sequence
purvangam Sequence
dintaka =
        Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__2 forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
kttk
        forall a. Monoid a => a -> a -> a
. Sequence
dintaka forall a. Monoid a => a -> a -> a
. Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4
    -- variation: drop kita, so ta.__.kita -> ta.__4
    utarangam :: Sequence -> Sequence
utarangam Sequence
dintaka = forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__) forall a b. (a -> b) -> a -> b
$
        Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na forall a. Monoid a => a -> a -> a
. Sequence
dintakaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    utarangam_gap :: Sequence
utarangam_gap = forall sollu. SequenceT sollu -> SequenceT sollu
tri forall a b. (a -> b) -> a -> b
$
        Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
naforall 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
takitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    one_avartanam :: Sequence
one_avartanam = Sequence
taforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
      forall a. Monoid a => a -> a -> a
. Sequence
dhomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. Sequence
dhomforall a. Monoid a => a -> a -> a
.Sequence
dhomforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    basic_dintaka :: Sequence
basic_dintaka = Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^(Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
taka)
    dintakas :: [Sequence]
dintakas = -- each is 6 beats -- TODO map assert dur == 6
        [ Sequence
basic_dintaka
        , Sequence
dinforall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tkforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
taka
        , Sequence
dinforall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tkforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tkforall a. Monoid a => a -> a -> a
.Sequence
din
        , forall g sollu. Sequence g sollu -> Sequence g sollu
n6 (Sequence
dinforall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
taka)forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
taka
        , forall g sollu. Sequence g sollu -> Sequence g sollu
n6 (Sequence
dinforall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
ta) forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
din
        -- TODO this one can also be slightly swung, so ta is slightly later
        , forall g sollu. Sequence g sollu -> Sequence g sollu
n6 (Sequence
dinforall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
taka)forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
dinforall a. Monoid a => a -> a -> a
.Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
ta) forall a. Monoid a => a -> a -> a
. Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
din
        ]
    n6 :: Sequence g sollu -> Sequence g sollu
n6 = forall g sollu. Matra -> Sequence g sollu -> Sequence g sollu
nadai Matra
6

    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam0
        [ (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
kita, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
        -- TODO this od should be od when slow, and o when fast.  Should I try
        -- to express it with a stroke attribute, or a general
        -- instrument-specific realization heuristic?
        -- TODO also okookook -> nakatiku at high speed
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
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)
        , (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na, forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
na, forall {g}. Sequence g (Note (Stroke Stroke))
k)

        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
din, 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))
od)
        , (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
on)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tat, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.Sequence Group (Note (Stroke Stroke))
on)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
v)

        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^(Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
taka), 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)

        -- dintakas
        , (Sequence
basic_dintaka, 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))
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)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
o)

        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takita, 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)
        , (Sequence
dhom, forall {g}. Sequence g (Note (Stroke Stroke))
o)
        ]

    kendang :: StrokeMaps
kendang = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
ta, forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
kita, forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
aforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na, forall {g}. Sequence g (Note (Stroke Stroke))
aforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)

        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
din, 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))
a)
        , (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tat, 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))
o)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)

        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^(Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
taka), forall {g}. Sequence g (Note (Stroke Stroke))
tforall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
aforall 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))
p)

        -- dintakas
        , (Sequence
basic_dintaka, forall {g}. Sequence g (Note (Stroke Stroke))
aforall 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))
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))
pforall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
a)

        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
takita, forall {g}. Sequence g (Note (Stroke Stroke))
pforall 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)
        , (Sequence
dhom, forall {g}. Sequence g (Note (Stroke Stroke))
o)
        ] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
å :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
u :: 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))
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
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes

c_17_07_19 :: Korvai
c_17_07_19 :: Korvai
c_17_07_19 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
7 Matra
19 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
exercise forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    forall a b. (a -> b) -> [a] -> [b]
map forall a. Monoid a => [a] -> a
mconcat
    [ [forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall sollu. SequenceT sollu
p6 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
. Matra -> Sequence
dhom_tat_din Matra
2)]
    , [forall sollu. SequenceT sollu
p6 forall a. Monoid a => a -> a -> a
. Sequence
p5s forall a. Monoid a => a -> a -> a
. Matra -> Sequence
dhom_tat_din Matra
2 | Sequence
p5s <- [forall sollu. SequenceT sollu
p5, forall sollu. SequenceT sollu
p5forall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5, 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]]
    , [forall sollu. SequenceT sollu
p6 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
. Matra -> Sequence
dhom_tat_din Matra
n | Matra
n <- [Matra
1, Matra
2, Matra
3]]
    ]
    where
    dhom_tat_din :: Matra -> Sequence
dhom_tat_din Matra
gap = Sequence
dhomforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
gap forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. Matra -> SequenceT sollu
__n Matra
gap  forall a. Monoid a => a -> a -> a
. Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
dhomforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
din, 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_17_08_21 :: Korvai
c_17_08_21 :: Korvai
c_17_08_21 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
8 Matra
21 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
sudhindra forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
tirmanam forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    forall a b. (a -> b) -> [a] -> [b]
map (forall sollu.
(Stack, Pretty sollu) =>
Tala -> SequenceT sollu -> SequenceT sollu
__sam Tala
adi)
    [ forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga) (Sequence
kttkforall a. Monoid a => a -> a -> a
.Sequence
trktforall a. Monoid a => a -> a -> a
.Sequence
tkforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na)
    , forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga) (Sequence
trktforall a. Monoid a => a -> a -> a
.Sequence
tkforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na)
    , forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga) (forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
t2)
    , forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga) (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ Sequence
talangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga)
    ]
    where
    t2 :: Sequence
t2 = Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
kttkforall a. Monoid a => a -> a -> a
.Sequence
trktforall a. Monoid a => a -> a -> a
.Sequence
tk, 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))
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))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
trktforall a. Monoid a => a -> a -> a
.Sequence
tk, 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))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na, 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)
        , (Tag
1forall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga, 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))
k) -- avoid double thoppi
        , (Sequence
tangforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
ga, 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)
        , (Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
takadinnaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
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))
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 {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))
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
talangforall a. Monoid a => a -> a -> a
.Sequence
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)
        ]

c_17_08_29 :: Korvai
c_17_08_29 :: Korvai
c_17_08_29 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
8 Matra
29 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
Tala.misra_chapu (StrokeMaps
mridangamforall a. Semigroup a => a -> a -> a
<>StrokeMaps
kendang1)
    [ forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
7 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
3   forall a. Monoid a => a -> a -> a
. Sequence
developforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
din
    , Sequence
ditforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
2 forall a. Monoid a => a -> a -> a
. Sequence
develop forall a. Monoid a => a -> a -> a
. Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
ditforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
2 forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri Sequence
develop forall a. Monoid a => a -> a -> a
. Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__

    , Sequence -> Sequence
sequence Sequence
theme1
    , Sequence -> Sequence
sequence Sequence
theme2
    , Sequence -> Sequence
sequence Sequence
theme3
    ]
    where
    sequence :: Sequence -> Sequence
sequence Sequence
t =
        forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__8) (Sequence
t4forall a. Monoid a => a -> a -> a
.Sequence
t3forall a. Monoid a => a -> a -> a
.Sequence
t2)
        forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
SequenceT sollu -> SequenceT sollu -> SequenceT sollu
sandi (Sequence
t3forall a. Monoid a => a -> a -> a
.Sequence
t2) (forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__8) (Sequence
t3forall a. Monoid a => a -> a -> a
.Sequence
t2))
        forall a. Monoid a => a -> a -> a
. forall sollu.
(Stack, Pretty sollu) =>
SequenceT sollu -> SequenceT sollu -> SequenceT sollu
sandi Sequence
t2      (forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__8) (forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_nomid (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4) Sequence
t2))
        forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tam
        where [Sequence
t4, Sequence
t3, Sequence
t2] = forall a. Matra -> [a] -> [a]
take Matra
3 forall a b. (a -> b) -> a -> b
$ forall sollu.
(Stack, Pretty sollu) =>
FMatra -> FMatra -> SequenceT sollu -> [SequenceT sollu]
reduceToL FMatra
0 FMatra
2 Sequence
t
    -- (4  3  2)  2  4
    -- (4  3  2)  2  4
    -- (4{ 3  2)
    --    (3  2)} 2  4
    --    (3  2)  2  4
    --    (3{ 2)
    --       (2)} 2  2  (2)  2   2 (2)
    --            1  4
    --       (2)  2  2  (2)  2  2  (2)
    --            1  4
    --       (2)  2  2  (2)  2  2  (2)
    --            1  4
    develop :: Sequence
develop = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dingaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dingaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dinga -- 7 matras
    theme1 :: Sequence
theme1 = Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dinga
    theme2 :: Sequence
theme2 = Sequence
dhomforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dhomforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
na forall a. Monoid a => a -> a -> a
. Sequence
kttk
    theme3 :: Sequence
theme3 = Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
ktforall a. Monoid a => a -> a -> a
.Sequence
trktforall a. Monoid a => a -> a -> a
.Sequence
dhom
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
na, forall {g}. Sequence g (Note (Stroke Stroke))
n)
        , (Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dinga, 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 a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
din, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
dit, forall {g}. Sequence g (Note (Stroke Stroke))
n)

        , (Sequence
theme1, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall 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
.Sequence Group (Note (Stroke Stroke))
onforall 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))
o)
        , (Sequence
tat, Sequence Group (Note (Stroke Stroke))
on)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
u)
        , (Tag
midforall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
i)

        , (Sequence
theme2, 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))
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))
oforall 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))
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
theme3, 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))
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))
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))
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))
o)
        ]
    kendang1 :: StrokeMaps
kendang1 = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
na, forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
dinga, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
uforall 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))
p)
        , (Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Sequence
dit, forall {g}. Sequence g (Note (Stroke Stroke))
t)

        , (Sequence
theme1, 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))
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))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
uforall 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))
p)
        , (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
o)
        , (Tag
midforall sollu. Tag -> SequenceT sollu -> SequenceT sollu
^Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
a)

        , (Sequence
theme2, forall {g}. Sequence g (Note (Stroke Stroke))
aforall 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))
aforall 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))
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 stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
aforall 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))
p)
        , (Sequence
theme3, 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))
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))
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))
pforall a. Monoid a => a -> a -> a
.forall stroke.
SequenceT (Stroke stroke) -> SequenceT (Stroke stroke)
lt forall {g}. Sequence g (Note (Stroke Stroke))
aforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
        ] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
å :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
p :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
t :: 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
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes

c_17_10_23 :: Korvai
c_17_10_23 :: Korvai
c_17_10_23 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
10 Matra
23 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
koraippu forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi (StrokeMaps
mridangamforall a. Semigroup a => a -> a -> a
<>StrokeMaps
kendang1)
    [ forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
8 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
4.5 forall a. Monoid a => a -> a -> a
. Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
8 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
4 forall a. Monoid a => a -> a -> a
. Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
8 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
3.5 forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
8 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
3.5 forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t2
    , forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
4.5 forall a. Monoid a => a -> a -> a
. Sequence
t1 forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
4 forall a. Monoid a => a -> a -> a
. Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
3.5 forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
3.5 forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t2
    , Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__8 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
k_pknforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__7) forall a. Monoid a => a -> a -> a
. Sequence
t1
        forall a. Monoid a => a -> a -> a
. Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__8 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
o_oknforall a. Monoid a => a -> a -> a
.Sequence
k_pkn) forall a. Monoid a => a -> a -> a
. Sequence
t1
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. Sequence
o_oknforall a. Monoid a => a -> a -> a
.Sequence
k_pknforall a. Monoid a => a -> a -> a
.Sequence
t1
    , forall a. Monoid a => a -> a
r3 (Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
t2) 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 sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2)
    -- korvai
    , Sequence
k_pknforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
        forall a. Monoid a => a -> a -> a
. Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
k_pknforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
        forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
k_pknforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
        forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 Sequence
tdgnt) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 Sequence
tdgnt)
        forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) (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)
    -- alternate endings
    , let tkp :: Sequence -> Sequence
tkp = forall sollu. SequenceT sollu -> SequenceT sollu -> SequenceT sollu
tri_ (forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
kp) in
        forall sollu. Stack => Duration -> SequenceT sollu
restD Duration
7 forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 Sequence
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 Sequence
tdgnt
        forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3) (Sequence -> Sequence
tkp forall sollu. SequenceT sollu
p5) (Sequence -> Sequence
tkp forall sollu. SequenceT sollu
p6) (Sequence -> Sequence
tkp forall sollu. SequenceT sollu
p7)
    , forall sollu. Stack => Duration -> SequenceT sollu
restD Duration
7 forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 Sequence
tdgnt forall a. Monoid a => a -> a -> a
. forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 Sequence
tdgnt
        forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
            (forall sollu. SequenceT sollu -> SequenceT sollu
tri forall sollu. SequenceT sollu
p5) (forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
kpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5)) (forall sollu. SequenceT sollu -> SequenceT sollu
tri (forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
kpnpforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
p5))
    ]
    where
    t1 :: Sequence
t1 = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
t1_solluforall a. Monoid a => a -> a -> a
.Sequence
tend
    t1_sollu :: Sequence
t1_sollu = Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kita
    t2 :: Sequence
t2 = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
k_pkn forall a. Monoid a => a -> a -> a
. Sequence
tend2
    tend :: Sequence
tend = Sequence
takaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    tend2 :: Sequence
tend2 = Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    k_pkn :: Sequence
k_pkn = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ Sequence
dit forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tadikita
    o_okn :: Sequence
o_okn = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ Sequence
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tadikita

    kitataka :: Sequence
kitataka = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
kttk
    kitakita :: Sequence
kitakita = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
ktforall a. Monoid a => a -> a -> a
.Sequence
kt
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
t1_sollu, 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 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))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tend, 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))
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))
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 a. Rest a => a
__)
        , (Sequence
k_pkn, 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))
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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p 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))
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))
o)
        , (Sequence
o_okn, forall {g}. Sequence g (Note (Stroke Stroke))
kStack =>
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))
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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o 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))
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))
o)
        , (Sequence
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)
        , (Sequence
kitakita, 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))
t)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.Sequence
tam, 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))
kforall 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))
od)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tam, 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))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
od)
        ]
    kendang1 :: StrokeMaps
kendang1 = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
t1_sollu, 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 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 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))
p)
        , (Sequence
tend, 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 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))
pforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
        , (Sequence
k_pkn, forall {g}. Sequence g (Note (Stroke Stroke))
pforall 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))
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))
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. 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))
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))
a)
        , (Sequence
o_okn, forall {g}. Sequence g (Note (Stroke Stroke))
aforall 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))
aforall 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))
aforall 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. 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))
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))
a)
        , (Sequence
kitataka, 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))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
kitakita, 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))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
pkforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pkforall 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))
a)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
pkforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pkforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
a)
        ] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
å :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
t :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
p :: 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
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes

c_20_12_12_kanda :: Korvai
c_20_12_12_kanda :: Korvai
c_20_12_12_kanda = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2020 Matra
12 Matra
12 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
koraippu forall a b. (a -> b) -> a -> b
$
    Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
Tala.kanda_chapu (StrokeMaps
mridangamforall a. Semigroup a => a -> a -> a
<>StrokeMaps
kendang1) forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map forall g sollu. Sequence g sollu -> Sequence g sollu
sd
    [ forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ (Duration
13forall a. Fractional a => a -> a -> a
/Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ (Duration
12forall a. Fractional a => a -> a -> a
/Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ (Duration
11forall a. Fractional a => a -> a -> a
/Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ (Duration
3forall a. Fractional a => a -> a -> a
/Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ (Duration
2forall a. Fractional a => a -> a -> a
/Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        forall a. Monoid a => a -> a -> a
. forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ (Duration
1forall a. Fractional a => a -> a -> a
/Duration
2) forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
t1
        -- . sarvaD_ (3/2) . t2
        -- . sarvaD_ (2/2) . kitataka.t2
        -- . sarvaD_ (1/2) . kitakita.kitataka.t2
    , Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r4 Sequence
t1 -- practice
    , Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
k_pknforall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__7) forall a. Monoid a => a -> a -> a
. Sequence
t1
    , Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__4 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
o_oknforall a. Monoid a => a -> a -> a
.Sequence
k_pkn) forall a. Monoid a => a -> a -> a
. Sequence
t1
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. Sequence
o_oknforall a. Monoid a => a -> a -> a
.Sequence
k_pknforall a. Monoid a => a -> a -> a
.Sequence
t1
    , forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
t1
    -- korvai
    , Sequence
k_pknforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
        forall a. Monoid a => a -> a -> a
. Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
k_pknforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
        forall a. Monoid a => a -> a -> a
. Sequence
kitakitaforall a. Monoid a => a -> a -> a
.Sequence
kitatakaforall a. Monoid a => a -> a -> a
.Sequence
k_pknforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu -> SequenceT sollu
g Sequence
tend2 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r3 (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3)
        forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
3 Sequence
tdgnt) forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
g (forall sollu. Matra -> SequenceT sollu -> SequenceT sollu
spread Matra
2 Sequence
tdgnt)
        forall a. Monoid a => a -> a -> a
. forall sollu.
SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
-> SequenceT sollu
trin (Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tamforall a. Monoid a => a -> a -> a
.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)
    ]
    -- karvai 2 + 7 * 2 = 16 = 4 avartanams
    -- 2 + 7 * 7
    --
    -- 4+4 + 7 7 7 7 7 7 (7 7) = 8 + 7*8 = 64 / 4*8 32 = 4
    -- 4 + 7 7 7 7 = 32
    -- 2 + 7 7 = 16
    -- 1 + 7 = 8
    --
    -- korvai:
    -- 7+7 + 3*6 + (2)+7+7 + 3*5 + (4)+7+7 + 3*4 = 93 = 23 1/4
    -- 5*3 + 5*2 = 25 = 118 = 29 2/4
    -- 5+5+5 + 10 + 6+6+6 + 10 + 7+7+7 = 74
    --      = 192 matra = 48 akshara = 6 avartanam
    -- each avartanam is 4*5 = 20
    --
    --
    -- use 4 + 8*7, 2 + 4*7, (1 + 77) * 4
    -- k k d d _ -> k k _d d
    where
    t1 :: Sequence
t1 = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
t1_solluforall a. Monoid a => a -> a -> a
.Sequence
tend
    t1_sollu :: Sequence
t1_sollu = Sequence
taforall a. Monoid a => a -> a -> a
.Sequence
ditforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kita
    -- t2 = g $ k_pkn . tend2
    tend :: Sequence
tend = Sequence
takaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    tend2 :: Sequence
tend2 = Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    k_pkn :: Sequence
k_pkn = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ Sequence
dit forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tadikita
    o_okn :: Sequence
o_okn = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ forall g sollu. Sequence g sollu -> Sequence g sollu
su forall a b. (a -> b) -> a -> b
$ Sequence
thomforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tadikita

    kitataka :: Sequence
kitataka = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
kttk
    kitakita :: Sequence
kitakita = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ Sequence
ktforall a. Monoid a => a -> a -> a
.Sequence
kt
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
t1_sollu, 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 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))
tforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tend, 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))
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))
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 a. Rest a => a
__)
        , (Sequence
k_pkn, 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))
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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p 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))
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))
o)
        , (Sequence
o_okn, forall {g}. Sequence g (Note (Stroke Stroke))
kStack =>
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))
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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
o 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))
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))
o)
        , (Sequence
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)
        , (Sequence
kitakita, 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))
t)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        , (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
od)
        ]
    kendang1 :: StrokeMaps
kendang1 = StrokeMap Stroke -> StrokeMaps
makeKendang1
        [ (Sequence
t1_sollu, 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 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 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))
p)
        , (Sequence
tend, 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 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))
pforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
        , (Sequence
k_pkn, forall {g}. Sequence g (Note (Stroke Stroke))
pforall 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))
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))
p 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))
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))
a)
        , (Sequence
o_okn, forall {g}. Sequence g (Note (Stroke Stroke))
aforall 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))
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))
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 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))
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))
a)
        , (Sequence
kitataka, 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))
a)
        , (Sequence
kitakita, 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))
pforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k)
        , (Sequence
din, forall {g}. Sequence g (Note (Stroke Stroke))
a)
        , (Sequence
tat, forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
tam, forall {g}. Sequence g (Note (Stroke Stroke))
a)
        ] where KendangTunggal.Strokes {Sequence g (Note (Stroke Stroke))
å :: Sequence g (Note (Stroke Stroke))
u :: Sequence g (Note (Stroke Stroke))
pk :: Sequence g (Note (Stroke Stroke))
t :: Sequence g (Note (Stroke Stroke))
o :: Sequence g (Note (Stroke Stroke))
a :: Sequence g (Note (Stroke Stroke))
k :: Sequence g (Note (Stroke Stroke))
p :: 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
..} = forall g. Strokes (Sequence g (Note (Stroke Stroke)))
KendangTunggal.notes

{-
  . convert to kanda chapu
    rupaka D pkkoD D N
           D D NND D N
           D d nnd d n
           d D NND D N
    rupaka chop off beat to get kandachapu
           D pkkoD N
           D D NND N
           D d nnd n
           d D NND N
-}

c_17_12_11 :: Korvai
c_17_12_11 :: Korvai
c_17_12_11 = Stack => Matra -> Matra -> Matra -> Korvai -> Korvai
date Matra
2017 Matra
12 Matra
11 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
adi StrokeMaps
mridangam
    [ 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 Sequence
theme
    ]
    where
    theme :: Sequence
theme = Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naka
        forall a. Monoid a => a -> a -> a
. Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
guforall a. Monoid a => a -> a -> a
.Sequence
guforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
na
        forall a. Monoid a => a -> a -> a
. Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tikuforall a. Monoid a => a -> a -> a
.Sequence
kitaforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kiforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
thom
        forall a. Monoid a => a -> a -> a
. forall sollu. SequenceT sollu -> SequenceT sollu
tri (Sequence
dinforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
taforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
kaforall a. Monoid a => a -> a -> a
.Sequence
dinga)
        forall a. Monoid a => a -> a -> a
. Sequence
tatforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
dit
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
kita, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
t)
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
naka, 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)
        , (Sequence
guforall a. Monoid a => a -> a -> a
.Sequence
guforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
n)
        , (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tiku, 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))
p)
        , (Sequence
kitaforall a. Monoid a => a -> a -> a
.Sequence
kiforall a. Monoid a => a -> a -> a
.Sequence
naforall a. Monoid a => a -> a -> a
.Sequence
thom, 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))
o)
        , (Sequence
dinforall a. Monoid a => a -> a -> a
.Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
dinga, 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))
oforall 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))
o)
        , (Sequence
tatforall a. Monoid a => a -> a -> a
.Sequence
dit, Sequence Group (Note (Stroke Stroke))
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
u)
        ]

speaking1 :: Korvai
speaking1 :: Korvai
speaking1 = Korvai -> Korvai
ganesh forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
exercise forall a b. (a -> b) -> a -> b
$ Tala -> StrokeMaps -> [Sequence] -> Korvai
korvaiS Tala
Tala.any_beats StrokeMaps
mridangam forall a b. (a -> b) -> a -> b
$
    -- 5s, 15 beats
    [ forall a. Monoid a => a -> a
r4 forall a b. (a -> b) -> a -> b
$ Sequence
t5forall a. Monoid a => a -> a -> a
.Sequence
t5 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
t5forall a. Monoid a => a -> a -> a
.Sequence
t5)
    , forall a. Monoid a => a -> a
r4 forall a b. (a -> b) -> a -> b
$ forall g sollu. Matra -> Sequence g sollu -> Sequence g sollu
nadai Matra
6 (forall {g} {a}. Rest (Sequence g a) => Sequence g a -> Sequence g a
in3 (forall {a}. a -> a
g Sequence
tdgntforall a. Monoid a => a -> a -> a
.forall {a}. a -> a
g Sequence
tdgnt)) forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
t5forall a. Monoid a => a -> a -> a
.Sequence
t5)

    -- 7s, 21 beats
    , forall a. Monoid a => a -> a
r4 forall a b. (a -> b) -> a -> b
$ Sequence
t7forall a. Monoid a => a -> a -> a
.Sequence
t7 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
t7forall a. Monoid a => a -> a -> a
.Sequence
t7)
    , forall a. Monoid a => a -> a
r4 forall a b. (a -> b) -> a -> b
$ forall g sollu. Matra -> Sequence g sollu -> Sequence g sollu
nadai Matra
6 (forall {g} {a}. Rest (Sequence g a) => Sequence g a -> Sequence g a
in3 (forall {a}. a -> a
g (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tdgnt) forall a. Monoid a => a -> a -> a
. forall {a}. a -> a
g (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tdgnt))) forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
t7forall a. Monoid a => a -> a -> a
.Sequence
t7)
    -- 9s, 27 beats
    , forall a. Monoid a => a -> a
r4 forall a b. (a -> b) -> a -> b
$ Sequence
t9forall a. Monoid a => a -> a -> a
.Sequence
t9 forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
t9forall a. Monoid a => a -> a -> a
.Sequence
t9)
    , forall a. Monoid a => a -> a
r4 forall a b. (a -> b) -> a -> b
$ forall g sollu. Matra -> Sequence g sollu -> Sequence g sollu
nadai Matra
6 (forall {g} {a}. Rest (Sequence g a) => Sequence g a -> Sequence g a
in3 (forall {a}. a -> a
g (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tikuforall a. Monoid a => a -> a -> a
.Sequence
tdgnt) forall a. Monoid a => a -> a -> a
. forall {a}. a -> a
g (Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tikuforall a. Monoid a => a -> a -> a
.Sequence
tdgnt)))
        forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
t9forall a. Monoid a => a -> a -> a
.Sequence
t9)
    ]
    where
    -- sequence t =
    --     [ r4 $ t.t . su (t.t)
    --     , r4 $ nadai 6 (group (in3 t) . group (in3' t)) . su (t.t)
    --     ]
    --     where
    --     in3' (a:b:cs) = [a, b] . __ . in3 cs
    --     in3' xs = xs

    g :: a -> a
g = forall {a}. a -> a
id -- should be group but then in3 doesn't work
    -- TODO I need a way to transform inside a group
    in3 :: Sequence g a -> Sequence g a
in3 Sequence g a
seq = case forall g a. Sequence g a -> [Note g a]
S.toList Sequence g a
seq of
        Note g a
a : Note g a
b : [Note g a]
cs -> forall g a. Note g a -> Sequence g a
S.singleton Note g a
a forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall g a. Note g a -> Sequence g a
S.singleton Note g a
b forall a. Monoid a => a -> a -> a
. Sequence g a -> Sequence g a
in3 (forall g a. [Note g a] -> Sequence g a
S.fromList [Note g a]
cs)
        [Note g a]
_ -> Sequence g a
seq
    t5 :: Sequence
t5 = forall sollu. SequenceT sollu -> SequenceT sollu
group Sequence
tdgnt
    t7 :: Sequence
t7 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tdgnt
    t9 :: Sequence
t9 = forall sollu. SequenceT sollu -> SequenceT sollu
group forall a b. (a -> b) -> a -> b
$ Sequence
takaforall a. Monoid a => a -> a -> a
.Sequence
tikuforall a. Monoid a => a -> a -> a
.Sequence
tdgnt
    mridangam :: StrokeMaps
mridangam = StrokeMap Stroke -> StrokeMaps
makeMridangam
        [ (Sequence
taka, forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        , (Sequence
tiku, forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
p)
        ]