(layout comp1 (seq a b (mix c d@1)))defines a sequence of three sections: A, B, and the third section is the mix of C and D in which D starts 1 second after C.
The next example:
(layout comp2 (mix a@1.5 (seq b c)@2 d))defines a mix of three components: A, the sequence of B and C, and D. The @ appended to some components defines a local start time offset relative to other containers in the mix.
layout name {directive} [Macro]
name is the name of the layout, and directive is a
single "top level" seq or mix directive:
seq {directive}+
mix {directive}+
Each seq and mix directive may contain
sub-directives, which are the names of existing containers or other
seq and mix directives. Inside a mix directive, any component may be
optionally tagged by a start time offset @time, where
time is the initial start time offset of the component in the
surrounding mix. For example, foo@5 gives Foo a start time
offset of 5 seconds and (seq d a)@.3 a seq directive a start
time of .3 seconds. Components begin at mix time 0 by default. It is
an error to specify a start time directives outside of a mix
directive.
(let ((s (series 0 7 8 15 16 11 10 5 6 13 14 21
from (notes c4 fs5 fs4 c4)
forming (items p i r ri)
returning note)))
(dolist (x '(p i r ri))
(thread (name x) ()
(doitems (n s)
(object midi-note note n amplitude .5 rhythm .25
duration .2))))
(layout x (seq (mix p i) (mix r ri@1)))
(layout y (mix (seq p ri)@.75 (seq r i)))
(layout z (mix (mix i r ri)@1.25 p)))
Stella [Top-Level]: seq p,i,r,ri
Length of pause between selections: (<cr>=None) 1
Start time offset: (<cr>=None) <cr>
Stella [Top-Level]: seq x,y,z 1,1,0
Stella [Top-Level]:
Next Chapter
Previous Chapter
Table of Contents