mc.voiceallocator~
Manage voice numbers for events
Description
The mc.voiceallocator~ object assigns voice numbers to incoming messages using an optional multichannel signal to determine voice busy state. It also maintains a voice busy map used by other MC objects to avoid unnecessary processing for channels that are not actively producing audio in response to events.
Arguments
voice count[int]
optional
An optional argument can set a maximum number of voice numbers the mc.voiceallocator~ object will use. If no argument is supplied, the default voice count is 0, meaning that mc.voiceallocator~ will set its maximum voice count by the number of channels in a connected multichannel input. If there is no connected multichannel input, the default voice count is 16.
Attributes
initialbusystate[int]: 1
Sets the initial busy state. The default value is 1. Set this to zero to avoid high CPU usage before sending events when audio is turned on.
name[symbol]
The name attribute assigns a global name to the object's busy map. By default, mc.voiceallocator~ 's busy map does not have a name and is available only to MC objects within the same patcher. A named busy map is accessible to all MC objects (in any patcher) that refer to it using the busymapname attribute.
steal[int]
When set to 1, the steal attribute allows messages to pass through mc.voiceallocator~ and are assigned to voice numbers when all voices have been allocated. When set to 0, messages are not passed through and are not assigned to voice numbers if all voices are already allocated.
voices[int]
The voices attribute sets the maximum voice number mc.voiceallocator~ will allocate and output. When voices is 0 (the default), the active voice count is determined by the number of channels in the connected multichannel signal. If there is no connected signal, mc.voiceallocator~ defaults to 16 voices.
Common Box Attributes
annotation[symbol]
Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.
background[int]: 0
Adds or removes the object from the patcher's background layer.
adds the object to the background layer, removes it. Objects in the background layer are shown behind all objects in the default foreground layer.
color[4 floats]
Sets the color for the object box outline.
fontface[int]
Sets the type style used by the object. The options are:
plain
bold
italic
bold italic
Possible values:
0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'
fontname[symbol]
Sets the object's font.
fontsize[float]
Sets the object's font size (in points).
Possible values:
'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'
hint[symbol]
Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.
ignoreclick[int]: 0
Toggles whether an object ignores mouse clicks in a locked patcher.
jspainterfile[symbol]
JS Painter File
patching_rect[4 floats]: 0. 0. 100. 0.
Sets the position and size of the object in the patcher window.
position[2 floats]
write-only
Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.
presentation[int]: 0
Sets whether an object belongs to the patcher's presentation.
presentation_rect[4 floats]: 0. 0. 0. 0.
Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.
rect[4 floats]
write-only
Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).
size[2 floats]
write-only
Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.
textcolor[4 floats]
Sets the color for the object's text in RGBA format.
textjustification[int]
Sets the justification for the object's text.
Possible values:
0 = 'left'
1 = 'center'
2 = 'right'
varname[symbol]
Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.
Messages
bang
The
message is repeated to the left outlet preceded by a new voice number sent out the right outlet.
int
The number is repeated to the left outlet preceded by a new voice number sent out the right outlet.
float
The number is repeated to the left outlet preceded by a new voice number sent out the right outlet.
list
The list is repeated to the left outlet preceded by a new voice number sent out the right outlet.
anything
The message is repeated to the left outlet preceded by a new voice number sent out the right outlet.
endevent
The word
, followed by an event name defined by the message, releases the voice associated with the event. The entire message is repeated to the left outlet.- event name
[list]
event
The word
, followed by an event name and a message, sends the entire message out the left outlet preceded by a newly allocated voice number. The name can later be used with the message to release the voice that became associated with the event.- event-name
[list]
holdevent
The word
, followed by an event name and a message, sends the entire message out the left outlet preceded by a newly allocated voice number. The name can later be used with the message to release the voice that became associated with the event. Unlike the message, explicitly holds the named event until connected audio reaches zero.- event-name
[list]
printbusymap
Prints the current state of the mc.voiceallocator~ busy map to the Max Console as a list.
release
The word
, followed by a voice number, releases that voice number (sets to a non-busy state). Without an argument, sets all voices to a non-busy state.- voice number
[list]
releaseevent
The word
, followed by an event name defined by an message, releases the voice number associated with the named event but unlike , does not produce a message out the left outlet.- event-name
[list]
signal
Connect an optional multichannel signal to prevent mc.voiceallocator~ from reallocating a voice until the corresponding channel's signal level goes to zero.
See Also
Name | Description |
---|---|
MC Managed Polyphony | MC Managed Polyphony |
MC Polyphony | MC Polyphony |
mc.noteallocator~ | Manage voice numbers for MIDI note events |