packages feed

music-score-1.2: test/Main.hs

module Main where

import Music.Score

{-
fj1 = sc $ melody [c,d] |> melody [eb,d]^/2 |> c
fj2 = sc $ melody [eb,f] |> g^*2
fj3 = sc $ g^*(3/4) |> ab^*(1/4) |> melody [g,f,eb,d] ^/2 |> c
fj4 = c |> g_ |> c^*2

fj  = rep 2 fj1 |> rep 2 fj2 |> rep 2 fj3 |> rep 2 fj4

fj' = mempty
    <> setVoices "Violin I"     (rep 10 fj) 
    <> setVoices "Violin II"    (delay 8  $ (rep 10 fj)^*(2/3)) 
    <> setVoices "Viola"        (delay 16 $ (rep 10 fj)^*(4/5)) 
    <> setVoices "Violoncello"  (delay 24 $ (rep 10 fj)^*(4/7))

-- classic version...
fj'' = mempty
    <> setVoices "Violin I"     (rep 10 fj) 
    <> setVoices "Violin II"    (delay 8  $ (rep 10 fj)) 
    <> setVoices "Viola"        (delay 16 $ (rep 10 fj)) 
    <> setVoices "Violoncello"  (delay 24 $ (rep 10 fj))

-- rep 0 x = mempty
-- rep n x = x |> rep (n-1) x
grp n p = rep n p^/n

-- open$ (rep 3 $ grp 2 c |> grp 4 db |> grp 4 c  |> (rest^*3))

testArtDyn = mempty
    <> v (0+1) (rep 80 t^*(3*1))
    <> v (0+2) (rep 80 t^*(4*1)) 
    <> v (0+3) (rep 80 t^*(5*1))
    <> v (0+4) (rep 80 t^*(7*1))
    <> v (4+1) (rep 20 s^*(3*2))
    <> v (4+2) (rep 20 s^*(4*2)) 
    <> v (4+3) (rep 20 s^*(5*2))
    <> v (4+4) (rep 20 s^*(7*2))
    where
        v x = setVoices (VoiceName $ "Violin I." ++ show x)
        s, t :: Sc Double
        s = mempty
            |> (fmap (setLevel (-2.5) . setBeginSlur True . setBeginCresc True) c) 
            |> d 
            |> f 
            |> (fmap (setEndSlur True . setLevel (0.5) . setEndCresc True   ) e)
        t = mempty
            |> (fmap (setLevel (-2.5) . setBeginSlur True . setBeginCresc True) g) 
            |> a 
            |> bb 
            |> (fmap (setEndSlur True . setLevel (0.5) . setEndCresc True   ) a)

showScore :: Score Double -> String
showScore = show

play = playMidiIO . (^* (60/100)) . sc
open = openXml . (^* (1/4)) . sc

rep 0 x = mempty
rep n x = x |> rep (n-1) x
                              -}
                              
main = do
    putStrLn "Testing Music.Score"