Deservedly so! My only problem is that little video did make me want to get a Crow sooner rather than later…

1 Like

I feel your pain - the bit that featured Less Concept made me want a Crow and a modular rig to plug it into :slight_smile:

Congrats to you for being featured as well @dan_derks!

4 Likes

Having so much fun with this script! It can do everything from freaky chaotic loop washes to politely playing along to my drum machine in sync to MIDI clock now and it’s INCREDIBLE and I love it.

4 Likes

thanks for the kind words @kingmetal, @DoS, @papernoise :slight_smile: its a great joy to me that folks are finding use in oooooo!

thank you to everyone who has shown me their creations, brought up ideas, found bugs, etc. - all of that was immensely helpful for this script’s evolution.

9 Likes

Thanks to you for this really nicely lovely creative and dreamy work on these scripts.
Very hallucinating evolution these last weeks.
Love and Respect ! :raised_hands::pray::smiling_face_with_three_hearts::v:

1 Like

v1.5.0 - stereo recording and playback!

basically, i now have a synth that outputs in stereo (plinky) so i wanted to make oooooo record and play in true stereo.

here’s a demo of stereo recording/playback: https://www.instagram.com/p/CJBn8wrBmkO/

this update required two new features:

  1. i added in a way to record left/right channels on different loops. ( recording -> input type -> split L/R+tape)
  2. i added a feature that allows you to sync tape functions between two loops (loop X -> sync tape with).

to stereo record: set input mode to split L/R. then use synth tape with setting to sync loop 1 with loop 2, then loop 3 with loop 4, etc. then use loop panning to hard pan odd loops to the left and even to the right and voila! its stereo recording and playback!

since that is a little complicated i also added mode selection to quickly setup stereo looping. at the bottom of PARAMETERS there is now choose mode / activate mode where you can activate “stereo looping” that will do that above in one button press. i also added a fun/weird delay mode too. (any ideas for more “modes”? basically anything you find yourself menu diving for, i’d be happy to make a mode to automate.)

16 Likes

Waiting for my Plinky, so excited to record true stereo!

3 Likes

This is incredible! It’s like you’re reading my mind. I ordered a Zoom H3VR yesterday and being able to experiment with binaural loops in oooooo is going to be a blast!

Love the idea of a mode select that effectively just loads a preset, especially since I suspect that most folx will still want to mono loop. I love your solution vs just a “stereo link” that would lock out the pans because now we can still do weird things with the stereo field with LFOs and whatnot.

Thank you!

2 Likes

Unrelated question to the new stereo feature:

I’ve been experimenting with some MIDI-syncing with oooooo (now that I can have a drum machine on the right channel and my synth on the left channel). I set the Norn as the MIDI master and send clock out to my Volca Sample via a USB-MIDI device and tell oooooo to set the startup length to be 8 beats and play along to the drum machine.

The issue is that I find the loops drift slightly over time - it’s hard to say exactly how much but I could do some experimenting to figure that out.

This made me realize I don’t exactly know how accurate MIDI clock is, so I’m not sure if the thing I’m trying to achieve is just really hard (a static loop length against a MIDI clock that might drift over time) or if this is a glitch of some kind.

The reset every x beats feature “cures” this problem but it usually introduces some unwanted glitchiness.

I’ve tried setting another device as the clock master in case this was some weird Norns MIDI routing thing, and I absolutely wouldn’t put it past being a problem with my own setup.

SO, since oooooo continues to teach me how the nuts and bolts of loopers work my question is: do loopers that do MIDI sync usually just trigger a loop reset ever X beats to compensate for drift, or is it possible that the initial loop length isn’t being set accurately?

Just wanted to get a sense of how this all works before I go too deep down the troubleshooting rabbit hole and I’m loving learning about how this stuff works. The input latency journey to capture transients alone was a fascinating learning experience!

1 Like

Thank you for that excellent explainer! That answered my question and pointed me in the right direction.

After some more testing I have made the following observations:

  1. The Norns MIDI clock is indeed a bit unstable. I find that setting Norns to the clock master and twiddling with too many settings in oooooo (either in the edit menu or sometimes in the main script ui) causes MIDI sync to be lost and regained quickly sporadically. Given that @zebra says MIDI is being looked at, I’ll chalk this up to “MIDI is weird” for now and make another device in my chain clock master and return to it when I’m ready to test it more thouroughly so I can make a more accurate problem report.

  2. Reset every X beats does in fact work as advertised and absolutely solves the issue! I figured out what my “glitchiness” was.

I found some bugs, however, but I want to take a stab at fixing them before I report them because @infinitedigits has churned out update after update lately and deserves a break. I’d like to at least have a decent proposal, if not a full-blown PR before I go asking for more.

2 Likes

hiya, trying to think through how to set this up best, wondered if someone could help. I’d really like to have oooooo record Cheat Codes sequences so that the lengths of the loops are exactly in sync and in time. Can the clocks of two norns be synced together in this case?

2 Likes

thank you!!! :bug: :butterfly: happy to help if you need

i’m assuming your doing this live? i’m not totally sure how to use cheat codes, but you can start/stop/record/arm loops in oooooo using the triggers with osc. you can probably make a tiny edit to cheat codes to send osc to sync however you’d like to sync it. once the oooooo loops are running they stay pretty much in sync. lmk if you were thinking of something else.

