76 lines
2.1 KiB
Text
76 lines
2.1 KiB
Text
title:: NodeEvent
|
|
categories:: Streams-Patterns-Events
|
|
related:: Classes/Event
|
|
summary:: synth- and group- like interface of Event
|
|
|
|
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.
|
|
|
|
code::
|
|
g = (id: 2).group;
|
|
g.play;
|
|
a = (group: 2).synth;
|
|
a.play;
|
|
g.release;
|
|
g.stop;
|
|
::
|
|
|
|
subsection::Interface
|
|
|
|
method:: play
|
|
starts synth or group, returns this.delta
|
|
method:: stop
|
|
if ev[\hasGate] == true set gate to 0, otherwise frees the node
|
|
method:: pause
|
|
disables the node
|
|
method:: resume
|
|
reenables the node
|
|
method:: set ( key, value)
|
|
sets control identified by key to value
|
|
method:: split
|
|
returns an array of events, one for each synth or group specified by the receiver
|
|
method:: map (key, busID)
|
|
maps control to control bus
|
|
method:: before (nodeID)
|
|
moves to immediately before nodeID
|
|
method:: after (nodeID)
|
|
moves to immediately after nodeID
|
|
method:: headOf (nodeID)
|
|
moves to immediately to head of nodeID
|
|
method:: tailOf (nodeID)
|
|
moves to immediately to tail of nodeID
|
|
|
|
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.
|
|
|
|
Examples::
|
|
|
|
code::
|
|
// 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;
|
|
::
|