are you on the latest version of norns too? could you try doing a system -> update? the new trigs require the latest version i think.

i’m not sure! if you find out please let me know :slight_smile:

Yes, I meant can we’ load arbitrary wave file into a loop’. Thanks so much for clarifying!

1 Like

cranking the vol pinch param definitely makes it easier for me if i can’t manually mess around with the stop/start points, but @infinitedigits do you think it’d ever be possible to let the beginnings/ends of loops crossfade into each other? :slight_smile:

1 Like

This is incredible, thanks so much

1 Like

Yeah, there was a norns update I had missed, the params menu works now. Sorry about that. Also, multiple MIDI devices seem to work now!

1 Like

This is so great! The way this works really clicked with me and I’m looking forward to further explorations.

https://www.instagram.com/p/CIK6NMBJF_E/

1 Like

@infinitedigits have you made any progress on the Grid / Arc implementations or have any specific UX ideas about how you want those implemented? I don’t have any MIDI controllers hooked up to my Norns so I’d love some more tacticle control over the loops. I’d be interested in helping you implement that functionality if you’re still looking for help!

3 Likes

@terje absolutely beautiful looping! thanks for sharing.

@mbillz no progress on grid or arc, nor plans to make implementation. at this point i would love to offload it to someone! if you’d like to work on it i will support your effort 100%. feel free to implement it in any way you’d like. i can give you rundown of the codebase and answer any questions you have, just lmk!

5 Likes

Sounds good! Let me marinate on the UX over the next week and I’ll DM you when I’ve got some ideas.

4 Likes

Ok. I’m in.

https://www.instagram.com/p/CIMQ1SRh7ml/?igshid=11vofwe573jlq

7 Likes

priming and recording midi mapping works great. I was wondering if you would be able to suggest a practical mapping layout for the nanokontrol2

so far, i have the length of each loop mapped to knobs 1-6, the rate of each loop mapped to faders 1-6, the volume of 1-2 on knobs 7&8, volume for 3-4 on faders 7&8.
i have “Recording Trig” of each track mapped to “R” on 1-6(which is probably not necessary since “arm” seems to do the trick itself), and “Arming Trig” to “S” on 1-6.

I realize im still going to have to use the norns controls for some things if i want to really use it as intended, but i’m hoping at least for now, i can set up a simple:

  1. select a track 1-6
  2. arm a track 1-6
  3. adjust length on each track
  4. mess with rate & volume for each track (unless there is a more useful parameter you think i might be using)
    All without touching the norns

is that possible? I can’t figure out if there is a midi mapping parameter for “track select”, and “arming trig” for a specific track doesn’t select that track, it just arms whichever track is currently already selected

i’m sorry to ask for more features after you’ve been so gracious with fulfilling all of these other very useful requests. but maybe there’s something already in place that i am missing?

6 Likes

your use of nanokontrol is excellent! wow, mapping the lengths and rates too! i’ve never tried that, should make for a lot of cool possibilities.

are you on the latest version? the latest version is correctly arming the whichever track it is triggered for.

there is no parameter for track select because essentially there is no track select. the track selection (highlighting the loop) just enables you to modulate parameters from the main screen and thus is only available at the main screen. however, all those modulations are available via the parameters menu (the ones that are midi mappable) so by mapping parameters you can affect every track even though it is not selected on the main screen.

if i misinterpreted your question/intension, please don’t hesitate to lmk

2 Likes

oh, you’re right. sorry, i thought it was arming the loop i was on because when i would arm loop “3”, the main screen still had “1” displayed at the top, but it would still record to loop 3. so you’re right, there doesn’t seem to be a need to select a track/loop

thanks for clarifying. this rules, by the way. thanks again for all of your work here

1 Like

This is such a cool tool - I am a sucker for a flexible looper and this is that in spades.

If you’re ever looking for new ideas, I’ve recently gotten really fascinated by multi-track loopers that use the first recorded loop to sync all subsequent loops. A really fantastic example of this is Christopher H. M. Jacques’ Loop Sync patch for the Zoia. The first loop sets the length and all other loops are a ratio of the first loop.

Punching out of the loop recording in oooooo modifies the loop length, so just starting with a long loop lets me make an unquantized loop (and I can sync the loops) but it would be incredible if there was an option to copy the loop length of loop 1 (or 6, whatever should be “first”) to the next loop in the chain.

Supporting sync’d loops that were longer than the original loop would be tricky. I guess in that case you’d avoid copying the loop length to the next loop but if the user punched out before the end of the first loop it would pad the end of the loop and if the user punched out after the end of the first loop you’d just pad the loop by some ratio (2x length).

Just spitballing. Thanks for your incredible work!

7 Likes

v1.3.0 - share and collaborate.

  • new feature: add sharing (via SHARE global parameter) through norns.online/share. upload and download oooooo saves from anyone in the world. requires installing norns.online script.
  • new feature: load loops from audio (via loop X -> load audio). loop will be set to length of audio. (thanks @dtm for this idea)
  • new feature: infinite saves (you specify the name) via save/load parameters
  • new feature: sync all loop lengths to first loop (after recording first loop) (thanks @kingmetal for the idea though not exactly what you mentioend)
  • bug fix: not recording multiple loops, add sync to first loop
  • ux: some parameters moved to all loops

note: to use the sharing you also need to install norns.online script. but if you don’t have norns.online, you can still update and use all the other features. the sharing has a lot of moving parts (~2000+ lines of code) and while i tested very thoroughly, some bugs may have fallen through the cracks. please don’t hesitate to lmk if you find a bug.

19 Likes

I can’t wait to play with this! Thank you so much @infinitedigits

1 Like

Wowowo :raised_hands::raised_hands::raised_hands:
@infinitedigits thank you a lot :blush:
I wish you a nice weekend :v:

1 Like

Spent less than 15 minutes playing with loop length sync and my initial impression is:

“Oh no, now I’m going to need to buy a mixer.” This is basically the highest praise I can give.

I’d been using Foulplay as the drum machine in my chain and Loop Sync on my Zoia. I think oooooo just became my primary looper, so now I need to bite the bullet and get a mixer since I don’t want to loop my drum machine (a Volca Sample currently).

Actually, I could probably just edit this line: https://github.com/schollz/oooooo/blob/bb61a00f4d687f5832e53e2c414929de3234dad8/oooooo.lua#L405 and only pull input from one of the input jacks and just monitor in mono mode. Maybe I’ll make my first PR against oooooo if I can figure out how to add input L, Input R and Input L + R to the options menu!

4 Likes

lol i know what you mean, and thank you :slight_smile:

i really encourage you to make a pr! i’m totally open to making this a collaborative script.

for your changes, you can change this option to use line-in stereo, line-in l, line-in r:

and then move these lines:

into the update_softcut_input() function (putting them in a for loop for each of six loops!).

if you need help at any step, whether it be git, command-line stuff, lua, or oooooo lmk and i’ll help.

1 Like

Got reasonably far, but of course I tried to get fancy and also figure out how to change the input that triggers input recording and that’s where I’m having trouble.

I moved setting the p_amp_in variable into the update_softcut_input function and and tried returning the value of p_amp_in so that it can be where you were setting it previously:

But this is clearly the wrong way to do it. It does work if you re-init the script but I’d like it to switch dynamically. I’ll take a break and poke at it some more later tonight - this has been fun! If I really figure it out I may rewrite the polling mechanism to allow for two channel polling since I could see some edge cases where that might be helpful, but that’s getting way ahead of myself.

Obviously I will happily conform to whatever interface standards you want to maintain so none of the settings names here are permanent.

1 Like