WAGS.Create
- Package
- purescript-wags
- Repository
- mikesol/purescript-wags
#Create Source
class Create (a :: Type) (inIndex :: Ptr) (inGraph :: Graph) (inSkolems :: SkolemList) (outIndex :: Ptr) (outGraph :: Graph) (outSkolems :: SkolemList) (ref :: Type) | a inIndex inGraph inSkolems -> outIndex outGraph outSkolems ref where
Create audio units using template a
for input universe i
, resulting in output universe o
as well as a reference to the top-level created audio unit(s). The example below creates a speaker, a gain unit and two sine-wave oscillators. The gain is connected to the speaker and the sine wave oscillators are connected to the gain.
create (Speaker (Gain 1.0 (SinOsc 440.0 /\ SinOsc 330.0 /\ Unit)))
Feedback loops are possible using proxies. The example below loops a gain unit into itself with a delay of 0.2 seconds, creating an echo effect.
data MyGain
myCreate =
create (Speaker (Gain 1.0 \(myGain :: Proxy MyGain) ->
(PlayBuf (Proxy :: _ "hello")
/\ Highpass 440.0 1.0 (Delay 0.2 (Gain 0.5 myGain))
/\ Unit)))
Created audio units do not have to have a Speaker
at the top-level. It is possible to create
an audio unit and then connect it to another one using connect
.
Members
create :: forall env audio engine proof m res changeBit. Monad m => AudioInterpret audio engine => a -> FrameT env audio engine proof m res (UniverseC inIndex inGraph changeBit inSkolems) (UniverseC outIndex outGraph changeBit outSkolems) ref
Instances
Create Unit i g s i g s Unit
(Create x i0 g0 s0 i1 g1 s1 x', Create y i1 g1 s1 i2 g2 s2 y') => Create (Tuple x y) i0 g0 s0 i2 g2 s2 (Tuple x' y')
(Create x i0 g0 s0 i1 g1 s1 r) => Create (Identity x) i0 g0 s0 i1 g1 s1 r
(Create x i0 g0 s0 i1 g1 s1 r) => Create (Focus x) i0 g0 s0 i1 g1 s1 r
(SkolemNotYetPresent skolem skolems, BinToInt ptr, Create a ptr graphi skolems midptr graphm skolems ignore, Create b midptr graphm (SkolemListCons (SkolemPairC skolem ptr) skolems) outptr grapho (SkolemListCons (SkolemPairC skolem ptr) skolems) (AudioUnitRef midptr)) => Create (Dup a (Proxy skolem -> b)) ptr graphi skolems outptr grapho skolems (AudioUnitRef midptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Allpass argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (TAllpass ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Bandpass argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (TBandpass ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (Constant argA) ptr graph skolems next (GraphC (NodeC (TConstant ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(IsSymbol argA, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argB next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Convolver argA fOfargB) ptr graphi skolems outptr (GraphC (NodeC (TConvolver ptr argA) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argB next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Delay argA fOfargB) ptr graphi skolems outptr (GraphC (NodeC (TDelay ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, InitialVal argC, InitialVal argD, InitialVal argE, GetSkolemFromRecursiveArgument fOfargF skolem, ToSkolemizedFunction fOfargF skolem argF, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argF next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (DynamicsCompressor argA argB argC argD argE fOfargF) ptr graphi skolems outptr (GraphC (NodeC (TDynamicsCompressor ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Highpass argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (THighpass ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Highshelf argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (THighshelf ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argB, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (LoopBuf argB) ptr graph skolems next (GraphC (NodeC (TLoopBuf ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Lowpass argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (TLowpass ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Lowshelf argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (TLowshelf ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create Microphone ptr graph skolems next (GraphC (NodeC (TMicrophone ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Notch argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (TNotch ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, InitialVal argB, InitialVal argC, GetSkolemFromRecursiveArgument fOfargD skolem, ToSkolemizedFunction fOfargD skolem argD, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argD next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Peaking argA argB argC fOfargD) ptr graphi skolems outptr (GraphC (NodeC (TPeaking ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argB, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (PeriodicOsc argB) ptr graph skolems next (GraphC (NodeC (TPeriodicOsc ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argB, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (PlayBuf argB) ptr graph skolems next (GraphC (NodeC (TPlayBuf ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(IsSymbol argA, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argB next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (Recorder argA fOfargB) ptr graphi skolems outptr (GraphC (NodeC (TRecorder ptr argA) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (SawtoothOsc argA) ptr graph skolems next (GraphC (NodeC (TSawtoothOsc ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (SinOsc argA) ptr graph skolems next (GraphC (NodeC (TSinOsc ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (SquareOsc argA) ptr graph skolems next (GraphC (NodeC (TSquareOsc ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argB next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (StereoPanner argA fOfargB) ptr graphi skolems outptr (GraphC (NodeC (TStereoPanner ptr) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal argA, BinToInt ptr, BinSucc ptr next, GraphToNodeList graph nodeList) => Create (TriangleOsc argA) ptr graph skolems next (GraphC (NodeC (TTriangleOsc ptr) NoEdge) nodeList) skolems (AudioUnitRef ptr)
(IsSymbol argA, IsOversample argB, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create argC next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term (SingleEdge op), GraphToNodeList grapho nodeList) => Create (WaveShaper argA argB fOfargC) ptr graphi skolems outptr (GraphC (NodeC (TWaveShaper ptr argA) (SingleEdge op)) nodeList) skolems (AudioUnitRef ptr)
(InitialVal a, GetSkolemFromRecursiveArgument fb skolem, ToSkolemizedFunction fb skolem b, SkolemNotYetPresentOrDiscardable skolem skolems, MakeInternalSkolemStack skolem ptr skolems skolemsInternal, BinToInt ptr, BinSucc ptr next, Create b next graphi skolemsInternal outptr grapho skolemsInternal term, AsEdgeProfile term eprof, GraphToNodeList grapho nodeList) => Create (Gain a fb) ptr graphi skolems outptr (GraphC (NodeC (TGain ptr) eprof) nodeList) skolems (AudioUnitRef ptr)
(ToSkolemizedFunction a DiscardableSkolem a, BinToInt ptr, BinSucc ptr next, Create a next graphi skolems outptr grapho skolems term, AsEdgeProfile term eprof, GraphToNodeList grapho nodeList) => Create (Speaker a) ptr graphi skolems outptr (GraphC (NodeC (TSpeaker ptr) eprof) nodeList) skolems (AudioUnitRef ptr)
(LookupSkolem skolem skolems ptr, BinToInt ptr) => Create (Proxy skolem) next graph skolems next graph skolems (AudioUnitRef ptr)
#CreationInstructions Source
class (AudioInterpret audio engine) <= CreationInstructions (audio :: Type) (engine :: Type) (g :: Type) where
Internal class used to make term-level instructions for audio unit creation.
Members
creationInstructions :: Int -> g -> (Array (audio -> engine)) /\ AnAudioUnit
Instances
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Allpass argA argB argC)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Bandpass argA argB argC)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (Constant argA)
(IsSymbol argA, AudioInterpret audio engine) => CreationInstructions audio engine (Convolver argA argB)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (Delay argA argB)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB, InitialVal argC, InitialVal argD, InitialVal argE) => CreationInstructions audio engine (DynamicsCompressor argA argB argC argD argE argF)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (Gain argA argB)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Highpass argA argB argC)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Highshelf argA argB argC)
(AudioInterpret audio engine, InitialVal argB) => CreationInstructions audio engine (LoopBuf argB)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Lowpass argA argB argC)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Lowshelf argA argB argC)
(AudioInterpret audio engine) => CreationInstructions audio engine Microphone
(AudioInterpret audio engine, InitialVal argA, InitialVal argB) => CreationInstructions audio engine (Notch argA argB argC)
(AudioInterpret audio engine, InitialVal argA, InitialVal argB, InitialVal argC) => CreationInstructions audio engine (Peaking argA argB argC argD)
(AudioInterpret audio engine, InitialVal argB) => CreationInstructions audio engine (PeriodicOsc argB)
(AudioInterpret audio engine, InitialVal argB) => CreationInstructions audio engine (PlayBuf argB)
(IsSymbol argA, AudioInterpret audio engine) => CreationInstructions audio engine (Recorder argA argB)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (SawtoothOsc argA)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (SinOsc argA)
(AudioInterpret audio engine) => CreationInstructions audio engine (Speaker argA)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (SquareOsc argA)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (StereoPanner argA argB)
(AudioInterpret audio engine, InitialVal argA) => CreationInstructions audio engine (TriangleOsc argA)
(IsSymbol argA, AudioInterpret audio engine, IsOversample argB) => CreationInstructions audio engine (WaveShaper argA argB argC)
#InitialVal Source
class InitialVal a where
A value that can be coerced to an initial control-rate audio parameter.
Members
initialVal :: a -> AudioParameter
Instances
InitialVal Number
InitialVal AudioParameter
(InitialVal a) => InitialVal (Tuple a b)
- Modules
- FRP.
Event. MIDI - WAGS.
Change - WAGS.
Connect - WAGS.
Control. Functions - WAGS.
Control. MemoizedState - WAGS.
Control. Qualified - WAGS.
Control. Thunkable - WAGS.
Control. Types - WAGS.
Create - WAGS.
Cursor - WAGS.
Debug - WAGS.
Destroy - WAGS.
Disconnect - WAGS.
Graph. Constructors - WAGS.
Graph. Decorators - WAGS.
Graph. Getter - WAGS.
Graph. Optionals - WAGS.
Graph. Parameter - WAGS.
Interpret - WAGS.
Move - WAGS.
MoveNode - WAGS.
Rebase - WAGS.
Rendered - WAGS.
Run - WAGS.
Universe. AudioUnit - WAGS.
Universe. Bin - WAGS.
Universe. BinN - WAGS.
Universe. EdgeProfile - WAGS.
Universe. Graph - WAGS.
Universe. Node - WAGS.
Universe. Skolems - WAGS.
Universe. Universe - WAGS.
Util - WAGS.
Validation