A maquette is a kind of super-patch with an horizontal time dimension. It helps organize the musical materials computed in patches or built in the editors into higher level, time oriented structure. You may drag and time-position any object into a maquette window providing this object has an (explicit or computable) duration. That is : a musical object, a patch that computes a musical object, another maquette, a midifile object, a soundfile object, etc. A maquette can be played (audio + midi), or collapsed into an icon. In turn, this icon can be stored into a folder or dropped into a patch window where it may be connected to other modules.
A maquette can be thought of as a special patch where a time dimension appears. Maquettes icons are created on the Workspace through the command New Maquette in the Filemenu. Maquettes can be dragged into a patch window, where they come equipped with one output and two inputs. On the leftmost input, you'll connect a list of time offsets. On the rightmost input you'll connect a list of objects acceptable by the maquette. Another way of filling the maquette is simply to open the maquette editor by dbl-clicking the maquette icon and dragging objects in, from the OM Workspace, from patches, or from the finder itself.
Here are the classes of objects recognized by the maquette (i.e. objects you can drag to a maquette window, or you can input to a maquette icon).
An object can be directly entered in the Maquette editor by ctrl-dragging a rectangle. This object is then obligatory of class patch.
In the next example, a set of objects have been entered into a maquette :
By typing shift-M the display switches to music notation :
Dbl-clicking on the temporal blocks open the relevant editor. In the case of the interconnected patches, dbl-clicking will open a window where the patches will be accessible. In order to access to the graphical editor for the musical object computed by the patch (instead of the patch itself, option-dbl-click).
Now let us consider what happens with the two patches appearing at the bottom of the maquette. If we dbl-click them, we see the windows displayed below (in the same order from lef to right).
These are special Maquette patches (called temporal patches) that have been created automatically when patch-begin and patch-end have been dragged into (or given as inputs to) the maquette. Temporal patches encapsulate patch-begin and patch-end and add some equipment in order to control the behaviour of patches in the maquette :
In our example , we have added a supplementary output (output0) to the right most temporal patch (patch-end). We have added a supplementary input (input0) to the leftmost patch (patch-begin). Then, in the maquette editor window, we have connected the output of the rightmost patch to the input of the leftmost one.
When the maquette is evaluated, using the button, the rightmost patch is evaluated, its output is send to the input of the left most patch, which is evaluated in turn.
patch-begin takes one input (coming from patch-end) and merges it with a voice factory output.
patch-end computes a single voice and sends it to its output.
Now the final musical object computed by patch-begin is a merge of the musical object computed by patch-end and of a constant voice : if we otion-dbl-click on the temporal block containing patch-begin, we obtain :
The blue cross indicate that the command is not implemented yet.
Ctrl-click-and-drag in a maquette creates a new temporal patch inthe maquette.
Use the pop-up menu (command-click on the inside of the maquette window) to show/hide connections.
To add time constraints, option-click in the time bar in the bottom of the window. Small red flags appear. To constrain the start-time or the end-time of a block to be aligned with a flag, command-click on the flag and drag mouse with button pressed to the left side or the right side of the block. This creates a constraint connection. Several blocks (start or end time) may be connected to the same flag. When the flags are moved, or when the blocks are moved, the constraints will guarantee that temporal relationships (precedence, coincidence etc.) are kept. This may result in moving the blocks or stretching them.
To remove a connection, select the connexion line, then backspace. To remove a flag, select it then backspace.