A
kind of cellular automaton playing a kind of Turkish music
Load
"-gr.koto
3"
and type cmd-option space. Check "Non-stop improvize", "Use each
substitution", and uncheck "Display items":
Fig.24
Controlling production -- The "Settings" dialogs Now
click "Produce items..." or type cmd-r. Since you selected "Use each
substitutio
n"
you will see and hear all intermediate work strings produced by subgrammar #2.
(See "SUB" grammars, §4.14 of the reference manual.)
All
variables (like "X" and "Y") in the workstring are ignored when interpreting it
as a musical item. Therefore, only terminal symbols such as 'a', 'b', 'c',
'chik'... will produce sound-objects.
While
BP2 is improvising you may hold down the mouse-button to interrupt the process.
This makes it possible, for instance, to uncheck "Show graphics" and check
"Display items". Now all items played by BP2 are also written to the "Data"
window.
Buttons
appearing at the bottom of Fig.24 also belong to the "Settings" dialog:
•
"Use
MIDI in/out"
allows BP2 to send data to MIDI devices (including QuickTime music, if you are
using Opcode OMS) and to receive messages from external MIDI devices (including
the Inter-Application Communication bus, if OMS is installed). If this option
is not set, then at least either "Write Csound score
s"
or "Write MIDI file
s"
should be checked.
•
"Synchronize
start"
keeps BP2 waiting for either a NoteOn message, a
"Start"
or
"Continue"
MIDI messag
e,
or a mouse click, before playing any item. It will wait for a NoteOn if and
only if the key and channel are defined in the "-in.abc1" interaction file
(see §6).
•
"Compute
while playing"
tells BP2 that it may go on computing items while the current one is being
played. This is a good way to ensure continuous output, but remember that
interactive commands do not affect items already queuing in the MIDI buffer.
For instance, a "repeat" instruction will often not repeat the item currently
being heard, but the one being computes.
If
this option is off in continuous improvisation, BP2 keeps a minimum number of
items in the queue. For this, it remembers the maximum computation time of
items already produced. Let
tmax
be that time. While the item is being played, BP2 will wait until the duration
of the part still remaining to be played is a little more than
tmax.
Then it proceeds with a new item, thus hoping that it will just be ready to
play it when the preceding item has been played entirely (see "-gr.Mozart"
§5.4).
•
"Interactive"
sets the interactive mod
e
on. The "-in.abc1" file is loaded and the MIDI input is used for controlling
BP2 (see §6).
•
"Reset
rule weights"
is meaningful only if there are dynamic weigh
t
assignments in grammars, e.g. a weight written <100-20> in a rule that
takes decreasing values 100, 80, 60,... every time the rule is used. (See
reference manual §4.7) If it is on (default setting) then weights are set
to their initial values each time a new item is computed from the start string.
•
"Reset
flags"
is meaningful in the context of programmed subgrammars (see §11).
Normally it is necessary to delete all existing flags before generating a new
item, but the opposite option may sometimes be useful.
• When
"Ignore
constraints"
is on, the time setting algorith
m
does not take topological properties of sound-objects into consideration (see
Bel 1990b,1991,1992, or reference manual §3-5).
•
"Write
MIDI files"
gives the option to save items as MIDI fil
es
after playing them (see §14.1).
•
"Write
Csound scores"
gives the option to save items as Csound scor
es
after playing them (see §17).
Other
buttons shown on top of Fig.24 have the following effects:
•
"Cyclic
play"
produces a single item and plays it forever.
•
"Use
each substitution":
this flag is used in "SUB" subgrammars (see §4.14 of the reference
manual). If it is on, the current work string is played on the MIDI output
after each substitution. Polymetric structures are evaluated and variables are
ignored. If it off then only final items are played.
•
"Time
setting display",
"Time
setting trace"
and
"Time
setting step"
are optional controls of the time setting algorithm. These have been used,
for instance, in example "-da.checkTimese
t"
(see §2.2 and §13);
•
"Trace
Csound",
when checked, displays the Csound score on the "Trace" window while it is being
recorded to a file.