rsc3/doc-schelp/HelpSource/Classes/ParGroup.scrbl

79 lines
1.9 KiB
Text
Raw Permalink Normal View History

2022-08-24 13:53:18 +00:00
#lang scribble/manual
@(require (for-label racket))
@title{ParGroup}
Client-side representation of a parallel group node on the server@section{categories}
Server>Nodes, Server>Abstractions
@section{description}
Parallel Groups are server-side node containers that work similar to link::Classes/Group::s, but without
ordering constraints for the contained nodes. This means that on parallel architectures the elements of a Parallel Group
can be executed concurrently.
@section{ClassMethods}
@section{private}
creationCmd
@section{subsection}
Creation with Immediate Instantiation on the Server
@section{copymethod}
Group *new
@section{subsection}
Convenience methods for add actions
The following convenience methods correspond to the add actions above:
@section{copymethod}
Group *after
@section{copymethod}
Group *before
@section{copymethod}
Group *head
@section{copymethod}
Group *tail
@section{copymethod}
Group *replace
@section{subsection}
Creation without Instantiation on the Server
Like with Groups, it is possible to create a a ParGroup object without immediately creating a parallel group in the server.
@section{method}
basicNew
Create and return a ParGroup object without creating a group node on the server. (This method is inherited from Node and is documented here only for convenience.)
@section{argument}
server
An optional instance of Server. If nil this will default to the default Server.
@section{argument}
nodeID
An optional node ID number. If not supplied one will be generated by the Server's NodeIDAllocator. Normally you should not need to supply an ID.
@section{discussion}
For a detailed discussion please refer to link::Classes/Group#*basicNew::.
@section{Examples}
@racketblock[
fork {
p = ParGroup.new;
loop {
(
degree: rrand(0.0, 12.0).round(1/4),
group: p,
db: rrand(-30, -25),
pan: rrand(-1.0, 1.0)
).play;
0.2.wait;
}
}
::
]