As other musical objects, a sheet can be simply created in an OM patch. This can be done at several levels of precision and complexity.
You can insert in a sheet most of the standard OM musical objects :
Objects are to be connected to the <voices> input of the OMSheet in order to be included in it.
<voices> expects to receive a list, each element corresponding to one new sheet track.
In the example above, note that the NIL element in the input list produced an empty track in the OMSheet object created.
If you try to create a track from a polyphonic object (multi-seq or poly), the sheet will automatically split it at initialization and create a new track with each voice of the object.
Several musical objects can coexist (generally, sequencially) on a same track. To create several objects on a same track, just connect a list of objects instead of a single object to the first-level input list :
In compound tracks, objects are automatically positioned one after the other (an object starts right at the end of the previous one in the list). See next section for more advanced control on the position of the objects.
Maquettes can be embedded in OMSheets as other musical objects. Just use the maquette box in the "reference" evaluation mode and connect it as any other object box.
Note that the size of the maquette boxes may be distorted due to the non-linear graphical representation of the score in the editor.
If the maquette has a "synthesis function", the result will appear along with the boxes in the maquette representation.
For a more accurate control of the sheet structure (and in particular of the temporal structure), the internal components of the sheet can be created and assembled directly in the OM patch. The classes SHEET-TRACK and SHEET-TRACK-OBJ can be used for this purpose.
Build the tracks and connect them instead of simple objects :
SHEET-TRACK is just initialized with a list of SHEET-TRACK-OBJs.
SHEET-TRACK-OBJ is initialized with an object, a start time (or "onset") and an ID number (optional).
The other input of the OMSheet box (<patch-list>) allows you to programmatically set the patches used internally in the sheet.
Just connect a list of patch boxes in "reference" mode.