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 OFF 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 tempo" 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).