-- Copyright 2018 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

module Solkattu.Score.Mridangam2015 where
import Prelude hiding ((.), repeat)

import qualified Solkattu.Tala as Tala

import Solkattu.Dsl.Mridangam


c_1 :: Korvai
c_1 :: Korvai
c_1 = Korvai -> Korvai
akash forall a b. (a -> b) -> a -> b
$ Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2015 Int
1 Int
1 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
tekha forall a b. (a -> b) -> a -> b
$
    Text -> Korvai -> Korvai
comment Text
"rupak hindustani = 2 * misra chapu" forall a b. (a -> b) -> a -> b
$
    Tala -> [Sequence] -> Korvai
korvaiS Tala
Tala.misra_chapu
    [ forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ forall {g}. Sequence g (Note (Stroke Stroke))
iforall 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))
iforall 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))
nforall 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))
nforall 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))
nforall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__
    , forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
iforall 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 -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
iforall 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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&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))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k
    , forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ 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))
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  forall 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))
oStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&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))
odforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
kforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k
    , forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ Sequence
onforall a. Monoid a => a -> a -> a
.forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
ktforall 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)forall a. Monoid a => a -> a -> a
.Sequence
onforall a. Monoid a => a -> a -> a
.Sequence
onforall a. Monoid a => a -> a -> a
.forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
ktforall 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)forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
ktforall 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)forall a. Monoid a => a -> a -> a
.Sequence
onforall a. Monoid a => a -> a -> a
.Sequence
onforall a. Monoid a => a -> a -> a
.forall g sollu. Sequence g sollu -> Sequence g sollu
su (Sequence
ktforall 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)
    ]

c_2 :: Korvai
c_2 :: Korvai
c_2 = Korvai -> Korvai
akash forall a b. (a -> b) -> a -> b
$ Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2015 Int
1 Int
1 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
tekha forall a b. (a -> b) -> a -> b
$
    Tala -> [Sequence] -> Korvai
korvaiS Tala
adi forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6 forall b c a. (b -> c) -> (a -> b) -> a -> c
 forall g sollu. Sequence g sollu -> Sequence g sollu
sd)
    [ forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ forall a. Monoid a => a -> a
r2 (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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
dforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
k) Stack => Sequence -> Sequence -> Sequence
& (forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__ forall a. Monoid a => a -> a -> a
. forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
    , forall a. Monoid a => a -> a
r3 (Sequence
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
ktpkforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
ktok) forall a. Monoid a => a -> a -> a
. Sequence
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.Sequence
onforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&forall {g}. Sequence g (Note (Stroke Stroke))
nforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    ]
    where
    ktpk :: Sequence g (Note (Stroke Stroke))
ktpk = forall g sollu. Sequence g sollu -> Sequence g sollu
su (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)
    ktok :: Sequence g (Note (Stroke Stroke))
ktok = forall g sollu. Sequence g sollu -> Sequence g sollu
su (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)

c_3 :: Korvai
c_3 :: Korvai
c_3 = Korvai -> Korvai
akash forall a b. (a -> b) -> a -> b
$ Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2015 Int
1 Int
1 forall a b. (a -> b) -> a -> b
$ Korvai -> Korvai
tekha forall a b. (a -> b) -> a -> b
$ Text -> Korvai -> Korvai
comment Text
"14 beats" forall a b. (a -> b) -> a -> b
$
    Tala -> [Sequence] -> Korvai
korvaiS Tala
Tala.misra_chapu
    [ forall g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ Sequence
onforall 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
.Sequence
onforall a. Monoid a => a -> a -> a
.Sequence
onforall 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))
nforall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pStack => Sequence -> Sequence -> Sequence
&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
.Sequence
onforall a. Monoid a => a -> a -> a
.Sequence
onforall 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 g sollu. Sequence g sollu -> Sequence g sollu
sd forall a b. (a -> b) -> a -> b
$ forall a. Monoid a => a -> a
r2 (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))
lforall 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))
lforall 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))
l) Stack => Sequence -> Sequence -> Sequence
& (forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
pforall a. Monoid a => a -> a -> a
.forall sollu. SequenceT sollu
__3forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__forall a. Monoid a => a -> a -> a
.forall {g}. Sequence g (Note (Stroke Stroke))
oforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__)
    , forall sollu. Stack => Duration -> SequenceT sollu
sarvaD_ Duration
5 forall a. Monoid a => a -> a -> a
. forall a. Monoid a => a -> a
r2 (forall g sollu. Int -> Sequence g sollu -> Sequence g sollu
nadai Int
6 (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
.Sequence
ktforall a. Monoid a => a -> a -> a
.Sequence
pk))
    ]

akash1 :: Korvai
akash1 :: Korvai
akash1 = Korvai -> Korvai
akash forall a b. (a -> b) -> a -> b
$ Stack => Int -> Int -> Int -> Korvai -> Korvai
date Int
2015 Int
1 Int
1 forall a b. (a -> b) -> a -> b
$ Tala -> [Sequence] -> Korvai
korvaiS Tala
adi
    [ forall a. Monoid a => a -> a
r2 forall a b. (a -> b) -> a -> b
$ Sequence
rh Stack => Sequence -> Sequence -> Sequence
& Sequence
"o__o_oo_" forall a. Monoid a => a -> a -> a
. Sequence
rh Stack => Sequence -> Sequence -> Sequence
& Sequence
"p__p_p__"
    , Sequence
rh Stack => Sequence -> Sequence -> Sequence
& Sequence
"o__o_oo_" forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
ktpk forall a. Monoid a => a -> a -> a
. Sequence
"ndldnl" Stack => Sequence -> Sequence -> Sequence
& Sequence
"_p_p"
        forall a. Monoid a => a -> a -> a
. Sequence
fill forall a. Monoid a => a -> a -> a
. forall g sollu. Sequence g sollu -> Sequence g sollu
su Sequence
ktpk forall a. Monoid a => a -> a -> a
. Sequence
"ndldnl" Stack => Sequence -> Sequence -> Sequence
& Sequence
"_p_p"
    ]
    where
    fill :: Sequence
fill = forall sollu. SequenceT sollu -> SequenceT sollu
g forall a b. (a -> b) -> a -> b
$ 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))
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))
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))
odforall a. Monoid a => a -> a -> a
.forall a. Rest a => a
__
    rh :: Sequence
rh = Sequence
"dlndldnl"

akash :: Korvai -> Korvai
akash :: Korvai -> Korvai
akash = Text -> Korvai -> Korvai
source Text
"akash"

tekha :: Korvai -> Korvai
tekha :: Korvai -> Korvai
tekha = Text -> Korvai -> Korvai
withType Text
"tekha"