Looper - Ditto X2


yes please


I agree with a lot of the sentiments above - I like how the Boss RC2 works

Tap to Record
Tap into Play
Tap to Record Overdub
Double Tap hold to Clear

It means only one switch needs to be assigned to the looper


Hello all!

Is it possible to assign actuators, or
is there any scheme to record and play loops by Sooper Looper
only with mod duo itself (without midi controls)?

If there is one, could you share please how you do it?
I can’t get it working.

Default setup for Sooper Looper in modduo records for seconds and then starts to play,
if you hit footswitch again you get next small record playing on top.

It would be nice to be able to set following example controls for a looper:
Press for Record / play for a while / Release to Stop Recording and Play it, if there is no immediate Press right after.
If there is Press, don’t play. Play on next Tap.
If Press/Release is too quick, it counts as Tap.
On any first Press it’s starts recording, put it just get dumped if Release is quick enough.

And it would be fun to try controls from BossRC or Ditto, they also have only one footswitch.



today, I have started writing a little looper. After a couple of hours it seems to be working fine. It has the following features:

  • Stereo inputs and outputs (that’s why I did it mainly)
  • A compiled in max number of overdubs (currently 128), a compiled max overall recording time (currently 3 minutes)
  • Configurable input threshold; when starting the recording it can wait until a certain threshold is reached
  • Record / Play / Clear with one button (clear with double click; basically what @sonoptik asked for)
  • Undo / Clear on second button (clear with double click)
  • Redo / Clear on additional separate buttons
  • No clicks even when sounds is still playing at loop end (at least in my tests)

Of course although it seems to work fine for me it needs a lot more testing. If someone is interested I would be interested in having some people test it. Have to work out what is the easiest way for that, though… Also I am not sure if the controls are the best. I wanted to have the Boss scheme, with one button, so that the other is still free for something else. But changing the controls (or adding more options) is easy. Let me know…

Loopor - MOD Devices

how about variable speed?! :slight_smile:


No variable speed, for now :wink: . But to be honest I don’t really know what it means: Do you want to be able to replay the loop at a different tempo and different pitch. That would be relatively easy, if the pitch does not change that much. But I guess that won’t be useful. Changing the tempo with unchanged pitch might be doable, but I would have to research what the best way to do it is. And then the processor usage (which is really minimal for now, like 1% per dub) would be up much higher.

One thing I added is a button to go directly into the next dub.


Changing tempo w changing pitch (a la tape machine) is imho very useful… :slight_smile:


Okay, that should be doable in a later version (even if I would like to learn for what :slight_smile:).


…yeah, changing tempo AND pitch is what i meant. i use it a lot for more ambient, sound-effecty, noise stuff rather than pitch.


I think - like Plutek - changing tempo & pitch would be very attractive for ambience, landscapes, collages, building loops onto others etc… very exciting, indeed!
atm I use a Boomerang 3 and a Ditto x2, and they only do octaves and reverse,
I would love to have more control over loops.


Okay, got. I will add it. Let’s see, how good the quality is…


I have uploaded a compiled version of the code to github. It can be found here:


If you are interested and can use ssh to install to the Mod Duo, then please try it out. The description is in the repository. Please let me know of any issues or suggestions.

Source code will come later.

@falkTX: Please let me know if you have a better suggestion to make it available to people who want to try.

Note: Variable loop speed is not in, yet. :slight_smile:. Have to figure out exactly what this means and how to implement it.


It would be faster with the code available.
If you don’t want to release the code, you have to wait until we finish the changes regarding non-source and/or commercial plugins.


No, releasing the source code is fine. I just wanted to wait until a few people tried, because it was my first audio plugin, ever… Anyway, I have uploaded the source code as well. Hope it is not too bad :slight_smile:.


Code looks clean and has lots of comments, good work!
I like the use of C++11 :slight_smile:

I was able to build it, but didn’t test it. I just assume it works…

The only request I have right now is for you to pick a name and stick to it.
If you want to call it ‘loopor’, that’s fine. There are no plugins with that name yet.
But then please rename the lv2 bundle to loopor.lv2.

After you do that I’ll push the plugin to the non-stable store section.


Thanks @falktx! I have updated everything to make it consistent and pushed everything. Please try again.


hmm the change broke the build.
having a makefile target name for which a *.cpp file exists will trigger the build of the c++ code…

here’s a quick patch fix:

diff --git a/loopor-lv2/source/Makefile b/loopor-lv2/source/Makefile
index c0644b9..b32ca58 100644
--- a/loopor-lv2/source/Makefile
+++ b/loopor-lv2/source/Makefile
@@ -15,12 +15,11 @@ DESTDIR ?=
 # Default target is to build all plugins
 all: build
-build: loopor
 # --------------------------------------------------------------
 # loopor build rules
-loopor: loopor.lv2/looper$(LIB_EXT) loopor.lv2/manifest.ttl
+build: loopor.lv2/looper$(LIB_EXT) loopor.lv2/manifest.ttl
 loopor.lv2/looper$(LIB_EXT): loopor.cpp
 	$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lm $(SHARED) -o $@


Right, thanks! I couldn’t compile from here. I applied the patch.


Question to those who are interested in the variable loop speed. I have done a basic implementation of that feature. However turns out that what this means is highly up to interpretation. What I have done is the following:

  • There is one dub speed parameter which governs the speed of the currently highest dub.
  • So a workflow would be to record a dub. After finishing the recording, you can change the speed of the new dub. Then you can record the next one, finish, adapt the speed and so on.
  • With undo and redo you can switch back and forth between the dubs and change the speed of the currently highest dub. I think it is not possible to update the UI parameters from within the looper, so when changing the speed after switching dubs you do not see what the speed is - have to check that.

So far so good, but: What does it mean? The current implementation will start each dub at the original moment in time when it was recorded relatively to the start of the loop. After that moment the dub will be played once at the configured speed until the loop starts again. That’s also true for the first dub. So the duration of the whole loop is unchanged, even if the speed of the first dub is changed. Also dubs stay in sync whatever you do (but a slower dub would be cutoff at the end, currently with a click).

Is that what is wanted? Or something else?


  • Should the length of the whole loop be changed with first dub’s playback speed?
  • Should the start of a dub relative to the loop start be changed with the speed?
  • Should other dubs wrap around independently of the first dub? Meaning that if the speed is changed the dubs would get out of sync after the first loop?

More questions will certainly come once it is clearer what the answers to the above questions should be…


Wonderful questions!

  • the answers might be yes & no on all questions! :slight_smile:

I can’t really wrap my head totally around them right now;
the possibilities are quite staggering…
It would be so much easier with fingers on pots,
feeding notes into loops,
hearing all the different outcomes

  • testing your questions/options in real time.

What you already have - seems to me…

  • is a great little looper that does the basic looping things really good,
    hopefully - …with a few extras…
    It would fall into the “easily understood/easily-learned” category.
    like the Ditto or the Boomerang,
    I suggest you let it be more or less the way it is,
    Looper #1

and make a:

Looper #2
a super/deluxe/advanced version which opens up/adds on your choices
where speeds & pitches can be controlled, probably not for the fainthearted…

I would have both pedals permanent on my board, for sure. :slight_smile: