Playback Control by ADX
- The units of sound handled by ADX are roughly divided into cue and voicings .
The feature of limiting the number of playbacks works independently of Cues and Voices.
Both settings can be configured on CRI Atom Craft.
Cue Playback Control
Cue Limit
- "Cue Limit" is the limit on how many sounds the Cue can play.
- For example, when setting 1 to the Cue limit, just one sound is played.
When specifying the first-arrival priority for the Cue priority type, a request of the second sound playback is canceled. When specifying the last-arrival priority, the Cue already being played back is stopped and a new sound playback starts.
- It is the limit on the number of playbacks for a Cue, and is not affected by the numbers of playbacks by other Cues. Also, the number of voices is controlled on a per-cue basis, regardless of which player is playing the cue.
(Two voices by multiple players and two voices by a single player simply count as two voices in terms of cue limit processing.)
- Note that the value of Cue limit is not the maximum number of simultaneous playbacks throughout the application, but the number of simultaneous playbacks for the Cue.
(It does not limit the number of playbacks for other Cues.) Cue limit processing works on a cue sheet handle basis.
For example, if you load cue sheet data containing a cue with a cue limit number of 1 twice, creating two cue sheet handles (generating multiple cue sheet handles with the same cue sheet data), and then play a cue specifying each cue sheet,the cue limit will work separately for each cue, so the maximum number of sounds will be 2.
- If you want to limit the number of simultaneous playbacks throughout the application, for example, register all the Cues in the same "Category" and set the category limit value.
Types of cue limits
- "Cue limits" can be set for three items: cues, cue sheets, and categories, and the order of control processing during playback is as follows.
Item | Control processing order | Description |
Cue | 1 | Polyphony control for individual cues: first-come, last-served priority, no priority |
Cue sheet | 2 | Polyphony control for cue sheet handles: first-come, last-served priority, no priority |
Category | 3 | Polyphony control for category: first-come, last-served priority, priority |
For this reason, if playback is canceled due to polyphony control for individual cues, cue limit processing for cue sheets and categories will not work.
Category Cue Priority
- If you want to control the playback priority and the number of playbacks between Cues, use the Category feature.
- Register a Cue in a Category, enable the Cue Limit flag, and set the upper limit of the simultaneous playbacks to the Cue Limits on the Category side.
Note that if the Cue Limit flag is not enabled, the playback control by priority does not work.
- If you want to control the playback priority within Categories, use the Category Cue Proiroty feature.
- If the number of playbacks exceeds the Limits set to the category when playing the Cue in the category, ADX library decides what Cue playback should be stopped based on the Category Cue priority set to the Cue.
For example, if you create a "Voice" category and register multiple cues with a limit of 2, cues in the Voice category can only play a maximum of two sounds at a time.
When you play a third sound, the cue with the lowest priority in that category will stop playing and the third sound will be played.
- For cues that are not registered in a category, the category cue priority value has no effect. (Priority is ignored.)
Also, you can register multiple queues as long as they are in categories with different "category groups."
- Only category cue priorities can use "nearby priority".
This applies only when 3D positioning playback is in progress.
For more information on 3D positioning, see 3D positioning .
For categories with "cue priority nearby priority" enabled, cues that are playing from a source closer to the listener will be given priority.
However, please note the following:
- The category cue priority value takes priority, so near-priority processing only occurs when the values are the same
- Cues that are using panning 3D playback do not have the distance to the listener as a parameter, so they are not subject to near-priority processing
- Cue priority near-priority can only be set on CRI Atom Craft
Voice Playback Control
- A Voice is a playback unit by the waveform that is allocated within a Cue.
The Voice playback control works independently of the Cue playback control.
- The maximum number of voice playbacks is specified in the "Voice Limits" in the "Voice Limit Group".
"Voice Priority" is used to manage voice priority.
- The maximum number of simultaneous voice playbacks specified in the voice limit group is applied only to the voices in this group.
For a voice that does not belong to any group, it is limited to the number of voices that the application actually allocates.
This means that unlike the Cue, the default upper limit of voices exists in the application.
(Number of Voices that the application prepares is the actual upper limit.)
- Voice limit group is used in the case where the number of playbacks is limited for a specific type of voice.
- For example, when specifying the number of voices in a voice pool for SE on the application side, up to 16 SEs can be played.
If you want to set limits on the number of playbacks, for example, a gun-shot SE is played up to 5 sounds, register a gun-shot in the SE voice limit group, and specify 5 to the limit number.
Using this setting, you can place the playback limit that the number of SEs other than a gun-shot is 16, the number of gun-shots is 5, and up to 16 sounds in total are played.
- Even if the gun-shot voice priority is high, it cannot be played with the priority that exceeds the limit number specified in the voice limit group.
Also, the voice priority value is consistently evaluated regardless of whether the Voice belongs to the voice limit group.
(In this regard, its specification is different from the Cue.)
Therefore, when setting 0 to the gun-shot voice priority and setting 1 to the voice priority for the other, a gun-shot sound cannot be played if 16 sounds other than gun-shots are already being played.
Relationship between Cue and Voice Playback Controls
- Playback mechanisms of Cue and Voice works independently.
On the other hand, a Voice is an element that can be contained within a Cue, and when the Cue is not played, voices within the Cue cannot be played as well.
- First, the Cue playback control works, and secondly, the Voice playback control works.
Therefore, you have to take extra care of the Category Cue Priority in each Cue and the Voice Priority contained within the Cue.
Limit process based on various parameters
- When limit processing actually occurs, the queue that is ultimately played is determined based on the various limit settings.
Each item has been explained with a specific example, but here we will summarize the general information.
- All limit settings have the following parameters in common.
- Priority type
For queue limit, only the priority type is used to determine when limit processing occurs.
- Last-come first: Prioritize queues that are requested later
- First-come first: Prioritize queues that are requested earlier
- Category queue limit and voice limit have the following additional parameters in common.
- Priority value
The higher the priority value, the higher the priority.
The limit processing in these cases is determined in the order of "priority value -> priority type".
At this time, priority type will be used to determine which queue has the same priority value.
Note that the "priority type" of the queue requested last will be used for limit processing.
If all queues subject to limiting have the same priority value and the priority type is last-arrival first, the queue that was played first will be stopped.
- The limit processing behavior under the following conditions is summarized in the table below.
- There is the same category "Common" and cues "A", "B", and "C" that belong to that category.
- The priority settings for Common are as follows.
- Category cue limit flag: True
- Number of category cue limits: 2
- Queue priority close distance priority: False
- Each cue is played in the following order.
Category cue priority setting for A<br>(value, type) | Category cue priority setting for B<br>(value, type) | Category cue priority setting for C<br>(value, type) | Result |
0, Last arrival priority | 0, Last arrival priority | 0, Last arrival priority | A is not played, and B and C are played |
1, Last arrival priority | 0, Last arrival priority | 0, Last arrival priority | B is not played, A and C are played |
0, last-arrival priority | 0, first-arrival priority | 0, last-arrival priority | A is not played, B and C are played |
0, last-arrival priority | 0, last-arrival priority | 0, first-arrival priority | C is not played, A and B are played |
0, last-arrival priority | 0, last-arrival priority | 1, first-arrival priority | A is not played, B and C are played |
- In the category cue limit, if cue priority close distance priority is enabled, an additional close distance priority determination is made using the distance between the 3D listener and the 3D source.
Cues that are closer to the 3D listener are given priority for playback.
In this case, the limit process is determined in the order of "priority value -> distance to the 3D listener -> priority type".
However, if the cue to be limited does not have a distance parameter to the 3D listener, it will not be subject to the close distance priority judgment.
Also, if the priority value and distance to the 3D listener are the same, the judgment will be made based on the priority type.
- The behavior of the limit processing under the following conditions is summarized in the table below.
- There is the same category "Common" and cues "A" and "B" that belong to that category
- The priority setting of Common is as follows
- Category cue limit flag: True
- Number of category cue limits: 1
- Cue priority close distance priority: True
- Play each cue in the following order
- A -> B
A's category queue priority settings<br>(value, type) | A's 3D information<br>(pan type, distance to 3D listener) | B's category queue priority settings<br>(value, type) | B's 3D information<br>(pan type, distance to 3D listener) | Result |
0, Last-arrival priority | 3D positioning, 50.0 | 0, Last-arrival priority | 3D positioning, 50.0 | A is not played, B is played |
0, Last-arrival priority | 3D positioning, 50.0 | 0, First-arrival priority | 3D positioning, 50.0 | B is not played, A is played |
0, Last-arrival priority | 3D positioning, 40.0 | 0, Last-arrival priority | 3D positioning, 50.0 | B is not played, A is played |
0, Last-arrival priority | 3D positioning, 40.0 | 1, Last-arrival priority | 3D positioning, 50.0 | A is not played, B is played |
0, Last-arrival priority | 3D positioning, 50.0 | 0, First-arrival priority | 3D positioning, 40.0 | A is not played, B is played |
0, Last-arrival priority | Panning 3D, None | 0, Last-arrival priority | 3D positioning, 50.0 | B is not played, A is played |
0, Last-arrival priority | Panning 3D, None | 1, Last-arrival priority | 3D positioning, 50.0 | A is not played, B is played |
0, Last-arrival priority | 3D positioning, 50.0 | 0, Last-arrival priority | Panning 3D, None | A is not played, B is played |
0, Last-arrival priority | 3D positioning, 50.0 | 0, First-arrival priority | Panning 3D, None | B is not played, A is played |
0, Last-arrival priority | Panning 3D, None | 0, Last-arrival priority | Panning 3D, None | A is not played, B is played |