More
interaction!
Here
are a few hints for using the interactive features of BP2 in a set-up that
would comprise several computers with various MIDI software, and human
musicians interacting with keyboards or MIDI instruments.
Limitations
are mainly with MIDI channels: several channels are required to play different
instruments or to connect different keyboards, and a few remaining channels may
be assigned to "non-musical" communication. Don't forget to set MIDI devices
to OMNI OF
F
so that control messages are not audible.
Let
us look at a few instructions contained in "-in.abc1".
IN
Set computation time to 'v' F4 channel 15
instructs
BP2 that every NoteOn received on F4 channel 15 assigns a limit value to the
computation
time
of the current item. The limit is a function of the NoteOn's velocity. This
is a way to tell BP2 it should come up with an item ready to play before some
other process has been completed. (For instance another BP2 is currently
playing the preceding item and it is able to figure out its maximum duration.)
If
v
is the velocity of the NoteOn on key F4, computation time may not exceed 472
v
(in
milliseconds).
IN
Min 10 ticks in 3 sec C6 max 20 ticks in 3 sec C7 channel 15
instructs
BP2 that all keys between C6 and C7 on channel 15 contain a new setting of its
time base (and metronome). Here, C6 will set the time base to 10 ticks in 3
seconds, and C7 to 20 ticks in 3 seconds. Keys between C6 and C7 will assign
interpolated values.
A
'change tempo' instruction could be imbedded in a particular musical item.
Thus, BP2 may instruct its neighbours that the metronome has changed. It may
also change its own metronome using "_script(Tempo ... ticks in ... secs)". A
good idea is to follow the 'change tempo' instruction with a 'skip next item'
instruction using key D4 channel 15 as instructed by
IN
Skip next item D4 channel 15
IN
Set tempo controller 0 channel 15 range 4.5
The "Set temp
o"
controller is a MIDI pedal changing the metronome speed. "Range 4.5" is the
ratio between the maximum value and the minimum value. If the controller is in
its medium position (64) then the metronome value is the default one.
IN
Parameter K10 = velocity C8 channel 15
IN
Param K1 = controller #7 channel 15
These
instructions allow the setting of
control
parameters
K10 and K1, respectively, by MIDI devices: K10 is set to the velocity of a
NoteOn message on key C8, channel 15, and K1 is set to the value of MIDI
controller #7, channel 15.
Remember
that K1,... are global variables that may be used as
weights
in grammar
rules, arguments of
performance
controls
(e.g. _volume(K10), see §1.10), or comparison values in flags (see
§11.2).