there are definitely ways to do this! i’ve been slowly working on an update :sweat_smile: i’ll add this to the list :grin:


I just read that you can use Otis with other scripts. I couldn’t find details above? Can you please direct my reading TY again @Justmat

1 Like

no worries of course and no rush! i am perfectly capable of using the native norns knobs for now.

1 Like

I will edit this with a better answer tomorrow.

Until then, check out bounds or oats for examples :slight_smile: (look for references to tlps for the otis looping setup)


Thanks heaps. I had a play with these fantastic scripts. I see they are packaged at your end and I remember some discussion of supercollider and softcut scripts being used simultaneously which it appears you are doing here

So, otis includes a file called tlps.lua (two loops) that sets up all the softcut stuff. It’s super easy to drop this into other scripts. just add a

local sc = include "otis/lib/tlps"

at the top of your script, and put a


in your init function. This will get you otis style softcut setup and parameters. You’ll still need to code in encoder/key interactions if you want them.

Oats is a good example of using otis with a supercollider engine. I basically just mashed boingg and otis together, UI’s and all :slight_smile:


Sharing a modification I’ve been using that adds monobright 64 Grid control… tested in a Zoom ambient jam last night :slight_smile:

64.lua (15.3 KB)

Controls are:

R r . F S . . C
D . . . . . . I
. . . . . . . .
. . . . . . . .
R r . F S . . C
D . . . . . . I
. . 1 2 3 4 . .
. . o o o o . .
  • R record enable
  • r record disable
  • F flip
  • S skip
  • C clear
  • D decrease rate (follows octave/free setting, would be nice to be able to hold down for free mode)
  • I increase rate
  • 1234 enable LFO at index
  • o disable LFO at index

Loop L is at the top, Loop R is below.

All touchable buttons are lit, and the LFO/record indicators light up depending on state.


Being a former coco owner I can say there is certainly some of that magic in this patch!!! wow.

Ive wanted to start a coco thread and somehow missed this patch until today. Thanks so much!


Whenever I’m in a situation where I’ve got only a handful of gear and I’m in a bit of a rush to record/perform something (i.e. can’t really begin preparing a lot of things beforehand) I find Otis to be the ultimate tool to turns those sessions way better.

I’ve been traveling around Finland a lot lately with small amount of gear, so I’ve decided to film some small improvisations here and there. Here’s one where I play hammered dulcimer, reindeer bells, Cocoquantus and Otis:

And I think that Cocoquantus and Otis complement each other really well :slight_smile:


I found the SK-5 that was mine as a child at my parents’ house today. Had fun doing a little Otis jam with it.


I just noticed that Otis ignores monitor level and always passes input to output. Is it by design or some kind of bug?

I’ll chick it out today, hopefully. :slight_smile:

you could try adjusting the various input levels, sc engine level and sc input level to see if that gets you what you want.

It silences everything. Could not find a way to hear just the loop :slight_smile:

Just sat down with otis. Turning monitor down works for me. I hear none of my direct input, until the tape rolls back around.

I remember having the same problem you did, and tweaking the sc engine / input levels as advised by @Justmat finally made it work out, but I agree it’s not an ideal “normal” behaviors.

Ah sorry didn’t see your post @Justmat maybe you’ve updated it since the last time I used it and we talked about that ?

I guess messing with softcut in orca broke something.

I’m having the same problem as @kveye here, didn’t messed with softcut in orca or any other script, it’s “default” behavior for me. Can’t find a way to silence input level and only hear the loops, it would make it easier for small setups as for now I’m forced to use an external mixer to mute my inputs.

I thiiiink with the way that the routing works, the only way to block out the dry signal is to bypass the fx engine + turn monitor down. to my knowledge there’s no way to send the engine output only to softcut.

1 Like

How complicated (and meaningful maybe there’s another better way to add this functionality through monitor level) would it be to implement a dry/wet parameter ?

Is it normal for engine signal to contain input signal?