Package MC

mc.noteallocator~

Manage voice numbers for MIDI note events

Description

The mc.noteallocator~ object assigns voice numbers for MIDI and MPE note events 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 playing notes.

Arguments

voice count[int]
optional

If present, a number argument sets the maximum voice count. You can change the voice count during the lifetime of the object by setting the voices attribute.

Attributes

direct[int]: 0

Set Busy Map With Signal Input

hires[int]: 3

The hires attribute is used to support high-resolution pitch bend scaling. When the attribute is set to 0, mc.noteallocator~ will accept and output pitch bend integer values in the standard MIDI range of 0 to 127. When the attribute is set to 1, it accepts high resolution MIDI data and outputs float values in the range of -1 to 1. When the attribute is set to 2, it accepts high resolution MIDI data and outputs integer values in the range of -8192 to 8191 (standard 14-bit MIDI high resolution pitch bend range). When the attribute is set to 3 (default), it accepts high resolution MIDI data and outputs integer values in the range of 0 to 16383 (unsigned 14-bit MIDI high resolution pitch bend range). Possible values:

0 = 'Off (0-127)'
1 = 'Float (-1 to 1)'
2 = '14-bit Fixed (-8192 to 8191)'
3 = '14-bit Fixed (0 to 16383)'

mpemode[int]: 0

When mpemode is enabled, mc.noteallocator~ outputs the voice number contained in mpeevent messages instead of allocating a voice number based on its internal busy state. When using MPE mode, the source of incoming MPE messages (such as a keyboard or other device) assumes responsibility for the details of voice allocation. MPE mode is disabled by default.

name[symbol]:

The name attribute assigns a global name to the object's busy map. By default, mc.noteallocator~ '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]: 1

When steal is enabled, mc.noteallocator~ will re-allocate ("steal") a busy voice if it runs out of non-busy voices. The stolen voice number used will be the one least recently allocated. When steal is disabled, mc.noteallocator~ will not produce any output if all voices are busy. Output resumes only when a voice becomes free, either via the input multichannel audio signal or an incoming MIDI note-off event.

voices[int]: 0

The voices attribute sets the maximum voice number mc.noteallocator~ 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.noteallocator~ defaults to 15 voices.

Common Box Attributes

Below is a list of attributes shared by all objects. If you want to change one of these attributes for an object based on the object box, you need to place the word sendbox in front of the attribute name, or use the object's Inspector.

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. background 1 adds the object to the background layer, background 0 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'

hidden[int]: 0

Toggles whether an object is hidden when the patcher is locked.

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]

You can override the default appearance of a user interface object by assigning a JavaScript file with code for painting the object. The file must be in the search path.

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

midievent

When mc.noteallocator~ receieves a midievent message (from a midiparse object) in its inlet, it allocates and outputs a voice number out its right outlet, then sends the MIDI note, controller, aftertouch, or pitch bend values in the midievent message out the designated outlets.

Arguments:
  • MIDI [list]

mpeevent

When mc.noteallocator~ receieves an mpeevent message (from an mpeparse object) in its inlet, it allocates and outputs a voice number out its right outlet, then sends the MIDI note, controller, aftertouch, or pitch bend values in the mpeevent message out the designated outlets.

Arguments:
  • MPE [list]

signal

Connect an optional multichannel signal to prevent mc.noteallocator~ from reallocating a voice until its audio level goes to zero.

See Also

Name Description
MC Managed Polyphony MC Managed Polyphony
MC Polyphony MC Polyphony
mc.voiceallocator~ Manage voice numbers for events