This maquette contains several BPFs. The coordinates and temporal position of each BPF is interpreted to produce a corresponding melodic sequence. The sequences are then merged into one chord-seq. The whole process is programmed in a synthesis patch.
The synthesis patch has been added in the workspace, dropped in the patch editor and assine to the maquette. The synthesis patch has :
The maquette's output returns the chord-seq produced by the synthesis patch. |
The value of the Maquette Self Input is returned to OMLoop's input.
At each step of the loop, listloop returns the value of a TemporalBox to slots. Each of these TemporalBoxes has a value , a vertical position – posy – and a temporal position – offset .
At each step of the loop, acum builds a sequence out of the chord-seq and a "blank" chord-seq.
Finally returns the whole sequence to a global chord-seq, which is connected to the Tempout of the synthesis patch.
Acum has three inputs :
Here, merger builds a sequence out of the two chords-seqs. This sequence includes the temporal value of the chord-seqs.
| Merger merges two sequences into one, including their temporal value. As it cannot merge something with "nil", we have assigned a "pseudo" empty chord-seq to the initial value input of acum. |
Once the maquette is evaluated, the result of the synthesis can possibly be visualized with a chord-seq box connected to the maquette's output. When the maquette, or a selected TemporalBox is played, it renders the interpretation of its values by the synthesis patch.
Here, as in most cases, the same program can be designed without a maquette, if one is interested in a single abstraction level.