SooperLooper - In Testing

These are on different pages. We sometimes repeat controllers to support workflows. It can sometimes be useful to have some controllers on the same page.

This?
zynthian-ui: vangelis (2db792e)

And after this morning update it is:
zynthian-ui: vangelis (10050ec)

After MIDI learning a CC to “selected loop” controller then accessing the “Control options” menu I see this:

image

What device are you using? What is your full config? I am testing on a RPi5 with touchscreen - no hardware knobs.

I think this is were i went the wrong way. I might have not had assigned midi learning first.

Then in trying to understand the relative midi mode concept i found this, where there are 3 relative modes with description. From that i understand that i would be able (maybe) to program my own relative mode.

And then again, back to my case; the old prev/next control was probably one that would have these relative modes possibility, but the new on is more like a toggle thing. What i have now is a pedal with 6 steps ccxx 1, ccxx 26, ccxx 51 … ccxx 126, and 6 loops loaded in my preset. The “select loop” knob is programmed to take the number of loops and divide it into 127, in order to decide which value when turning a knob that would trigger select whith loops. So that loop one is selected for all values ccxx 0-25, loop 2 for ccxx 26-50 and so forth.
So one pedal does this. Which would be the same functionality if i had used the “next” control. But then my up and down pedals decides which step the cc sending pedal should be at next time it is pressed. So i have up and down pedal to choose the step, and another pedal to send the step. This seems like a little two many pedals. And with the old “prev/next” i think i could use just the up and down pedal.

But i get by with the current functionality, and i have a deep respect for the effort put into all of these magnificent possibillities, and again many thanks for the follow ups and sugges\tions and learning points that is always provided with swiftness and efficiency

Okay - a bit to unpick here…

First, yes you must learn a CC to a control before you can set the mode for the MIDI learned CC. (Maybe that isn’t quite as obvious to others as it was to me!) After learning a CC, zynthian tries to detect its mode based on the messages it gets for the next few seconds.

The code you found is for oram. In vangelis we have enhanced to add a 4th mode and also to allow manual selection of mode so you don’t have to depend on zynthian detection (which is good… but not perfect). Also, mode 4 is never detected so if you want to use it then you have to manually set this.

You have configured a controller to select the loop based on its position. This will required “Absolute mode” because you want a value below 21 (127 / 6) to select loop 1, values 21…42 to select loop 2, etc. This has always worked when mapping an CC to “selected loop” controller in absolute mode. What has changed is that you can use two hardware controllers, e.g. foot switches, both with the same CC number but different values, to nudge up/down when mapped to “selected loop” in relative mode 4.

So we have quite a flexible system that provides many user workflows:

  • Select loop based on absolute position of a knob.
  • Select next/pevious loop based on the direction of rotation of a rotary encoder (with / without acceleration).
  • Select next loop whan a switch is pressed and previous loop when anothe switch is pressed.

I am sure there will be some who what yet more flexibiity but I think this covers most normal users’ requirements.

I have modified the behaviour of the “load file” controller in testing (vangelis) so that it now loads the file into the currently selected loop and resets to “none” so that it can be reused to load the same file (if desired) and does not clear loops on load.

Whilst doing this I realised that loop audio is saved when you save a preset but not when you save a zs3/snapshot. This has the effect that loading a zs3/snapshot will clear the current audio and only load previously recorded audio if it had been saved to a preset before saving the zs3/snapshot. I think this is probably acceptable behaviour. A typical looper will lose the audio when you turn it off and you most likely expect it to start with no audio. This is (mostly) the behaviour of zynthian’s looper but we have the additional feature of being able to save the current loops’ audio to a zs3/snapshot to give a user the ability to reuse previous sessions.

My question is… would there be any benefit in automatically saving the current session or do you zynloopists prefer for audio to clear and for the save to be a consious positive action?

Maybe not the best place to raise this question, as it is not specific to SooperLooper, but could the four relative modes be explained succinctly in the help area?

That is an excellent idea, only complicated by the fact that I could not succinctly describe their behaviour when I tired to do so in the docs!!! The modes are based on how some hardware devices behave and some of them are quite complex. We might be able to attribute the modes to particular hardware, e.g. “Relative mode 1 - Akai XXX type devices” or whatever. I don’t know what device use what modes so could not do this when I tried. Raise a feature request in the issue tracker and we will do something.

This is what i want, but there is no previous loop control, or am i missing something?

Here you are: Explain the four relative modes (and absolute mode) in the help area · Issue #1334 · zynthian/zynthian-issue-tracking · GitHub

1 Like

To select next loop when a switch is pressed and select the previous loop when another switch is pressed:

  • Configure both switches to send on the same CC.
  • Configure the “previous” switch to only send CC value 0.
  • Configure the “previous” switch to only send CC value 127.
  • MIDI learn either switch to the “selected loop” controller.
  • Set the CC mode for “selected loop” controller to relative mode 4.

Voila!

Thx Riban

These are the steps that was not obvious to me. “selected loop” in combination with relative mode 4. I just read out from the midi log what the encoder was doing with “selected loop” and copied that to my machine. But this is perfect spot on and everything, and i will test right away

1 Like

And of course, it works. Thx

1 Like


A few seconds of noodling with sooperlooper using single pedal mode learned to a footswitch on loop 2 whilst playing this sample from Looperman on loop 1. It works really nicely. This is purely a quick test to check functionality. Don’t judge the playing or the completely clean (no effects) guitar sound. I probably spent 2 minutes in total doing this which I think shows it to be a really functionaly implementation. We need to merge in the changes from @niels but there are some fixes to do there first. (I was using his PR with my fixes applied which is derived from vangelis.)

Pretty nice. The PR’s changes have made its way into vangelis, so per-loop bindings now work.

Beware with wav files loading into the first loop if you have only one wav file on your system. I just uncovered a nasty bug locking at least my UI:

So be sure to have multiple wav files lying about.

1 Like

We will get on to fixing that soon.

1 Like

Hi Riban,

How do you save preset for looper, how can i retrieve audio file in looper after save ?

Thanks

Saving presets:

  • Access preset menu from control view, e.g. press CTRL/PRESET on V5 or BACK on V4.
  • Bold press on a preset to access options menu.
  • Select “Save new preset”

Loading a preset should restore its audio too. If you want to load an individual wav file into a loop, use the “load file” contoller on the 7th page of controllers in the control view. This will open a file browser and load the selected file into the currently selected loop/channel.

I did not see that feature.
Thanks a lot !