This patch has two purposes:
– Make it easier to map and select properties of CHANCE modifier pipe
– Demonstrate an easy application of MIDI TRHU loopback idea which can be used for other purposes as well.
Prerequisite: to use this patch your MIDI controller must be able to change range of CC values sent by knobs. Controllers like Arturia KeyStep 37 allow you to customise value ranges of knobs, for an example change the range from standard 0..127 values to 1..19 values.
Here is how it works:
1. Problem solved by this patch: if you map a regular MIDI CC knob that sends our 0..127 values to Period property of CHANCE pipe, use of the knob to select desired value is not easy:
a. To select 1/64 value the knob must send 1..6 CC values
b. To select 1/32T, the knob must send 7..13 values
c. To select 1/32, the knob must send 14..20 values
d. …you get the idea. It’s hard to select desired Period of CHANCE pipe dialling through so many number ranges.
3. Patch idea: transform and map one value of controller’s knob to one value of Period property, like this:
– Knob value 1 selects 1/64 value of Period property via MIDI mapping
– Knob value 2 selects 1/32T
– Knob value 3 selects 1/32
– Knob value 4 selects 1/16T
– Knob value 5 selects 1/16
– …
– Knob value 19 selects 64 bars value of Period property via MIDI mapping
4. To accomplish this we need to use MIDI TRHU loopback. The idea is very similar to physical loopback, where a physical MIDI cable connects one MIDI OUT port on Midihub to one MIDI IN port. Messages sent to the OUT port go back to Midihub via the IN port. Before they are sent out, we can process them inside of Midihub to other MIDI messages which can be mapped any pipe parameter in more useful way. The THRU loopback is the same idea, but without a cable which will use up a pair of ports. You send out MIDI to an instrument which has MIDI THRU enabled, and send it back to Midihub. If this is an instrument that sends out master clock, you would probably connect it this way anyway.
5. Patch details
a. Row 1 implements the main idea of the patch (see 3 above).
i. We receive MIDI from your MIDI CONTROLLER which has the CC knob that sends out 1..19 values. In this patch example, the knob is sending out CC3 on Channel 16.
ii. We use filter to pass only MIDI CC messages.
iii. TRANSFORM pipe is listening for CC3/Ch16 with 1..19 values and replacing it with CC11 on Channel 15.
iv. Then we RESCALE 1..19 values to 0..127. This will make MIDI mapping to Period property work correctly.
v. Finally, we send MIDI to the instrument with THRU enabled, to create the loopback.
b. Row 2 adds scaling for Chance and Timed Chance properties of CHANCE pipe. We can use the same patch idea with two more CC knobs on the controller which are programmed to send out 1..100 (%) values. Yes, selecting “50%” Chance by dialling “63” (12’o clock) on the controller is not too bad, but why not make this a bit more elegant?
i. First two pipes are the same as in row 1
ii. TRANSFORM is listening for CC1 on Channel 16 and replacing it with CC9 on Channel 15 which will be mapped to Chance property of CHANCE pipe.
iii. Similar TRANSFORM is listening for CC2 on Channel 16 and replacing it with CC2 on Channel 15 which will be mapped to Timed Chance property of CHANCE pipe.
iiii. We SCALE the values from 1.100 to 0..127 for proper mapping.
c. Row 2 contains the actual CHANCE module which we will control with CC messages processed by the THRU loopback.
i. Chance property should be mapped to MIDI FROM THRU INSTRUMENT Ch15 / CC 9
ii. Timed Chance – mapped to MIDI FROM THRU INSTRUMENT Ch15 / CC 10
Period – mapped to MIDI FROM TRHU INSTRUMENT Ch15 / CC 11
I hope this is clear and useful :-)