Play multiple phrases simultaneously?

Is it possible to play multiple phrases simultaneously, by using program change events?

I don’t want to use the keymap mode, but rather play phrase 01 as C-5, phrase 02 as E-5 and phrase 03 as G-5 at exactly the same time from Studio One.

Do you mean using CC midi commands ?

I’m asking. (But I’m assuming that’s the only way to control what phrase should be played, unless you use keymap mode)

Does Studio One come with an event list?

Because, then you should be able to control the order of CC messages, even when they a specified to occur at the “same time”.

I didn’t even know you could change phrases with midi cc, which number is it mapped to?
I use the instrument macros, but what bothers me about it is that you have to make the change before the actual line you want to change. What i mean is if you want a note on line 8 to play a different phrase than the last note, then you must make the phrase change on line 7 or earlier or else it won’t make the change in time. It would have been a lot more intuitive to make the change happen on the same line, but that won’t work. It’s especially annoying when you wan’t to make the change on line 00, because then you would have to go to the previous pattern to add the change command.

I didn’t even know you could change phrases with midi cc, which number is it mapped to?

It responds to a standard MIDI program change message, so you can send one using the Instr. MIDI Control device, for example. (Although it does seem to behave a bit strangely for me…)

We have a dedicated pattern command for switching phrases anyway: Zxx

Z00 will disable phrases, Z01 - Z7E will trigger a specific numbered phrase, and Z7F will enable keymap mode.

If you enable the note fx column you can play chords with different phrases simultaneously like so:

01 C-4 Z01 | 01 A#4 Z02 | 01 F-5 Z03

.

More info: Sample Command Variations

It responds to a standard MIDI program change message, so you can send one using the Instr. MIDI Control device, for example. (Although it does seem to behave a bit strangely for me…)

We have a dedicated pattern command for switching phrases anyway: Zxx

Z00 will disable phrases, Z01 - Z7E will trigger a specific numbered phrase, and Z7F will enable keymap mode.

If you enable the note fx column you can play chords with different phrases simultaneously like so:

01 C-4 Z01 | 01 A#4 Z02 | 01 F-5 Z03

.

More info: Sample Command Variations

That’s great, i just got used to the macro device, so it must have totally passed me by. Sounds quite more practical to use the Zxx command.

Does Studio One come with an event list?

Because, then you should be able to control the order of CC messages, even when they a specified to occur at the “same time”.

AFAIK, S1 doesn’t have an event list, no… So there doesn’t seem to be a practical solution to the problem.

Probably the least bad workaround would be to load multiple instances of Redux - one per each chord voice. But it ain’t pretty…

I made a MIDI filter (instrument midi forwarder) that inserts an additional Program change event based on what velocity the note has. This way, phrase triggering could be controlled by velocity value instead of tedious program changes. Or, so I thought…

It seems this doesn’t work either due to Redux not treating program changes in a predictable/sequential way. The Renoise MIDI monitor says that all events are happening in the right order, but Redux isn’t “fast enough” when it comes to program changes.

Couldn’t you instead send it to multiple midi channels?

Couldn’t you instead send it to multiple midi channels?

I’ve tried that as well now, but nope. It seems by appearance that Redux is simply too slow at changing the program (phrase). It only works if I modify the midi timestamp of the events, but I have to set them so high that there will be a strumming effect to ensure program changes to take effect.

I’m curious if Redux could be fixed, theoretically, to properly handle midi events and program changes sequentially (even when pushed on the same sub-millisecond), or if this is an unavoidable unpredictability that’s to be expected with anything midi related. Maybe it’s just me not understanding the finer details of the protocol.

PS. It’s also a bit strange why program changes wouldn’t slip by in a similar fashion when done in Renoise with a keytracked “Instr. Midi Control” device. Considering my problem above, this should also be a problem…

I’m curious if Redux could be fixed, theoretically, to properly handle midi events and program changes

I would have expected Redux to achieve what you want when hosted in a familiar host such as Renoise itself.

But there’s definitely something fishy going on, consistent with what you have reported.

I’m checking whether this is a regression of some sort with the newer Redux (v1.02).

Thanks! It would be awesome for me if it was possible. I’d then be able to use Redux for these type of chord voiced phrase-arpeggios in S1. And I might share some tool dealing with generating these… (should really be a part of phrasemate imo).

Totally. I guess you’re transposing those phrases that you want to trigger simultaneously?

Because otherwise, assigning the phrases to individual keys could be a workaround, not having to use multiple instances of the plugin.

Yes, that’s true.

All phrase notes are in C and phrases are triggered like C-4 Z01, E-4 Z02, G-4 Z03 (well, with program changes for Redux).

With additional scale locking as a decent rounding principle, you can even sneak in some “passing notes” or grace notes in.

I’m checking whether this is a regression of some sort with the newer Redux (v1.02).

I’ve installed Redux 1.01 and it seems to work slightly better, but still not very well. Modifying timestamps and introducing strumming is still unavoidable there.

I’m curious if it’s possible to control Redux programs via the “Instr. Midi Control” device, or if people have just done it to trigger random phrases without noticing that it’s “one step behind” in changing phrases.

Edit:

Furthermore, Redux 1.0.0 seems to work even faster with the actual program changing (less midi event timestamp delay needed to catch them all) BUT doesn’t retain polyphony when trying to run several phrases “simultaneously”. So all versions of Redux act a bit differently, but none of them as expected.

The same thing happens with S1 as host.