AlgoRhythm-0.1.0.0: Algorithmic music composition

Safe HaskellSafe
LanguageHaskell2010

Generate.Generate

Synopsis

Documentation

type Selector s a = s -> [(Weight, a)] -> IO (a, s) Source #

data Accessor st s a Source #

Constructors

Accessor 

Fields

type Constraint a = a -> Bool Source #

State to be kept during generation

data Entry s a Source #

Constructors

Entry 

Fields

type MusicGenerator s a = GenericMusicGenerator GenState s a Source #

A Music generator is simply state monad wrapped around IO.

type GenericMusicGenerator st s a = StateT (st s) IO a Source #

putEntry :: Accessor st s a -> Entry s a -> GenericMusicGenerator st s () Source #

(>@) :: Accessor st s a -> Entry s a -> GenericMusicGenerator st s () Source #

(>?) :: Accessor st s a -> Selector s a -> GenericMusicGenerator st s () Source #

putOptions :: Accessor st s a -> [(Weight, a)] -> GenericMusicGenerator st s () Source #

(>+) :: Accessor st s a -> [(Weight, a)] -> GenericMusicGenerator st s () Source #

(.#.) :: Applicative m => Int -> m a -> m [a] Source #

gselect :: (st s -> s) -> (s -> GenericMusicGenerator st s ()) -> Accessor st s a -> GenericMusicGenerator st s a Source #

constrain :: Entry s a -> [(Weight, a)] Source #

genNote :: MusicGenerator s Melody Source #

Generate a note within the currently applied constraints.

runGenerator' :: st s -> GenericMusicGenerator st s a -> IO a Source #

Runs a generator on the provided state

modified :: (st s -> st s) -> GenericMusicGenerator st s a -> GenericMusicGenerator st s a Source #