Entering the arguments of performance controls from MIDI

In the same way notes can be "typed" from the MIDI keyboard, the arguments of performance controls may be captured from a MIDI device. Suppose that you entered "C5 D5 F5 G5 C6 A#5 A5 G5" in the "Data" window. Select "Pick performance control" in the "Edit" menu and insert the following controls (or load file "-da.checkCapture"):

_chan(•) _pitchrange(•) _volumecontrol(•) _volume(•) _vel(•) C5 D5 F5 _vel(•) G5 C6 _mod(•) A#5 _pitchbend(•) G5 F5

Arguments marked by a period need to be replaced with numeric values. Type "1" for the argument of "_chan" and "200" for that of "_pitchrange", assuming that the pitch bender of the MIDI device is set to vary ± 200 cents, or another value if it is set differently. (Each semitone is 100 cents.)

Type cmd-j. The cursor takes its "keyboard" shape . Click the word "_pitchbend". The argument of "_pitchbend()" gets hilited. Now move the pitch bender. BP2 automatically converts in-coming pitchbend messages to cent values (within the specified range) writing the result as an argument of _pitchbend. Of course it is a good idea to play A5 or G5 while you are moving the pitch bender, so that you can hear the effect.

This process works if the pitch bender is sending messages to the specified channel. Otherwise, click "_chan", move the bender, and let BP2 record the channel number.

Hmmm. Great, but if I release the bender the final value is always 0, isn't it? The solution is to hit the space bar or click the mouse anywhere (outside the word "_pitchbend"...) as soon as the desired position has been reached.

Do the same with modulation: click "_mod" and move the modulation bender while playing notes. You can adjust the argument for "_vel(•)" similarly: BP2 records velocities of in-coming NoteOn's.

For volume, first click "_volumecontrol" and move the volume pedal to record its number (most likely 7). Then click "_volume" and record the pedal position.

Performance controls whose numeric arguments may be interactively entered are:

_chan(), _vel(), _mod(), _press(), _volumecontrol(), _pancontrol(), _volume(), _pitchbend(), _pan().

Values recorded in the last three ones depend on preceding "_volumecontrol()", "_pitchrange()" and "_pancontrol()" instructions respectively. Instructions "_volumecontrol(x)" and "_pancontrol(x)" instruct BP2 that controller x is the one modifying volume or panoramic respectively. Default arguments are 7 for volume and 10 for panoramic.