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 where
Like 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 -> plist
Instances
CursorRes (Allpass a b c) ptr (NodeC (TAllpass ptr) edge) edge
CursorRes (Bandpass a b c) ptr (NodeC (TBandpass ptr) edge) edge
CursorRes (Constant a) ptr (NodeC (TConstant ptr) edge) edge
CursorRes (Convolver name b) ptr (NodeC (TConvolver ptr name) edge) edge
CursorRes (Delay a b) ptr (NodeC (TDelay ptr) edge) edge
CursorRes (DynamicsCompressor a b c d e f) ptr (NodeC (TDynamicsCompressor ptr) edge) edge
CursorRes (Gain a b) ptr (NodeC (TGain ptr) edge) edge
CursorRes (Highpass a b c) ptr (NodeC (THighpass ptr) edge) edge
CursorRes (Highshelf a b c) ptr (NodeC (THighshelf ptr) edge) edge
CursorRes (LoopBuf b) ptr (NodeC (TLoopBuf ptr) edge) edge
CursorRes (Lowpass a b c) ptr (NodeC (TLowpass ptr) edge) edge
CursorRes (Lowshelf a b c) ptr (NodeC (TLowshelf ptr) edge) edge
CursorRes Microphone ptr (NodeC (TMicrophone ptr) edge) edge
CursorRes (Notch a b c) ptr (NodeC (TNotch ptr) edge) edge
CursorRes (Peaking a b c d) ptr (NodeC (TPeaking ptr) edge) edge
CursorRes (PeriodicOsc b) ptr (NodeC (TPeriodicOsc ptr) edge) edge
CursorRes (PlayBuf b) ptr (NodeC (TPlayBuf ptr) edge) edge
CursorRes (Recorder name b) ptr (NodeC (TRecorder ptr name) edge) edge
CursorRes (SawtoothOsc a) ptr (NodeC (TSawtoothOsc ptr) edge) edge
CursorRes (SinOsc a) ptr (NodeC (TSinOsc ptr) edge) edge
CursorRes (Speaker a) ptr (NodeC (TSpeaker ptr) edge) edge
CursorRes (SquareOsc a) ptr (NodeC (TSquareOsc ptr) edge) edge
CursorRes (StereoPanner a b) ptr (NodeC (TStereoPanner ptr) edge) edge
CursorRes (TriangleOsc a) ptr (NodeC (TTriangleOsc ptr) edge) edge
CursorRes (WaveShaper name b c) ptr (NodeC (TWaveShaper ptr name) edge) edge
CursorRes tag p n NoEdge
#Cursor' Source
class Cursor' (tag :: Type) (p :: Ptr) (i :: NodeList) (nextP :: EdgeProfile) | tag p i -> nextP
Internal 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 -> nextP
Internal 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 -> ptr
Internal 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