How to Randomize Different Octaves Differently in One MIDI Stream

Hi.

I have a plugin (Instachord2) which accepts different key switch ranges for Chord selection and Pattern selection.

For example, incoming notes C3-B3 select from a set of chords, and incoming notes C5-B5 select from a set of patterns. (As it happens, I can provide those incoming notes either on the same channel, or on separate channels, so keep that in mind …).

Now, the goal is to be able to randomize chord selection and randomize pattern selection at the same time, across different ranges.

To understand why, consider this picture:

The above shows a typical Instachord2 preset. Of note: there are more active patterns (7, on the right) defined than there are active chords (6, on the left). Hence it will not do to have a single definition of randomization range applying to each if I want the randomization results to always select both an active chord and an active pattern.

So, how can this be achieved?

Logically, I could prepare separate “driving” tracks of notes for each of chords and patterns, apply the appropriate randomization ranges on each input track, and then merge the outputs of those two tracks to be the input for the plugin. However, and correct me if I am mistaken, Cubase offers no way to merge exactly two tracks and send that result to another. (Dang!)

Now, if I had full control of the programming for logical edits/tranforms then I could simply say "randomize incoming note C3 across the range C3-F3, and also randomize incoming note C5 across the range C5-B5 (while constraining to C major scale). It does not seem to be possible to exercise this level of simultaneous control with the tools at hand, but if there is a clever way to do it, I certainly would like to know.

Thanks for reading!

Hi,

You can use multiple Logical Editors/Transformers. Set the filter of every single Logical Editor/Transformer to the specific octave.

Hi Martin. Thanks for your reply!

I was under the impression that if I put two Logical Editors/Transformers in sequential slots in the MIDI Inserts section of a track that they would be acting in series. Is this incorrect? Are those 4 slots actually in parallel?

Hi,

You are right, they are in series.

OK, I have figured it out - a 3-track solution!

We can’t do all the needed processing at-once on a single track, but we can do pattern trigger processing on a first track, route that to the input of a 2nd track where the chord trigger processing is done, and then route that ouput to Instachord2.

Using Cubase capabilities, here is the ‘Latch/Rand for Ptn’ track #1 processing:

and here is the ‘Rand for Chords’ track #2 processing:

As can be seen, each track has it’s own logical Transformer, operating on (only) a single channel, while leaving the other channel untouched.

The separate Transformers on the first two tracks can be configured with different randomization ranges as might be required to match up with a given Instanchord2 preset.

To get the initial channel splitting and latching the first track is configured with DDME MetapluginSynth hosting PIZ channel filters and MIDIKARVAL Midi Latch.

The processing chain above operates on incoming MIDI note triggers from two octaves, on two different channels.

Exactly as shown, the result is for each measure a randomly chosen chord, and a randomly chosen pattern from the Instachord preset that is loaded

Of course if you draw your C notes with different lengths than those will be the intervals at which the random changes will happen.

In fact, you can even manually change the Instachord presets “live” on-the-fly and it all continues playing just fine, picking up on the next incoming pattern trigger.

1 Like

Either or both of the processed trigger outputs (which would be used to re-drive Instachord2) or the final Instachord2 MIDI output (which would be connected directly to an instrument to sound it) can be captured by cycle recording, and so if the random process spits out something you want to “print” for posterity, there it is!