Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- type Weight = Double
- type Selector s a = s -> [(Weight, a)] -> IO (a, s)
- data Accessor st s a = Accessor {}
- type Constraint a = a -> Bool
- data Entry s a = Entry {
- values :: [(Weight, a)]
- constraints :: [Constraint a]
- selector :: Selector s a
- data GenState s = GenState {}
- pitchClass :: Accessor GenState s PitchClass
- octave :: Accessor GenState s Octave
- duration :: Accessor GenState s Duration
- interval :: Accessor GenState s Interval
- dynamic :: Accessor GenState s Dynamic
- articulation :: Accessor GenState s Articulation
- type MusicGenerator s a = GenericMusicGenerator GenState s a
- type GenericMusicGenerator st s a = StateT (st s) IO a
- getEntry :: Accessor st s a -> GenericMusicGenerator st s (Entry s a)
- (?@) :: Accessor st s a -> GenericMusicGenerator st s (Entry s a)
- putEntry :: Accessor st s a -> Entry s a -> GenericMusicGenerator st s ()
- (>@) :: Accessor st s a -> Entry s a -> GenericMusicGenerator st s ()
- putSelector :: Accessor st s a -> Selector s a -> GenericMusicGenerator st s ()
- (>?) :: Accessor st s a -> Selector s a -> GenericMusicGenerator st s ()
- putOptions :: Accessor st s a -> [(Weight, a)] -> GenericMusicGenerator st s ()
- getOptions :: Accessor st s a -> GenericMusicGenerator st s [(Weight, a)]
- (>+) :: Accessor st s a -> [(Weight, a)] -> GenericMusicGenerator st s ()
- (?+) :: Accessor st s a -> GenericMusicGenerator st s [(Weight, a)]
- setState :: s -> MusicGenerator s ()
- (.#.) :: Applicative m => Int -> m a -> m [a]
- (>$) :: s -> MusicGenerator s ()
- select :: Accessor GenState s a -> MusicGenerator s a
- gselect :: (st s -> s) -> (s -> GenericMusicGenerator st s ()) -> Accessor st s a -> GenericMusicGenerator st s a
- constrain :: Entry s a -> [(Weight, a)]
- addConstraint :: Accessor st s a -> Constraint a -> GenericMusicGenerator st s ()
- (>!) :: Accessor st s a -> Constraint a -> GenericMusicGenerator st s ()
- (??) :: Accessor GenState s a -> MusicGenerator s a
- class Generatable st a where
- genNote :: MusicGenerator s Melody
- genChord :: Int -> MusicGenerator s Melody
- runGenerator' :: st s -> GenericMusicGenerator st s a -> IO a
- modified :: (st s -> st s) -> GenericMusicGenerator st s a -> GenericMusicGenerator st s a
- local :: GenericMusicGenerator st s a -> GenericMusicGenerator st s a
Documentation
type Constraint a = a -> Bool Source #
State to be kept during generation
Entry | |
|
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 #
putSelector :: Accessor st s a -> Selector s a -> GenericMusicGenerator st s () Source #
putOptions :: Accessor st s a -> [(Weight, a)] -> GenericMusicGenerator st s () Source #
getOptions :: Accessor st s a -> GenericMusicGenerator st s [(Weight, a)] Source #
setState :: s -> MusicGenerator s () Source #
(.#.) :: Applicative m => Int -> m a -> m [a] Source #
(>$) :: s -> MusicGenerator s () Source #
gselect :: (st s -> s) -> (s -> GenericMusicGenerator st s ()) -> Accessor st s a -> GenericMusicGenerator st s a Source #
addConstraint :: Accessor st s a -> Constraint a -> GenericMusicGenerator st s () Source #
(>!) :: Accessor st s a -> Constraint a -> GenericMusicGenerator st s () Source #
class Generatable st a where Source #
rand :: GenericMusicGenerator st s a Source #
randN :: Int -> GenericMusicGenerator st s [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 #
local :: GenericMusicGenerator st s a -> GenericMusicGenerator st s a Source #