101 lines
2.4 KiB
Racket
101 lines
2.4 KiB
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{NodeEvent}
|
|
@section{categories}
|
|
Streams-Patterns-Events
|
|
@section{related}
|
|
Classes/Event
|
|
synth- and group- like interface of Event
|
|
@section{description}
|
|
|
|
The methods link::Classes/Event#-synth:: and link::Classes/Event#-group:: set the parent event of the receiver to specialized events that duplicate the functionality of link::Classes/Synth:: and link::Classes/Group:: objects. These objects follow the naming conventions of patterns (i.e., groups and addActions are integer ID's) and have the same stop/play/pause/resume interface as the EventStreamPlayers created by Pattern-play. So, they can be used interchangeably with patterns in control schemes and GUI's.
|
|
|
|
The following example creates a group with nodeID = 2 and plays a synth within it.
|
|
|
|
|
|
@racketblock[
|
|
g = (id: 2).group;
|
|
g.play;
|
|
a = (group: 2).synth;
|
|
a.play;
|
|
g.release;
|
|
g.stop;
|
|
::
|
|
|
|
]
|
|
@section{subsection}
|
|
Interface
|
|
|
|
@section{method}
|
|
play
|
|
starts synth or group, returns this.delta
|
|
@section{method}
|
|
stop
|
|
if ev[\hasGate] == true set gate to 0, otherwise frees the node
|
|
@section{method}
|
|
pause
|
|
disables the node
|
|
@section{method}
|
|
resume
|
|
reenables the node
|
|
@section{method}
|
|
set ( key, value)
|
|
sets control identified by key to value
|
|
@section{method}
|
|
split
|
|
returns an array of events, one for each synth or group specified by the receiver
|
|
@section{method}
|
|
map (key, busID)
|
|
maps control to control bus
|
|
@section{method}
|
|
before (nodeID)
|
|
moves to immediately before nodeID
|
|
@section{method}
|
|
after (nodeID)
|
|
moves to immediately after nodeID
|
|
@section{method}
|
|
headOf (nodeID)
|
|
moves to immediately to head of nodeID
|
|
@section{method}
|
|
tailOf (nodeID)
|
|
moves to immediately to tail of nodeID
|
|
|
|
@section{subsection}
|
|
Multi-channel expansion
|
|
With the exception of ~server, ~latency, and ~instrument any key in the event can have an array as a
|
|
value and the standard rules of multi-channel expansion will be followed.
|
|
|
|
@section{Examples}
|
|
|
|
|
|
|
|
@racketblock[
|
|
// Here is a simple example of its use:
|
|
|
|
// define a multiple Group event
|
|
g = (id: [2,3,4,5,6], group: 0, addAction: 1).group;
|
|
g.play; // play it
|
|
|
|
// make a Synth event
|
|
b = ( freq: [500,510], group: [2,3]).synth;
|
|
b.play;
|
|
|
|
b.set(\freq,[1000,1006]);
|
|
|
|
g.release;
|
|
|
|
b.play;
|
|
h = g.split; // split into individual group events
|
|
c = b.split; // and synth events
|
|
c[0].set(\freq,700);
|
|
c[1].set(\freq,400);
|
|
|
|
h[0].stop;
|
|
h[1].stop;
|
|
|
|
g.stop;
|
|
::
|
|
]
|
|
|
|
|