Specifications
converter 1.5
2000 - 2005 urr Sound Technologies Inc.
54
•
go to the bytecheck parameters menu for this operation (F6). Set byte check #1 byte number (the
BC#1 byte number
parameter) to 1 – this tells the processor to check the first data byte in any
note on message whose statusbyte matched our operation’s message type (we chose 144). In this
case, the 1
st
data byte of a note on message is the note number.
•
set byte check #1’s
check operand
parameter to the ‘is in range’ condition, the
low value
parameter to 0, and
high value
parameter to 59. This specifies that any note value below middle C
will fit this condition.
•
set byte check #2’s
byte number
parameter to 2 (the note velocity data byte), the
check operand
parameter to ‘is in range’, the
low value
parameter to 1 and the
high value
parameter to 127. By
doing this, we have provided the additional condition that only note on messages with a velocity
higher than zero will be accepted for transformation (in this case, sent for output on midi channel 4).
•
go to the transform parameters menu (F7), set the transform #1 byte number (the
X#1 byte
number
parameter) to zero (the status byte), set the
transform operand
parameter to the ‘set to’
function, and type 147 into the
transform value
parameter. This first transform changes the
statusbyte of all midi messages that matched our two byte checks to 147 – a note on message on
channel 4.
Now we have to create a second operation to convert note on messages with a velocity of zero under
middle C into actual note off messages, and transmit them to channel 4 to avoid stuck notes.
•
Press [alt] – [c] to copy the current operation.
•
go back to the operations list by pressing F8 twice. Move the cursor over the next empty operation
slot. Press [alt] – [p] to paste the operation we just created and copied into this new slot. Select our
new operation, enter the operation parameters menu, and change the
operation name
to ‘note on
v. zero’.
•
go to the bytecheck parameters menu [F6], and change byte check #2’s
byte number
,
check
operand
, and
low value
and
high value
parameters to 2, ‘is equal to’, 0, and 0 respectively.
Leave the first byte check as is (since we are still working with notes below middle C). The second
byte check singles out all notes with a velocity of zero. Note that the high value parameter is
unused when the check operand is in equality mode (‘is equal to’).
•
go to the transform parameters menu [F7], and ensure that transform #1’s
byte number
,
operand
,
and
value
parameters are 0, ‘set to’, and 131 respectively. This transforms a note on velocity zero
message from channel 1 into a note off message on channel 4.
Finally, we must implement an operation to send the appropriate incoming note off messages to
channel 4 so as to avoid stuck notes that never receive a note off message.
•
go back to the operations list by pressing F8 twice. Move the cursor over the next empty operation
slot. Press [alt] – [p] to paste the note on operation still in memory. Select our new operation and
enter the operation parameters menu. Change the
operation name
to ‘note off ch. 1’, the
message type
to 128 (note off channel 1),
# of byte checks
to 1 and
# of transforms
to 1. By
setting the # of byte checks parameter to 1, we de-activate the second bytecheck which is not
needed in this case. For clarity’s sake, you might want to set the parameters for byte check #2 to
zero.
•
go to the transform parameters menu, and change transform #1’s
byte number
,
operand
, and
value
to 0, ‘set to’, and 131 respectively. This transforms the note off message’s statusbyte to a
note off message on channel 4.
The midi processor is now programmed to perform a midi split on all incoming note data on midi
channel 1. If it doesn’t seem to be working, make sure the processor is turned on in the realtime
settings menu (by pressing [alt-escape] followed by [F6], or by pressing [F8] to back up through the
menu hierarchy until the root menu appears).
From this example, you can see how additional transformations on the notes below middle C could be
performed. For instance, a transform could be set up to transpose those valid note messages down an
octave (or any value), add an offset to their velocity to ensure a minimum volume, or change a
keyboard’s velocity response curve by using the multiplication or division operands on the velocity data