#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; } } :: ]