packages feed

reactive-balsa 0.3 → 0.4

raw patch · 5 files changed

+30/−27 lines, 5 filesdep +non-emptydep +reactive-banana-bunchdep −reactive-bananadep ~reactive-midyim

Dependencies added: non-empty, reactive-banana-bunch

Dependencies removed: reactive-banana

Dependency ranges changed: reactive-midyim

Files

reactive-balsa.cabal view
@@ -1,5 +1,5 @@ Name:             reactive-balsa-Version:          0.3+Version:          0.4 License:          BSD3 License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>@@ -45,15 +45,15 @@ Source-Repository this   type:     darcs   location: http://hub.darcs.net/thielema/reactive-balsa/-  tag:      0.3+  tag:      0.4  Flag splitBase   description: Choose the new smaller, split-up base package.  Library   Build-Depends:-    reactive-midyim >=0.3 && <0.4,-    reactive-banana >=1.1 && <1.2,+    reactive-midyim >=0.4 && <0.5,+    reactive-banana-bunch >=1.0 && <1.1,     midi-alsa >=0.2 && <0.3,     midi >=0.2 && <0.3,     alsa-seq >=0.6 && <0.7,@@ -62,6 +62,7 @@     non-negative >=0.1 && <0.2,     data-accessor-transformers >=0.2.1 && <0.3,     data-accessor >=0.2.1 && <0.3,+    non-empty >=0.2.1 && <0.4,     utility-ht >=0.0.8 && <0.1,     containers >=0.2 && <0.6,     transformers >=0.2 && <0.6,
src/Reactive/Banana/ALSA/Common.hs view
@@ -34,14 +34,15 @@  import Data.Accessor.Basic ((^.), (^=), ) -import Control.Functor.HT (void, )-import Data.Maybe (maybeToList, )-import Data.List (intercalate, )- import qualified Control.Monad.Trans.Reader as Reader import Control.Monad.Trans.Reader (ReaderT, )+import Control.Functor.HT (void, ) +import qualified Data.NonEmpty as NonEmpty import qualified Data.Monoid as Mn+import Data.Foldable (Foldable, foldMap, )+import Data.Maybe (maybeToList, )+import Data.List (intercalate, )  import Prelude hiding (init, filter, reverse, ) @@ -232,6 +233,9 @@  instance Events ev => Events [ev] where    flattenEvents = concatMap flattenEvents++instance (Foldable f, Events ev) => Events (NonEmpty.T f ev) where+   flattenEvents = foldMap flattenEvents  instance (Events ev0, Events ev1) => Events (ev0,ev1) where    flattenEvents (ev0,ev1) = flattenEvents ev0 ++ flattenEvents ev1
src/Reactive/Banana/ALSA/Example.hs view
@@ -19,8 +19,8 @@  import qualified Reactive.Banana.MIDI.Utility as RBU -import qualified Reactive.Banana.Combinators as RB-import Reactive.Banana.Combinators ((<@>), )+import qualified Reactive.Banana.Bunch.Combinators as RB+import Reactive.Banana.Bunch.Combinators ((<@>), )  import qualified Sound.MIDI.ALSA.Check as Check import qualified Sound.MIDI.ALSA.Query as Query ()@@ -31,7 +31,7 @@ import qualified System.Random as Random  import Control.Monad.Trans.Reader (ReaderT, )-import Control.Monad (guard, liftM2, liftM3, join, foldM, (<=<), )+import Control.Monad (guard, liftM2, liftM3, join, ) import Control.Applicative (pure, (<*>), (<$>), ) import Data.Tuple.HT (mapFst, ) import Data.Maybe (mapMaybe, )@@ -93,14 +93,12 @@ latch = Seq.runM (Seq.bypassM Note.maybeBndExt (fmap fst . Process.pressed KeySet.latch)) groupLatch = Seq.runM (Seq.bypassM Note.maybeBndExt (fmap fst . Process.pressed KeySet.groupLatch)) delay = Seq.runM $ \evs -> do dt <- ticks 0.2; return $ Process.delay dt evs-delayAdd = Seq.runM $ \evs -> do dt <- ticks 0.2; Process.delayAdd dt evs+delayAdd = Seq.runM $ \evs -> do dt <- ticks 0.2; return $ Process.delayAdd dt evs delayTranspose = Seq.runM $ \evs -> do    let proc p dt = do           tk <- ticks dt-          return $-             Process.delay tk $-             RBU.mapMaybe (stranspose p) evs-   foldM Process.unionM (fmap now evs) <=< sequence $+          return $ Process.delay tk $ RBU.mapMaybe (stranspose p) evs+   fmap (foldl RB.union (fmap now evs)) $ sequence $       proc  4 0.2 :       proc  7 0.4 :       proc 12 0.6 :@@ -191,7 +189,7 @@ -}  split = Seq.run $-   uncurry (RBU.union "split")+   uncurry RB.union    .    mapFst       (RBU.mapMaybe (stranspose 12)@@ -233,7 +231,7 @@ --   Seq.cyclePrograms (map program [13..17]) times evs    defer <- Time.ticksFromSeconds $ time 0.1    pgms <- Process.cycleProgramsDefer defer (map program [13..17]) times evs-   Process.unionM (RB.filterJust pgms) evs+   return $ RB.union (RB.filterJust pgms) evs  sweep =    Seq.runM $ \evs ->@@ -245,7 +243,7 @@           depth <- Process.controllerRaw c depthCC 64 evs           center <- Process.controllerRaw c centerCC 64 evs           speed <- Process.controllerExponential c speedCC 0.3 (0.1, 1) evs-          RBU.union "sweep"+          RB.union                (RB.filterE                   (not . Common.checkController                      (flip elem [centerCC, depthCC, speedCC])) evs) .@@ -277,5 +275,5 @@    g -> ReaderT Seq.Handle IO () trainer g =    Seq.runTimesM $ \ times evs ->-      Process.unionM (fmap singletonBundle evs) =<<+      RB.union (fmap singletonBundle evs) <$>       Process.trainer (channel 0) (time 0.5) (time 0.3) (Training.all g) times evs
src/Reactive/Banana/ALSA/Private.hs view
@@ -4,8 +4,8 @@ import qualified Reactive.Banana.MIDI.Process as Process import qualified Reactive.Banana.MIDI.Time as Time -import qualified Reactive.Banana.Combinators as RB-import qualified Reactive.Banana.Frameworks as RBF+import qualified Reactive.Banana.Bunch.Combinators as RB+import qualified Reactive.Banana.Bunch.Frameworks as RBF  import qualified Sound.ALSA.Sequencer as SndSeq import qualified Sound.ALSA.Sequencer.Client as Client
src/Reactive/Banana/ALSA/Sequencer.hs view
@@ -15,9 +15,9 @@ import qualified Reactive.Banana.MIDI.Utility as RBU import Reactive.Banana.MIDI.Common (Future(Future), ) -import qualified Reactive.Banana.Combinators as RB-import qualified Reactive.Banana.Frameworks as RBF-import Reactive.Banana.Combinators ((<@>), )+import qualified Reactive.Banana.Bunch.Combinators as RB+import qualified Reactive.Banana.Bunch.Frameworks as RBF+import Reactive.Banana.Bunch.Combinators ((<@>), )  import qualified Sound.ALSA.Sequencer.Event.RemoveMonad as Remove import qualified Sound.ALSA.Sequencer.Event as Event@@ -28,7 +28,7 @@ import qualified Control.Monad.Trans.Reader as MR import Control.Monad.Trans.Reader (ReaderT(ReaderT), ) import Control.Monad (liftM, forever, )-import Control.Applicative (pure, (<*>), )+import Control.Applicative ((<$>), ) import Control.Functor.HT (void, ) import Data.Monoid (mempty, ) @@ -82,7 +82,7 @@               . fmap Event.body             =<< RBF.fromAddHandler addEventHandler          RBF.reactimate $-            pure (outputEvents h) <*> time <@> evs)+            outputEvents h <$> time <@> RB.collect evs)       forever $ do          ev <- Event.input (sequ h)          runTimeHandler $ AlsaTime.fromEvent ev