-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Pattern language for improvised music -- -- Tidal is a language for live coding pattern, embedded in the Haskell -- language. @package tidal @version 0.2.2 module Tempo data Tempo Tempo :: UTCTime -> Double -> Double -> Tempo at :: Tempo -> UTCTime beat :: Tempo -> Double bps :: Tempo -> Double type Client = Sink Hybi00 type ClientState = [Client] getClockIp :: IO (String) readTempo :: String -> Tempo logicalTime :: Tempo -> Double -> Double clientApp :: MVar Tempo -> MVar Double -> WebSockets Hybi10 () sendBps :: TextProtocol p => Sink p -> MVar Double -> IO () connectClient :: String -> MVar Tempo -> MVar Double -> IO () runClient :: IO ((MVar Tempo, MVar Double)) clocked :: (Tempo -> Int -> IO ()) -> IO () updateTempo :: MVar Tempo -> Maybe Double -> IO () addClient :: Client -> ClientState -> ClientState removeClient :: Client -> ClientState -> ClientState broadcast :: Text -> ClientState -> IO () startServer :: IO (ThreadId) serverApp :: MVar Tempo -> MVar ClientState -> Request -> WebSockets Hybi00 () serverLoop :: Protocol p => MVar Tempo -> MVar ClientState -> Client -> WebSockets p () instance Show Tempo module Time type Time = Rational type Arc = (Time, Time) type Event a = (Arc, a) sam :: Time -> Time nextSam :: Time -> Time cyclePos :: Time -> Time isIn :: Arc -> Time -> Bool arcCycles :: Arc -> [Arc] subArc :: Arc -> Arc -> Maybe Arc mapArc :: (Time -> Time) -> Arc -> Arc mirrorArc :: Arc -> Arc eventStart :: Event a -> Time module Pattern data Pattern a Pattern :: (Arc -> [Event a]) -> Pattern a arc :: Pattern a -> Arc -> [Event a] atom :: a -> Pattern a silence :: Pattern a mapQueryArc :: (Arc -> Arc) -> Pattern a -> Pattern a mapQueryTime :: (Time -> Time) -> Pattern a -> Pattern a mapResultArc :: (Arc -> Arc) -> Pattern a -> Pattern a mapResultTime :: (Time -> Time) -> Pattern a -> Pattern a overlay :: Pattern a -> Pattern a -> Pattern a (>+<) :: Pattern a -> Pattern a -> Pattern a stack :: [Pattern a] -> Pattern a cat :: [Pattern b] -> Pattern b append :: Pattern a -> Pattern a -> Pattern a slowcat :: [Pattern a] -> Pattern a listToPat :: [a] -> Pattern a run :: (Enum a, Num a) => a -> Pattern a maybeListToPat :: [Maybe a] -> Pattern a density :: Time -> Pattern a -> Pattern a slow :: Time -> Pattern a -> Pattern a (<~) :: Time -> Pattern a -> Pattern a (~>) :: Time -> Pattern a -> Pattern a rev :: Pattern a -> Pattern a when :: (Int -> Bool) -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a palindrome :: Pattern a -> Pattern a sig :: (Time -> a) -> Pattern a sinewave :: Pattern Double sinewave1 :: Pattern Double sinePhase1 :: Double -> Pattern Double triwave1 :: Pattern Double triwave :: Pattern Double squarewave1 :: Pattern Double squarewave :: Pattern Double filterOffsets :: Pattern a -> Pattern a seqToRelOnsets :: Arc -> Pattern a -> [(Double, a)] every :: Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a segment :: Pattern a -> Pattern [a] segment' :: [Event a] -> [Event a] split :: Time -> [Event a] -> [Event a] points :: [Event a] -> [Time] groupByTime :: [Event a] -> [Event [a]] instance Monad Pattern instance Monoid (Pattern a) instance Applicative Pattern instance Functor Pattern instance Show a => Show (Pattern a) module Parse class Parseable a p :: Parseable a => String -> Pattern a type ColourD = Colour Double lexer :: GenTokenParser String u Identity braces :: ParsecT String u Identity a -> ParsecT String u Identity a brackets :: ParsecT String u Identity a -> ParsecT String u Identity a parens :: ParsecT String u Identity a -> ParsecT String u Identity a angles :: ParsecT String u Identity a -> ParsecT String u Identity a symbol :: String -> ParsecT String u Identity String natural :: ParsecT String u Identity Integer float :: ParsecT String u Identity Double naturalOrFloat :: ParsecT String u Identity (Either Integer Double) data Sign Positive :: Sign Negative :: Sign applySign :: Num a => Sign -> a -> a sign :: Parser Sign intOrFloat :: Parser (Either Integer Double) r :: Parseable a => String -> Pattern a -> IO (Pattern a) parseRhythm :: Parser (Pattern a) -> String -> (Pattern a) pRhythm :: Parser (Pattern a) -> GenParser Char () (Pattern a) pSequence :: Parser (Pattern a) -> GenParser Char () (Pattern a) pPart :: Parser (Pattern a) -> Parser (Pattern a) pPoly :: Parser (Pattern a) -> Parser (Pattern a) pString :: Parser (String) pVocable :: Parser (Pattern String) pDouble :: Parser (Pattern Double) pBool :: Parser (Pattern Bool) pInt :: Parser (Pattern Int) pColour :: Parser (Pattern ColourD) pMult :: Parser (Rational) pRatio :: Parser (Rational) pRational :: Parser (Pattern Rational) pDensity :: Parser (Rational) instance [incoherent] Parseable a => IsString (Pattern a) instance [incoherent] Parseable ColourD instance [incoherent] Parseable Rational instance [incoherent] Parseable Int instance [incoherent] Parseable Bool instance [incoherent] Parseable String instance [incoherent] Parseable Double module Stream data Param S :: String -> Maybe String -> Param name :: Param -> String sDefault :: Param -> Maybe String F :: String -> Maybe Double -> Param name :: Param -> String fDefault :: Param -> Maybe Double I :: String -> Maybe Int -> Param name :: Param -> String iDefault :: Param -> Maybe Int data OscShape OscShape :: String -> [Param] -> Bool -> OscShape path :: OscShape -> String params :: OscShape -> [Param] timestamp :: OscShape -> Bool type OscMap = Map Param (Maybe Datum) type OscPattern = Pattern OscMap defaultDatum :: Param -> Maybe Datum hasDefault :: Param -> Bool defaulted :: OscShape -> [Param] defaultMap :: OscShape -> OscMap required :: OscShape -> [Param] hasRequired :: OscShape -> OscMap -> Bool isSubset :: Eq a => [a] -> [a] -> Bool tpb :: Num a => a toMessage :: OscShape -> Tempo -> Int -> (Double, OscMap) -> Maybe Bundle applyShape' :: OscShape -> OscMap -> Maybe OscMap start :: String -> Int -> OscShape -> IO (MVar (OscPattern)) stream :: String -> Int -> OscShape -> IO (OscPattern -> IO ()) streamcallback :: (OscPattern -> IO ()) -> String -> Int -> OscShape -> IO (OscPattern -> IO ()) onTick :: UDP -> OscShape -> MVar (OscPattern) -> Tempo -> Int -> IO () make :: (a -> Datum) -> OscShape -> String -> Pattern a -> OscPattern makeS :: OscShape -> String -> Pattern String -> OscPattern makeF :: OscShape -> String -> Pattern Double -> OscPattern makeI :: OscShape -> String -> Pattern Int -> OscPattern param :: OscShape -> String -> Param merge :: OscPattern -> OscPattern -> OscPattern (|+|) :: OscPattern -> OscPattern -> OscPattern weave :: Rational -> OscPattern -> [OscPattern] -> OscPattern instance Show Param instance Ord Param instance Eq Param module Dirt dirt :: OscShape kriole :: OscShape dirtstream :: t -> IO (OscPattern -> IO ()) kstream :: t -> IO (OscPattern -> IO ()) dirtToColour :: OscPattern -> Pattern ColourD datumToColour :: Datum -> ColourD stringToColour :: String -> ColourD sound :: Pattern String -> OscPattern offset :: Pattern Double -> OscPattern begin :: Pattern Double -> OscPattern end :: Pattern Double -> OscPattern speed :: Pattern Double -> OscPattern pan :: Pattern Double -> OscPattern velocity :: Pattern Double -> OscPattern vowel :: Pattern String -> OscPattern cutoff :: Pattern Double -> OscPattern resonance :: Pattern Double -> OscPattern accellerate :: Pattern Double -> OscPattern shape :: Pattern Double -> OscPattern kdur :: Pattern Double -> OscPattern kstart :: Pattern Double -> OscPattern kstop :: Pattern Double -> OscPattern pick :: String -> Int -> String striate :: Int -> OscPattern -> OscPattern striate' :: Int -> Double -> OscPattern -> OscPattern striateO :: OscPattern -> Int -> Double -> OscPattern metronome :: Pattern OscMap interlace :: OscPattern -> OscPattern -> OscPattern module Strategies echo :: Time -> Pattern a -> Pattern a double :: (Pattern a -> Pattern a) -> Pattern a -> Pattern a smash :: Int -> [Time] -> Pattern OscMap -> Pattern OscMap brak :: Pattern a -> Pattern a samples :: Applicative f => f String -> f Int -> f String spread :: (a -> t -> Pattern b) -> [a] -> t -> Pattern b spread' :: (a -> Pattern b -> Pattern c) -> Pattern a -> Pattern b -> Pattern c scrumple :: Time -> Pattern a -> Pattern a -> Pattern a