Safe Haskell | None |
---|---|
Language | Haskell2010 |
Extensions |
|
Internal. Just use Vivid.SynthDef
Synopsis
- data Signal
- data SynthDef (args :: [Symbol]) = SynthDef {}
- data SDName
- type SDBody' (args :: [Symbol]) = State ([Int], SynthDef args, VarSet args)
- zoomSDBody :: Subset inner outer => SDBody' inner a -> SDBody' outer a
- zoomSynthDef :: Subset a b => SynthDef a -> SynthDef b
- data UGen = UGen {}
- data UGenName
- module Vivid.SynthDef.TypesafeArgs
Documentation
data SynthDef (args :: [Symbol]) Source #
Internal representation of Synth Definitions. Usually, use sd
instead of
making these by hand.
This representation (especially _sdUGens
) might change in the future.
type SDBody' (args :: [Symbol]) = State ([Int], SynthDef args, VarSet args) Source #
State monad to construct SynthDefs
The SynthDef is an under-construction synth definition The [Int] is the id supply. Its type definitely could change in the future
zoomSDBody :: Subset inner outer => SDBody' inner a -> SDBody' outer a Source #
Given
good0 :: SDBody '["2"] () good0 = return ()
good1 :: SDBody '["3","1","3","1"] () good1 = return ()
bad0 :: SDBody '["bwahaha"] () bad0 = return ()
outer :: SDBody '[ "1", "2", "3"]() outer = do zoomSDBody good0 -- works zoomSDBody good1 -- works -- zoomSDBody bad0 -- doesn't work - great!
Representation of Unit Generators. You usually won't be creating these
by hand, but instead using things from the library in UGens
UGen | |
|
module Vivid.SynthDef.TypesafeArgs