tidal-1.10.0: bench/Memory/Tidal/Inputs.hs
{-# LANGUAGE OverloadedStrings #-}
module Tidal.Inputs where
import Sound.Tidal.Control (stut')
import Sound.Tidal.Core (cF, fromList, (#), (|*|))
import Sound.Tidal.Params
( coarse,
crush,
delay,
delaytime,
pF,
s,
speed,
up,
)
import Sound.Tidal.ParseBP ()
import Sound.Tidal.Pattern
( Arc,
ArcF (Arc),
ControlPattern,
Pattern,
Time,
)
import Sound.Tidal.UI (fix)
import Weigh
( Column (Allocated, Case, GCs, Live, Max),
Weigh,
setColumns,
)
columns :: Weigh ()
columns = setColumns [Case, Allocated, Max, Live, GCs]
{- Pattern inputs -}
xs3 :: [Time]
xs3 = [1 .. 10000]
xs4 :: [Time]
xs4 = [1 .. 100000]
xs5 :: [Time]
xs5 = [1 .. 1000000]
xs6 :: [Time]
xs6 = [1 .. 10000000]
xsA :: [Time]
xsA = [500000 .. 1500000]
catPattSmall :: [Pattern Time]
catPattSmall = pure <$> xs3
catPattMed :: [Pattern Time]
catPattMed = pure <$> xs4
catPattMedB :: [Pattern Time]
catPattMedB = pure <$> xs5
catPattBig :: [Pattern Time]
catPattBig = pure <$> xs6
timeCatMed :: [(Time, Pattern Time)]
timeCatMed = zip xs5 catPattMed
timeCatBig :: [(Time, Pattern Time)]
timeCatBig = zip xs6 catPattBig
appendBig :: [Pattern Time]
appendBig = pure <$> xsA
pattApp1 :: Pattern [Time]
pattApp1 = sequence catPattBig
pattApp2 :: Pattern [Time]
pattApp2 = sequence appendBig
{- Arc Inputs -}
arcFunc :: Arc -> Arc
arcFunc (Arc st en) = Arc (st * 2) (en * 4)
wqaMed :: Pattern Time
wqaMed = fromList xs5
wqaBig :: Pattern Time
wqaBig = fromList xs6
{- fix inputs -}
fixArg1 :: ControlPattern
fixArg1 = pF "cc64" 1
fixArg2 :: ControlPattern
fixArg2 =
fix (# crush 4) (pF "cc65" 1) $
fix (stut' 4 (0.125 / 4) (+ up "1")) (pF "cc66" 1) $
fix (|*| speed "-1") (pF "cc67" 1) $
fix ((# delaytime 0.125) . (# delay 0.5)) (pF "cc68" 1) $
fix (# coarse 12) (pF "cc69" 1) $
s "[808bd:1(3,8), dr(7,8)]"
# pF "cc64" (cF 0 "64")
# pF "cc65" (cF 0 "65")
# pF "cc66" (cF 0 "66")
# pF "cc67" (cF 0 "67")
# pF "cc68" (cF 0 "68")
# pF "cc69" (cF 0 "69")
{- Euclid inputs -}
ecA1 :: [Pattern Int]
ecA1 = [1, 1000000]
ecA2 :: Pattern String
ecA2 = "x"