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!

7 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 !

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…

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.