Idea For A Nice Live Looper

hey! i watched this lately and i think this can be seriously done in renoise with our api.

what do you think ?

Looks like Danoise only has to make a few changes with his latch recorder to allow it to program playing of slices.
But i also see him doing reverse playing of slices, which might be a bit more complex to perform that with the scripting engine.

0Bxx ?

OMG! yes please please maybe if we all chip in a bit of coding we can do it?

My first renoise tool could be a start to build something like this:

I’ll see if i can come up with something interesting…

Could be done. It’s a hybrid step sequencer and there are lots of those around on the forums already.

The basics are pretty easy:

  • Mute slice is easy to reimplement (clear that row)
  • Reverse slice is also easy using 0B in the volume column (as mentioned above)
  • Repeat slice is also easy to do (add multiple entries into the pattern within the same block ‘time slice’.
  • Preset / randomize slice retriggering patterns can be preprogrammed or made on the fly.

However, we use Renoise, we can push it further :ph34r: :

  • Variable loop length: The video shows that all loops are sliced into eight notes (two steps per beat) and a total of four bars long. If you assume / ask the user to place slice markers on the beats of their loops the number of slice markers gives the number of beats.
  • Variable slice length: (because we can use 09xx twice per note to subdivide a slice) we can present 1, 2 (like the video), 4 or 8 ‘boxes’ per beat. Thus we can subdivide each slice marker (beat) further for more fine grained control (even down to 1/8ths of a beat and then add slice repeat (above) onto that to really push the repeating factor to 11 :wacko:
  • Panning per slice: we can pan each slice in the instrument
  • Volume per slice: we can change the volume of each slice in the instrument
  • Pitch per slice: we can transpose each slice in the instrument
  • Volume slides: we can add volume slide effects by using 06xx, 07xx effects per slice
  • Pitch slides: same as for volume but with 01xx, 02xx (e.g. ‘tape stop’ effect)

I’m sure more can also be done than the above.

OT: I like this idea of development: Find a demonstration of something that looks good, discuss to see if it’s feasible, re-implement as a Renoise tool and expand it further. :P

I know I’m replying to my own post here but I’ve just sat down with a blank sheet of paper and sketched out how this would all work. :walkman:

I have the basis of a step sequencer from my unreleased ReKontrol tool thus I already have a framework to build this on and I don’t think it would be too much work.

The plan also covers most of the additional features we can do in Renoise as per the above post (e.g. sub slice ‘cells’).

Opening the scripting terminal now…

That is a static solution but not a dynamic one.
I think the loop feature and loop option in the sampler has to be instantly set instead.
It is more easily to deactivate than to figure out where a Bxx command was placed on a pattern editor.
(i assume we are still talking about live alteration)

sure, lot of things can be done, i’m thinking about something easy that let you remix patterns and change drumkits on the fly as they are doing.
without the need to have the main pattern window open, giving a gui with all that is needed.

for me the keys are:

  • provide the ability to load some precomputed sliced drumloops (the user will place them in a directory, with some good defaults provided) into some instruments when loading the tool
  • preload some drum programming patterns that are loaded at start (and easily changeable by the user by copy and pasting renoise pattern track data into text files)
  • ability to choose a track and place also some basic dsps (filter, distortion for example) and give a gui to control them from outside
  • sequential matrix to mute, reverse, retrigger some drum hits.
  • randomizable drum hits or drum programming on the fly

all this has to be implemented to get live playability, trying to obtain the dnb feel you can hear in the video. all the remaining features are secondary from my pow.


I’ve been working on this for the last couple of hours and currently have the following implemented:

  • Read in the number of beats (slices) from the selected instrument (thus, variable length loops can be used already)
  • Variable ‘subslices’ (1, 2, 4, 8) per beat. Testing shows 16 to be too many for the GUI to keep up.
  • Dynamic cellular GUI (one column per beat - each divided into multiple rows (one per subslice)). This means the play order is top to bottom and left to right. Originally planned for left to right first (one row per subslice, rather than column, but the GUI becomes tall and thin, which most peoples screens are not)
  • Realtime playback position highlighting (current button turn green)
  • Mute state toggles (muted buttons turn red)
  • Clears the current track in the pattern and populates with notes to trigger the correct slices and subslices at the correct time
  • Automatically starts playback and enables pattern loop

Once the different cell states (retrigger, reverse) have been implemented then I’ll push a version out for alpha testing.

Following that, just need to add in sample changing / loading, DSP loading and controls, differing playback orders…


I’ve just woken up as I was coding into the night yesterday (I was in the mood).

However, before going to sleep I did manage to record a quick example video of Cells alpha.

download renoise-cells-alpha-test.avi

Sorry about the quiet audio (it was late at night!), but I hope it gets the basic idea across. In the example I am using an eight bar loop (slice markers on each beat).

It does look rather Glitch like though… sorry dBlue :P

I’m going to do some more usability tweaks first before releasing a version for testing, hence the video to keep people interested.

Comments? Suggestions? Things you don’t like? All comments welcome!

Cool !

Those are the things i’m most interested in… changing drumloop samples musically in time to create variations on the fly, while keeping the same programmed feel, and evan swap them…

I think the tool should provides basic amens sliced, and all of them be analyzed in programming to keep their feel, so i can keep the feel of a amen with pop drum sounds for example.

I want to get instrument (loop) selection implemented before a public test release. I have a plan and hopefully, if time allows, it won’t be too long.

Initial implementation would be to select a new loop and all the settings get recreated with the new loop.

As for keeping the ‘groove’ of one loop and applying it to another, we’ll see. I doubt it would be in the first few releases.

It seems to be morphing into a hybrid between dBlue’s Glitch and a live looper as development continues. Interesting times ahead.

with dsp loading, do you mean something like baquetter script from Kaneel? So every slice switches through another track dsp?

mxb, you seem to be doing the heavy lifting lifting here, so you should definitely indulge your own desires - a sequencer “done right” can change one’s approach to music making - for example, I consider N.O.W. my secret weapon, as I have the feeling that only a few people understand what it’s capable of (I don’t mind tho, already one album down, and lots of sketches that explore new and exciting possibilities)

PS: Someone should write a Renoise sequencer round-up !!

Long live the resident Lua king!


Surely the Slices To Pattern tool has already done much of the hard work for that one already ;)

All of my tools are written as experiments, just to learn new things. I have this API to a powerful piece of audio software, how can I make it do something unique / useful / impressive?

There does appear to have been an explosion of sequencers recently.

While I do like this praise (who doesn’t? :P), anyone can write these tools really. Combine programming experience and a knowledge of the API and most things are possible. My problem is a lack of ideas!

Yes, I’ll read the code for ideas. I’m just emphasizing that it won’t be there immediately so people don’t get their hopes up!

:blink: :yeah: :w00t: :panic: :dribble: :guitar: :drummer:

Radical :)