WAGS.Cursor
- Package
- purescript-wags
- Repository
- mikesol/purescript-wags
#cursor Source
cursor :: forall edge audio engine a q r s t env proof m res p. Monad m => TerminalIdentityEdge r edge => Cursor edge a r p => BinToInt p => a -> FrameT env audio engine proof m res (UniverseC q r s t) (UniverseC q r s t) (AudioUnitRef p)Focus on a particular audio unit in a graph. Use in conjunction with change to modify
an audio unit.
myCursor <- cursor (Speaker (Gain 1.0 (SinOsc 440.0 /\ Focus (SinOsc 330.0) /\ Unit)))
changeAt myCursor (SinOsc 332.0)
Graphs can be focused on different elements, allowing multiple cursors to be generated from the same graph.
let
graph a b = Speaker (Gain 1.0 (a (SinOsc 440.0) /\ b (SinOsc 330.0) /\ Unit))
cursor1 <- cursor (graph Focus Identity)
cursor2 <- cursor (graph Identity Focus)
changeAt cursor1 (SinOsc 444.0)
changeAt cursor2 (SinOsc 332.0)
For more complex graphs, decorators can be used to auto-generate cursors.
See WAGS.Graph.Decorators.
To see examples of cursors, check out test/Ops.purs and examples/wtk/WTK/TLP.purs.
#Cursor Source
class Cursor (p :: EdgeProfile) (a :: Type) (g :: Graph) (ptr :: Ptr) | p a g -> ptr whereLike cursor, but starting from an arbitrary edge in a graph. This is useful when, for example,
the cursor needs to be obtained for an audio unit that is not yet connected to a speaker. In
most cases, however, you'll want to use cursor, which uses Speaker as the top-most unit.
Members
cursor' :: forall env audio engine proof m res currentIdx changeBit skolems. Monad m => Proxy p -> a -> FrameT env audio engine proof m res (UniverseC currentIdx g changeBit skolems) (UniverseC currentIdx g changeBit skolems) (AudioUnitRef ptr)
Instances
(BinToInt head, CursorI p a o (PtrListCons head PtrListNil)) => Cursor p a o head
#CursorRes Source
class CursorRes (tag :: Type) (p :: Ptr) (i :: Node) (plist :: EdgeProfile) | tag p i -> plistInstances
CursorRes (Allpass a b c) ptr (NodeC (TAllpass ptr) edge) edgeCursorRes (Bandpass a b c) ptr (NodeC (TBandpass ptr) edge) edgeCursorRes (Constant a) ptr (NodeC (TConstant ptr) edge) edgeCursorRes (Convolver name b) ptr (NodeC (TConvolver ptr name) edge) edgeCursorRes (Delay a b) ptr (NodeC (TDelay ptr) edge) edgeCursorRes (DynamicsCompressor a b c d e f) ptr (NodeC (TDynamicsCompressor ptr) edge) edgeCursorRes (Gain a b) ptr (NodeC (TGain ptr) edge) edgeCursorRes (Highpass a b c) ptr (NodeC (THighpass ptr) edge) edgeCursorRes (Highshelf a b c) ptr (NodeC (THighshelf ptr) edge) edgeCursorRes (LoopBuf b) ptr (NodeC (TLoopBuf ptr) edge) edgeCursorRes (Lowpass a b c) ptr (NodeC (TLowpass ptr) edge) edgeCursorRes (Lowshelf a b c) ptr (NodeC (TLowshelf ptr) edge) edgeCursorRes Microphone ptr (NodeC (TMicrophone ptr) edge) edgeCursorRes (Notch a b c) ptr (NodeC (TNotch ptr) edge) edgeCursorRes (Peaking a b c d) ptr (NodeC (TPeaking ptr) edge) edgeCursorRes (PeriodicOsc b) ptr (NodeC (TPeriodicOsc ptr) edge) edgeCursorRes (PlayBuf b) ptr (NodeC (TPlayBuf ptr) edge) edgeCursorRes (Recorder name b) ptr (NodeC (TRecorder ptr name) edge) edgeCursorRes (SawtoothOsc a) ptr (NodeC (TSawtoothOsc ptr) edge) edgeCursorRes (SinOsc a) ptr (NodeC (TSinOsc ptr) edge) edgeCursorRes (Speaker a) ptr (NodeC (TSpeaker ptr) edge) edgeCursorRes (SquareOsc a) ptr (NodeC (TSquareOsc ptr) edge) edgeCursorRes (StereoPanner a b) ptr (NodeC (TStereoPanner ptr) edge) edgeCursorRes (TriangleOsc a) ptr (NodeC (TTriangleOsc ptr) edge) edgeCursorRes (WaveShaper name b c) ptr (NodeC (TWaveShaper ptr name) edge) edgeCursorRes tag p n NoEdge
#Cursor' Source
class Cursor' (tag :: Type) (p :: Ptr) (i :: NodeList) (nextP :: EdgeProfile) | tag p i -> nextPInternal helper class used for Cursor.
Instances
Cursor' tag p NodeListNil NoEdge(CursorRes tag p head headPlist, Cursor' tag p tail tailPlist, AltEdgeProfile headPlist tailPlist plist) => Cursor' tag p (NodeListCons head tail) plist
#CursorX Source
class CursorX (tag :: Type) (p :: Ptr) (i :: Graph) (nextP :: EdgeProfile) | tag p i -> nextPInternal helper class used for Cursor.
Instances
(GraphToNodeList ig il, Cursor' tag p il nextP) => CursorX tag p ig nextP
#CursorI Source
class CursorI (p :: EdgeProfile) (a :: Type) (g :: Graph) (ptr :: PtrList) | p a g -> ptrInternal helper class used for Cursor.
Instances
CursorI NoEdge g igraph PtrListNil(BinToInt p) => CursorI (SingleEdge p) (Proxy skolem) igraph PtrListNil(BinToInt p, CursorI (SingleEdge p) x igraph o) => CursorI (SingleEdge p) (Identity x) igraph o(BinToInt p, CursorI (SingleEdge p) x igraph o) => CursorI (SingleEdge p) (Focus x) igraph (PtrListCons p o)CursorI (SingleEdge p) This igraph (PtrListCons p PtrListNil)CursorI (SingleEdge p) IgnoreMe igraph PtrListNil(BinToInt p, BinToInt a, CursorI (SingleEdge p) x igraph o0, CursorI (ManyEdges a b) y igraph o1, PtrListAppend o0 o1 oo) => CursorI (ManyEdges p (PtrListCons a b)) (Tuple x y) igraph oo(BinToInt p, CursorI (SingleEdge p) a igraph o) => CursorI (ManyEdges p PtrListNil) (Tuple a Unit) igraph o(Create a D0 InitialGraph (SkolemListCons (SkolemPairC skolem D0) skolems) outptr grapho (SkolemListCons (SkolemPairC skolem D0) skolems) ignore, BinToInt p, BinToInt outptr, BinToInt continuation, BinSub p outptr continuation, CursorI (SingleEdge p) b igraph o0, CursorI (SingleEdge continuation) a igraph o1, PtrListAppend o0 o1 oo) => CursorI (SingleEdge p) (Dup a (Proxy skolem -> b)) igraph oo(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Allpass argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Allpass argA argB fOfargC) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Bandpass argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Bandpass argA argB fOfargC) igraph o(BinToInt p) => CursorI (SingleEdge p) (Constant argA) igraph PtrListNil(BinToInt p, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, CursorX (Convolver argA argB) p igraph nextP, CursorI nextP argB igraph o) => CursorI (SingleEdge p) (Convolver argA fOfargB) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, CursorX (Delay argA argB) p igraph nextP, CursorI nextP argB igraph o) => CursorI (SingleEdge p) (Delay argA fOfargB) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargF skolem, ToSkolemizedFunction fOfargF skolem argF, CursorX (DynamicsCompressor argA argB argC argD argE argF) p igraph nextP, CursorI nextP argF igraph o) => CursorI (SingleEdge p) (DynamicsCompressor argA argB argC argD argE fOfargF) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Highpass argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Highpass argA argB fOfargC) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Highshelf argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Highshelf argA argB fOfargC) igraph o(BinToInt p) => CursorI (SingleEdge p) (LoopBuf argB) igraph PtrListNil(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Lowpass argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Lowpass argA argB fOfargC) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Lowshelf argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Lowshelf argA argB fOfargC) igraph o(BinToInt p) => CursorI (SingleEdge p) Microphone igraph PtrListNil(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (Notch argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (Notch argA argB fOfargC) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fOfargD skolem, ToSkolemizedFunction fOfargD skolem argD, CursorX (Peaking argA argB argC argD) p igraph nextP, CursorI nextP argD igraph o) => CursorI (SingleEdge p) (Peaking argA argB argC fOfargD) igraph o(BinToInt p) => CursorI (SingleEdge p) (PeriodicOsc argB) igraph PtrListNil(BinToInt p) => CursorI (SingleEdge p) (PlayBuf argB) igraph PtrListNil(BinToInt p, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, CursorX (Recorder argA argB) p igraph nextP, CursorI nextP argB igraph o) => CursorI (SingleEdge p) (Recorder argA fOfargB) igraph o(BinToInt p) => CursorI (SingleEdge p) (SawtoothOsc argA) igraph PtrListNil(BinToInt p) => CursorI (SingleEdge p) (SinOsc argA) igraph PtrListNil(BinToInt p) => CursorI (SingleEdge p) (SquareOsc argA) igraph PtrListNil(BinToInt p, GetSkolemFromRecursiveArgument fOfargB skolem, ToSkolemizedFunction fOfargB skolem argB, CursorX (StereoPanner argA argB) p igraph nextP, CursorI nextP argB igraph o) => CursorI (SingleEdge p) (StereoPanner argA fOfargB) igraph o(BinToInt p) => CursorI (SingleEdge p) (TriangleOsc argA) igraph PtrListNil(BinToInt p, GetSkolemFromRecursiveArgument fOfargC skolem, ToSkolemizedFunction fOfargC skolem argC, CursorX (WaveShaper argA argB argC) p igraph nextP, CursorI nextP argC igraph o) => CursorI (SingleEdge p) (WaveShaper argA argB fOfargC) igraph o(BinToInt p, GetSkolemFromRecursiveArgument fb skolem, ToSkolemizedFunction fb skolem b, CursorX (Gain a b) p igraph nextP, CursorI nextP b igraph o) => CursorI (SingleEdge p) (Gain a fb) igraph o(BinToInt p, CursorX (Speaker a) p igraph nextP, CursorI nextP a igraph o) => CursorI (SingleEdge p) (Speaker a) igraph o
- 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