Thanks. There are two layers here. One with guitar into otis and one with vocals through a m4l autotune device - otis


ok i’m gonna need that autotune if you don’t mind sharing

very gorgeous sound on that track!

1 Like

Absolutely - it’s this one:


wow @Justmat this update is amazing! otis was always one of my favorite scripts but since the grid implementation it’s on another level. One thing I think could be sweet is if the grid keys between the speed up and speed down keys were mapped to specific speed increments, similar to MLR. I’d find it really helpful to be able to juggle between speeds without having to double back through the ones in between.


thanks for the kind words! i am glad that you are enjoying otis :smiley:

i have an idea in mind for this. it wont really be like mlr, but it is definitely on the roadmap!


Yep, I think it is great. I mostly “live” on the display page where I can see the current speed. Also works well. Amazing script. I really collected a lot loops recently with Otis. :heart::heart::heart:

1 Like

Hi everyone. Thank you @Justmat for Otis. It is really such a great script.

I may have missed this, but is there anyway to save the audio loop used in a session in a preset along with its staring points etc…?

I know I can record it into tape or into a DAW, but would be cool to save the audio also into a new preset.

I apologize if this has been answered before.



hey there! this isn’t currently possible :slight_smile: i’ll add it the list of cool ideas :smiley:


Thank you @Justmat. Again, thanks for writing Otis.v2. So fun.

1 Like

20 characters of thank you for v2 <3

1 Like


Reading through this thread and looking at your GitHub I couldn’t find a detailed description of the Params page parameters and what they “do”.

I gather the bitcrushing/sample reduction comes from the decimate ugen, but interested to know what the crossover and tone functions do on a technical level rather than an audible one?


the tape saturation simulation stuff was added back in october of last year, by @ganders. maybe they would like to speak on the technicals? :sweat_smile:

the PR is here:

if you’d like to see all the changes to the engine, which might help with a deeper understanding. :cowboy_hat_face:


Thanks @justmat (and especially for the link, because I can’t remember all that much after a year! :laughing:)

@mattallison The saturation works by running the input through a high shelving filter (or two high and low pass filters mixed together with different amplitudes in this case. No idea why I didn’t use an actual high shelf UGen). The tone is the gain of the high pass filter (or high shelf), and the crossover is the cutoff frequency of the high pass and low pass filters.

The output of that is mixed with some pink noise, and then through a compressor, and then through a waveshaper, which is what adds most of the tape-like distortion.


Thank you for the detailed response and your contribution to OTIS.


@Justmat @ganders Loved reading that git communication feed. Collaborating in monome fashion, minimal yet productive and functional.

Any chance or plans of adding the correlation of the delay time to the amount of yummy bit crush added to the delay signal like coco? could beee pretttyyyy sweeeeeeeetttt :wink: Cheers


was wondering…could you add your guide for this massive update to the top of the post as well.
just thinking that a new user may not find all that mega important info at this point of the discussion. :slight_smile:
oh…also…does it get updated on the norns community pages?


the top post is too old for me to edit. the norns.community docs will be updated, I just want to add a couple more things in first. then I’ll document everything.

at that point maybe I should make a new Otis 2 post?


officially ® recommended

even though it is fun to look back to the beginnings of the looping cat script

thanks @Justmat for kicking the tires


Just been playing with it - it’s really great - thanks !

1 Like

curious if anyone has an idea how hard it would be to add an “undo” feature to the recordings for this script, i find that often i am deep into a loop and accidentally record something unwanted resulting in me having to clear the recording and try to re-record everything up until that point. not sure if an undo feature would be easy to add or even possible