/ HALion Developer Resource / HALion Script / Reference /
VoiceGroupsData Table
(Since HALion 6.4.10)
Description
Voice Groups are managed via a predefined table: the VoiceGroupsData table. This table can be obtained by making a call to getParameter with "VoiceManager.VoiceGroupsData" as parameter. The voice groups are referenced by their index. Each voice group has the fields .maxPolyphony, .exclusiveGroup and .stealMode. You can change the correspondig values, but the structure of this table must remain unaltered. The values are set by making a call to setParameter. See the example below for more details.
Available in: Controller.
Fields
| Field | Description | Value Type |
|---|---|---|
| .maxPolyphony | The maximum polyphony of the voice group. The value range is from 1 to 128. | number |
| .exclusiveGroup | The exclusive group of the voice group. The value range is from 0 to 32. Set this to 0 to switch the exclusive group off. | number |
| .stealMode | The steal mode of the voice group. See Voice Group Steal Modes for details. | number |
Example
-- Activate the voice groups for the parent layer.
layer = this.parent
layer:setParameter("VoiceManager.Voice Management", 1) -- Set Voice Manager to "On".
layer:setParameter("VoiceManager.VoiceGroups", true) -- Activate the Voice Groups.
voiceGroups = layer:getParameter("VoiceManager.VoiceGroupsData")
for i = 1, 128 do
voiceGroups[i].maxPolyphony = 4
voiceGroups[i].exclusiveGroup = 0 -- Set exclusive group to "Off".
voiceGroups[i].stealMode = StealMode.lastNotePriority
end
layer:setParameter("VoiceManager.VoiceGroupsData", voiceGroups)
See also: Voice Group Steal Modes