So many thanks for the stereo option. This is getting better and better.

1 Like

tl;dr it is almost certainly possible

@jhyde not sure how Cheat Codes works either, but assuming it uses the Norns global clock you could probably try to sync them together using the Link protocol that was introduced into the global clock a while ago. I don’t know much about Ableton Link but my understanding is that if the two Norns are on the same WiFi network they should be able to “see each other”, although I can’t confirm since I don’t have two Norns to test with. I mention this because this method lets you test without buying new hardware.

I know that oooooo uses the global clock so it should be compatible, given that Cheat Codes just got a full rewrite I would be absolutely shocked if it didn’t support this as well.

If Link works but you don’t want to rely on WiFi (I’m not sure if it will work in Hotspot Mode, but it might!) then you can sync two Norns with two different USB MIDI adapters if I understand correctly. I like the Meeblip Cubit Go: https://meeblip.com/products/meeblip-cubit-go.

If anyone has more experience in this area please correct me (@coreyr I suspect you know a lot more)

In order to “clock” loops in oooooo you’ll want to set the loop length to a number of beats in the startup menu (I use 8 or 16 because I’m boring). Reset all your loops (you can do this globally in the A loop or individually) and then set the resets after every setting to the length of your loop (or any length longer or shorter than the loop I suppose!)

I’m working on improving some loop sync stuff, but if this works at all for you I’d expect to have even sync-ier loops in the next few weeks :slight_smile:

1 Like

just a quick dip in to verify cheat codes info:

  • cheat codes uses the global clock + displays transport (in 4/4) on the [timing] page
  • distro patterns’ loop points strictly adhere to the global clock (they reset after the user-specified number of bars)
    • you can also set the clock tempo via free patterns by switching P[x] sets bpm? to yes on the [timing] page
  • recorded patterns can be set to launch on the “1” beat or the next beat (PARAMS > patterns + arps > pat launch quant)
  • arps also sync to their specified time division of the clock
  • you can set up other things to sync to the clock, like individual loop lengths and the built-in delay

@kingmetal is right on the money, as far as i can tell – Link is the way to sync two norns to the same understanding of where the “1” is. should totally work by hotspotting one norns to the other. sounds like an oooooo loop reset in combination with setting resets after every to the duration of your cheat codes patterns should get you where you want to be :sparkles:

edit: more generally, i feel like you might also be able get to gold if both norns are simply set to the same bpm. if oooooo is looping at a fixed duration based on bpm, a cheat codes pattern played in at the same bpm should be able to be recorded well enough for electro-ambient-jazz. with all the nice reset features oooooo offers, it might actually be cool to experiment without the locked sync.

2 Likes

Yeah, it’d be interesting to see if Link is more clock stab

Yeah this might be really interesting depending on the type of music. I was testing loops-against-MIDI clock with some more traditional drum-machine driven stuff and found the drift over MIDI to be a problem, but I doubt I would’ve noticed if the music was different. I really like “semi-sync’d” loopy soundscape stuff that I suspect would work well without the sync reset.

What makes oooooo so special, to me, is being able to have it both ways. Sync loop lengths / reset point for internal / external synchronicity or go full freeform chaos with randomized everything - or start in one direction and head in the other (although it’s easier to go sycn’d to unsync’d right now I would argue). From what I’ve seen of Cheat Codes, that’s the idea as well and I’m excited to dig into it one day.

2 Likes

thanks for all the thoughts! Its helpful just to be more clear on how the clock system works for each script. As mentioned the versatility in them is so cool. I think as @dan_derks suggested, just having the bpms the same would work well. In my case the process I’ve been enjoying is sending granular textured stuff out of Ableton into CC then assembling it in Oooooo, or jamming over an Oooooo loop with CC.

3 Likes

Love this app, it’s a large part of why I picked up the Norns. Thanks so much for creating it @infinitedigits.

1 Like

Wow, just revisited oooooo for the first time in a while and so much has been added - thank you again @infinitedigits for all your hard work on one of the coolest loopers I’ve ever used.

Quick question about the “destroy” param - I may have missed some documentation somewhere but according to the last info I read it replaces bits of the loops with silence. I was just playing around with this with some guitar loops with a high destroy probability and playing along, and it was actually recording bits of the input over the existing loops instead of silence. Just wondering if this was intentional (i.e. the “silence” is actually taken from the input), because I’m able to get some super cool low pass gate and almost comb filtery sounds from this.

Also - any chance for a warble option in the A loop?

1 Like

yeah it can be done! if you are up for it i’d encourage you to try adding it too…i’m here to help for that kind of thing too :slight_smile: the way to do it is to move this code into its own function, and then making a loop trigger for it, and then having a special parameter in “A” that can pulse all of them simultaneously (or you can hook up something with middy to pulse all of them simultaneously).

ahh yeah! i think i assumed that there’d be no input during destruction… i think this can be changed to be silence instead as that was my intention. a better way to do it (now that i know) is to use buffer_clear_region_channel on random bits… that will allow pure silence to be added! i’ll also add this to my “to do”

while i’m here - i found a nice way to get really seamless loops without worrying about starting “on time”. i’ve been setting the vol pinch to 0, and then setting the number of loops to record to 2 (even though i’m recording a single loop!). then i start the loop recording and then just record my one loop whenever i’m ready and then it ends up being a beautiful one-loop!

4 Likes