Sequencer Objects
A Sequencer Object (or TraitLine Object) is an object edited on a single track of the sequencer in Drool's Editor. Sequencer Objects usually represent certain parameters of some other objects being modulated or turned on/off over time. They contain one or more data points, representing how the values of those parameters change over time. Sequencer Objects are almost ubiquitous and can reside in many different kinds of main objects, such as .lvl Objects and .leaf Objects.
| Length |
Data Type |
Meaning |
| variable |
string |
Name of the main object where the parameter can be found |
| 4 |
int32 |
Number of sub-levels under the main object to get to the specific sub-object/parameter. In general, if this number is 1, the parameter belongs directly to the main object; otherwise the parameter belongs to one of the sub-objects. |
For each sub-level:
| Length |
Data Type |
Meaning |
| 4 |
N/A |
The "magic number" identifying which sub-object or parameter is to be selected |
| 4 |
int32 |
If mutiple sub-objects share the same "magic number", this number \(n\) selects the \(n\)th sub-object, using zero-based numbering. If the "magic number" can uniquely identify a sub-object or parameter, this number is set to -1. |
After the sub-levels:
| Length |
Data Type |
Meaning |
| 4 |
int32 |
The index identifying the data type of the values in the data points. See Trait Type Trait for a list of allowed values. The data type depends on the parameter being modulated. |
Data Points
| Length |
Data Type |
Meaning |
| 4 |
int32 |
Total number of data points |
For each data point:
| Length |
Data Type |
Meaning |
| variable |
any of the Data Point Types |
The value of the parameter at a specific time |
The data type is defined in the header. All data points in the same Sequencer Object have the same data type.
After the data points:
| Length |
Data Type |
Meaning |
| 4 |
int32 |
Total number of displayed UI elements for data points on Drool's Editor. These are typically intervals represented by pairs of starting points and ending points. Each interval has a displayed value that is being applied over the entire interval. The displayed value should be equal to the sum of all values from the data points above that are within the interval. Typical examples are the pitch and turn parameters in a .leaf Object. The displayed values in these UI elements do not affect the actual data point values above. If this number is 0, the data points above are displayed "as is" (no special handling for display is required). |
For each interval:
| Length |
Data Type |
Meaning |
| variable |
any of the Data Point Types |
The starting point of an interval. This contains the value of the parameter displayed on Drool's Editor starting from a specific time. |
| variable |
any of the Data Point Types |
The ending point of an interval. Only the time is important; the value is meaningless. |
All UI elements have the same data type as the data points.
| Length |
Data Type |
Meaning |
| 4 |
int32 |
Unknown |
| 4 |
int32 |
Unknown |
| 4 |
int32 |
Unknown |
| 4 |
int32 |
Unknown |
| 4 |
int32 |
Unknown |
| variable |
string |
Unknown. See Intensity Trait for a list of allowed values. |
| variable |
string |
Unknown. See Intensity Trait for a list of allowed values. |
| 1 |
bool |
Unknown |
| 1 |
bool |
Unknown |
| 4 |
int32 |
Unknown |
| 4 |
float32 |
Unknown |
| 4 |
float32 |
Unknown |
| 4 |
float32 |
Unknown |
| 4 |
float32 |
Unknown |
| 4 |
float32 |
Unknown |
| 1 |
bool |
Unknown |
| 1 |
bool |
Unknown |
| 1 |
bool |
Unknown |