Multicycle - Multitrack MIDI looper/sequencer for ORAC (BETA)

I’m posting a beta of a 12 track MIDI looper for ORAC I’ve been working on.
The goal was to make it easy to record multiple loops across many ORAC modules or external synths/drum machines, without needing to do any menu diving.
The module has one central control page with visual feedback where you can play, create and control loops for any ORAC module or MIDI channel. Loops can be played/muted and transposed, so can be used to build longer performances. All sequences are saved with the ORAC preset, and it has features like overdub, quantization and transpose.

You can download the module here:
https://github.com/adbrant/midicycle/raw/master/releases/multicycle.zip

The folder should be unzipped to /usbdrive/media/orac/usermodules/utility/
The module needs to replace the clock module, in slot S2.
There’s a full readme here:
https://github.com/adbrant/midicycle/blob/master/README.md


Let me know if you have any questions, issues or feedback!

10 Likes

Hi ! The idea is brillant ! I’ve had a brief look this afternoon and got confused by the shortcuts using the organelle keyboard. Need to dive deeper I guess. Thank you for this work !

1 Like

This sounds fantastic @WyrdAl, thanks so much for sharing it!

Very cool, thanks a lot for that!! So handy now to sequence tracks on the fly! Is it possible to implement that instead of seq3 in normal patches that use seq3 as well? Other question… is it possible to quantize the tracks individually?

It’s probably not straightforward to replace seq3 with this. You could try using the ORAC easter egg patch to use a non-ORAC patch with this though:
https://patchstorage.com/orac-2-0-easter-egg-patch/
I was on the fence about adding individual quantization per track, I do see why it would be useful, but it adds a lot of extra controls. It shouldn’t be too hard to implement so I’ll look into adding it for the next version.

I’ve just updated the instructions to try and make them a bit easier to follow (mostly the section under “Main page controls” instructions for the keys shortcuts):

A video tutorial would probably be best to explain how to use it but I don’t have a good setup for that right now. Let me know if you’re getting hung up on trying to do anything specifically!

cool, the easteregg hint was nice, didn’t think of that:) thanks!

I spent the afternoon playing with this, absolutely love it. Thank you!

Oh wow, don’t know how I missed this. ty so much @WyrdAl
Any chance of adding a master gate length per track? :slight_smile: :slight_smile: :slight_smile: :slight_smile:
If it could receive transport I think it would be game changer for the organelle as a whole…

1 Like

Maybe it’s me but tried it with the scope module on P2 and the visual feedback disapeared.

That happens for me as well with the scope loaded any slot. Not sure why, other graphics patches seem to work ok with it.

I didn’t really consider gate length, though I can see how it would be useful for quantized tracks. I think it might complicate the interface a bit too much though.
I think a fixed gate length converter would be a good standalone module, which could give you the same functionality.
That would be a pretty simple module to make (you’d just need to send note ons to the ‘makenote’ object, which you can configure with the note length you want).

Transport is bit hard to implement as the sequencer doesn’t know where the loops are supposed to start/end, which is why the loops just pick up where they left off when you save. I could let transport pause and play the loops, but they might not be in sync with other gear.

1 Like

hmm, any ideas whats the difference between scope and the ones that work?

id have thought if scope was blanking the display incorrectly it’d also mess up non-graphic patches?

Just took a look while running, I think it’s because whenever the page/module changes, scope sends a ‘0’ to OscOutGate unless its own pg_main. I disabled this and MultiCycle displays correctly. I could make MultiCycle send ‘1’ to OscOutGate right before it prints.
BTW I’m writing to the screen using direct sends to ‘screenline3-5’. I assumed this works as thats how easter egg modules work, but let me know if there is a more compatible way to do that.

Heres a new beta release (will probably be final unless any issues are discovered)
It now has an ‘Armed Recording’ mode, which works morel like seq2, and is easier to use if you are not using an external MIDI keyboard (its enabled on the third page).
If enabled, instead of aux + the lower keys capturing the LAST played notes, they will
arm the track (represented by the letter A).
Once a new note is played the sequence will start recording (represented by the letter R) and automatically stop after the loop length and start playing.

Also now you can set quantization independently per loop using the last three pages (-1 is the global setting), and a couple of other fixes like the display printing when scope object is also used.

Update: Fixed a nasty but fairly rare bug that could crash the patch when overdubbing. multicycle_beta3.zip (1.7 MB)

5 Likes

Hi, Thanks for the patch, i love it and use it quite a bit. Had a feature request for track volume.

I know the number of pages will increase, but just like the individual transpose and quantization control it would be very useful to have an individual loop volume control too.

Thanks for the great work.

Unfortunately this patch doesn’t record audio, it records and sends midi messages to other modules.

Tried this out for the first time tonight and it is amazing! 10/10, easy!
I have one question though; If you have two loops that you want to switch between, how does the patch decide when to stop nr 1 and start nr 2? Is it like “beat x after you stop/start a loop”?
I tried to get a smooth transition between two loops but it was pretty hard to get the timing right.

I’m curious as well. I’ve been transitioning an eighth quaver before the “1” of my beat if that makes sense.
Found that trying to transition on the beat doesn’t always work reliably.

It is an incredible orac module though.

Good question. You should try to transition a bit before the beat, otherwise you might miss the first notes of the new loop (and if you’re turning a loop off you might accidentally still play the first notes).

The play/stop button takes effect immediately, but anything that should have played right before the loop turns on, even by 1/24 of a beat, will be missed.