1 {-# LANGUAGE ScopedTypeVariables #-}
5 import Control.Concurrent
6 import Data.ReactiveValue
9 import RCMA.Auxiliary.Concurrent
10 import RCMA.Layer.Board
11 import RCMA.Layer.Layer
13 import RCMA.Translator.Jack
14 import RCMA.Translator.Message
15 import RCMA.Translator.Translator
21 makeBoard [((0,0), mkCell (ChDir False na1 N)),
22 ((0,1), mkCell (ChDir False na1 SE)),
23 ((1,1), mkCell (Split na1)),
24 ((1,-1), mkCell (Split na1)),
25 ((-1,0), mkCell (ChDir False na2 NE))]
30 naOrn = Ornaments Nothing [] NoSlide
36 naOrn = Ornaments Nothing [(10, MIDICVRnd)] SlideUp
42 naOrn = Ornaments Nothing [] NoSlide
49 tempoRV :: ReactiveFieldReadWrite IO Tempo
50 tempoRV = ReactiveFieldReadWrite (\_ -> return ()) (return 96) (\_ -> return ())
54 layerRV <- getDefaultLayerRV
55 boardInRV <- boardSetup board tempoRV layerRV
56 jackT <- forkChild $ jackSetup (liftR2 (\t n -> (t, 0, n)) tempoRV boardInRV)