i don’t think this is possible. softcut, the tape like code that otis is built on, is very much “tape like”. you can stack things up, but removing them requires clearing the tape. fwiw, this is very similar to the way the cocoquantus works, to remove material you have to clear the recording/record silence over it.


I have a request, if possible :slight_smile: Does anyone here have both, Otis as well as Cocoquantus 2? I have norns obviously and have fallen in love with the Cocoquantus, so I’m really close to ordering it, but since it is a very expensive purchase, I thought I’d ask here, if someone has both and would have a few minutes to do a A/B between the two (with the settings on Otis adjusted to get as close to coco as possible).

I know coco is its own thing for sure, but just wondering whether I can justify spending 1500 € for it :slight_smile: Thank you so much!

1 Like

I have both and while they do similar things the cross modulation with the pedal section of the Coco, as well as the using it as a sounds source itself makes them very different. I LOVE Otis and in fact is what got me interested in CL altogether, but they produce very different sounds. That said, I can A/B something for you soon (maybe tonight or tomorrowish).


Thank you so much! Really looking forward to it, and many others here would be interested in it as well, I’m sure

Main difference is the modulation section. The coco has a chaotic feedback oscillator for modulating it’s parameters and to function as a sound source. Otis “just” has regular lfos…

1 Like

And if you have a grid, all the playability that comes with that. You can touch the banana jacks to the skip/flips on the actual device but Otis w/ grid does offer a unique purpose built performance aspect that adds a another dynamic aspect to the LFOs


Hi! I just updated otis from 1.3 to 2.0 and norns firmware to the latest, and now all of a sudden otis has a lot of pops and clicks. For instance there is a loud pop when I clear a buffer, and the pop gets recorded back in, and loops. Also when I just start up otis it grabs about a half a second of whatever sound the previous script was playing and starts looping that. Anyway… otis was clean and smooth before these updates. Has anyone else experienced this behavior? Thank you!

definitely the first i’ve heard of this. did the issue persist through a restart of norns?

1 Like

I’ve also been experiencing this when using otis, but hadn’t gotten around to investigating why. Although, whatever is causing my pops I know is unrelated to recent updates because I’ve been getting these pops when clearing buffers and enabling recording since I first downloaded the script last year.

Thank you for a quick reply! Yep, restarted a few times, and deleted/reinstalled otis a few times through both cyberduck and maiden. Will keep digging.

i’ll give otis a run tonight and see what shakes out!

its pretty much to be expected that clearing a buffer while recording to the buffer will produce discontinuities in the buffered signal. (translation: clear when not recording to avoid clicks.)

softcut buffers should be cleared between script loads, but i’ll check it. maybe we stopped doing that for some reason (would have been long ago,) but also there could be a race condition or delayy especially if previous script is really heavy. (buffer operations are asynchronous with the audio thread.)

these are softcut issues, not otis issues, and none of that behavior has changed at all recently.


maybe i should change the buffer clearing behavior in otis? something like “set recording level to zero, then clear, then reset the record level”?


I reinstalled otis 1.3, and it was even more noisy and glitchy. So, at least on my system something happened when I went from norns 2.2 to 2.7 today. I’ll go back to 2.2, see what happens.

Did you get a chance by the way? Would love an A/B between the two, a blind test to see whether we prefer Otis or the Coco :slight_smile:

that would be a way to avoid clicks i suppose. or you can (i would) leave it to the user.

the issue i’d have with what you propose is that it attempts to account for delay produced by an indeterminately long “backend” process (waiting for buf worker thread to finish clearing the buffer) by introducing a fixed delay into your UX. in my experience that’s a bad pattern for a couple reasons. first is that “backend” behavior may change, you have no control over it. second is that delays in UX are just annoying. but yeah, it can work here (remember to factor in recpre_slew time, and - obvs - only engage that behavior if you’re actually currently recording that voice.)

we can provide more tools to deterministically manage UX and backend state synchronization. in this case we could add a callback for buf worker job completion. (i proposed this a while ago but it didn’t seem like anyone wanted it so i didn’t bother, but it’s straightforward. i’m actively working on v3 right now and it will provide much more direct interface between lua and softcut state, so will be sure to kkeep this case in mind.)

you flashed the new image and are getting audio glitches? this is an issue to share on the image release thread. it is a big change and a huge amount of kernel update work. instead of 1 image, we now have 5 images (factory, plus 4 flavors of shield/rpi version combo.)

since our test surface has increased 5x its very helpful to get feedback. be sure to say what hardware you are using (and ensure you flashed the right image to it). of course any and all REPL/systemd output is helpful.

and finally note that the new version includes an audio load and xrun indicator on the home screen. that is very useful to know if a glitch you’re experiencing is due to CPU load or something else.


Here you go:

First 30ish seconds are Otis. The next are Coco. Both with the same sample playing from the OP1. In both cases I pitched the right side down an octave. I noticed back in Aug '21 you did some A/Bing. Those settings you posted were a little more aggressive in the bit reduction and sample rate than I used. Nevertheless, I hope that helps.


Thank you so much for that. Yeah they’re quite different obviously, I always have the issue with Otis that when I add the noise, it immediatelly becomes too loud with no way to adjust it well. And that digital harshness…hmmm I might look into Coco anyways

well… one of these things is software that is easy to modify

for example one might replace this line

[ otis/Engine_Decimator.sc at master · justmat/otis · GitHub ]

saturator.set(\hissAmount, msg[1]);

with these lines

var amp = msg[1]*0.1;
if(amp>0.001, {amp = amp.linexp(0.001, 1, 0.001, 0.25)});
saturator.set(\hissAmount, amp);

for something more like an audio taper with a (to me) more reasonable maximum.

you may also like to experiment with other flavors of noise…

(i am not “taking sides” of course)

playing with otis, one thing that happens is that the immediate switch to the engine->softcut routing can cause decaying sounds from previous supercollider processes to be recorded. (glitchily, because then the engine gets swapped.) i dont mind it.


i like this, thanks for sharing! tbh, i never really think about “usability” in regard to param ranges/response curves. many, if not all of my scripts could likely benefit from some parameter tuning. :cowboy_hat_face: