tidal 1.0.12 → 1.0.13
raw patch · 4 files changed
+24/−15 lines, 4 files
Files
- CHANGELOG.md +5/−1
- src/Sound/Tidal/EspGrid.hs +17/−12
- src/Sound/Tidal/Version.hs +1/−1
- tidal.cabal +1/−1
CHANGELOG.md view
@@ -1,9 +1,13 @@ # TidalCycles log of changes +## 1.0.13 - 🐝⌛️🦋 #2++* Simplify espgrid support - @yaxu+ ## 1.0.12 - 🐝⌛️🦋 * Fix ESPGrid support - @dktr0-* Add 'snowbal'' function - @XiNNiW+* Add 'snowball' function - @XiNNiW ## 1.0.11 - Cros Bríde
src/Sound/Tidal/EspGrid.hs view
@@ -1,12 +1,14 @@ {-# LANGUAGE ScopedTypeVariables #-} -module Sound.Tidal.EspGrid (tidalEspGridLink,cpsEsp) where +module Sound.Tidal.EspGrid (tidalEspGridLink,cpsEsp,espgrid) where import Control.Concurrent.MVar import Control.Concurrent (forkIO,threadDelay) import Control.Monad (forever) +import Control.Exception import Sound.OSC.FD import Sound.Tidal.Tempo +import Sound.Tidal.Stream (Stream, sTempoMV) parseEspTempo :: [Datum] -> Maybe (Tempo -> Tempo) parseEspTempo d = do @@ -25,22 +27,25 @@ changeTempo :: MVar Tempo -> Packet -> IO () changeTempo t (Packet_Message msg) = - case parseEspTempo (messageDatum msg) of - Just f -> do - t0 <- takeMVar t - let t1 = f t0 - putMVar t t1 - Nothing -> putStrLn "Warning: Unable to parse message (likely from EspGrid) as Tempo" + case parseEspTempo (messageDatum msg) of + Just f -> modifyMVarMasked_ t $ \t0 -> return (f t0) + Nothing -> putStrLn "Warning: Unable to parse message from EspGrid as Tempo" changeTempo _ _ = putStrLn "Serious error: Can only process Packet_Message" tidalEspGridLink :: MVar Tempo -> IO () -tidalEspGridLink t = do +tidalEspGridLink _ = putStrLn "Function no longer supported, please use 'espgrid tidal' to connect to ESPgrid instead." + +espgrid :: Stream -> IO () +espgrid st = do + let t = sTempoMV st socket <- openUDP "127.0.0.1" 5510 _ <- forkIO $ forever $ do - _ <- sendMessage socket $ Message "/esp/tempo/q" [] - response <- waitAddress socket "/esp/tempo/r" - Sound.Tidal.EspGrid.changeTempo t response - threadDelay 200000 + (do + sendMessage socket $ Message "/esp/tempo/q" [] + response <- waitAddress socket "/esp/tempo/r" + Sound.Tidal.EspGrid.changeTempo t response + threadDelay 200000) + `catch` (\e -> putStrLn $ "exception caught in tidalEspGridLink: " ++ show (e :: SomeException)) return () cpsEsp :: Real t => t -> IO ()
src/Sound/Tidal/Version.hs view
@@ -1,4 +1,4 @@ module Sound.Tidal.Version where tidal_version :: String-tidal_version = "1.0.12"+tidal_version = "1.0.13"
tidal.cabal view
@@ -1,5 +1,5 @@ name: tidal-version: 1.0.12+version: 1.0.13 synopsis: Pattern language for improvised music -- description: homepage: http://tidalcycles.org/