Sequenced Looper/Timeline Extension (in progress)

I thought I’d share my progress on my holiday project…

I had been thinking about ways to combine Melda’s MSuperLooper with a GP Extension, and what I landed on was a arranged/sequenced looper. It’s directly inspired by ZenAudio’s ALK2 (sadly now defunct).

Although I’d call myself a looping novice, I always enjoyed the creative results from ALK2. It was also a great practice tool for me.

Basic Usage:

  • Double click to add a clip: Record (red) and Play (green)
  • You can choose which of the four track loops to record/play (right-click the clip)
  • When there is no active clip, the track/loop will be muted
  • The clips are quantised to a 1/4 measure and will need MSuperLooper to be Synced with the host.
  • The Metronome track is currently based on a CC message sent to the Local GP Port (to control a widget mapped to metronome enable). I have submitted a request to add metronome functions to the Extension API.
  • The Song Part track is a simple ‘Next’ command. But it was an essential part of my idea for this extension, as it leverages the power of GP song parts/variations.

It’s still very rough, and at the moment is just a casual project. I might not go to the extent of saving/retrieving the per-song arrangements. I’m not yet confident the basic triggering of MSuperLooper is perfect, but will be playing/testing for the remainder of my holidays.

I might also try it with another looper (e.g. Enso), although this would be a much simpler one-loop-per-track approach.


That looks amazing. Fantastic work!


I have an idea:
Would it be possible to create a graphical timeline this way?
For example switch variations etc

5 posts were split to a new topic: Storing/Retrieving Extension Data

This looks interesting! When I get home I’ll give it a whirl.

I’ve been adding in more features.

The boring stuff is getting all the clip dragging to avoid overlapping other clips. I’ve done a basic multi select+drag (Shift+click multiple clips), and that was a large headache to prevent overlapping of clips on multiple tracks. But it seems to be working now.

I’ve also added pinch-zoom (horizontal zoom) for Mac, and Alt+Scrollwheel to zoom on Windows. I have started work on the auto-scrolling of the window to keep up with the playhead - but that needs some more work.

More interestingly, I have a ‘Loop Timeline’ clip, which you can add at multiple positions on the timeline. It will continuously loop at these points, until you activate a widget to exit the loop.

In this screenshot below, the first timeline loop is after you record the first loop, so you can play for however long you like over the first loop. When you’re ready to add another loop, just activate the widget to exit, and then the second loop will begin recording. After that, it will continuously loop (playing both clips/loops) until you exit for the final time. This is a great/simple option if you don’t want to create an entire arrangement.

I think an obvious next addition is a timed fadeout (e.g. volume fade over the duration of a clip). However, it’s probably better to manage this in combination with a widget, so you can leverage the widget scaling to set your ideal fade-out curve.


This looks amazing! I can’t wait to see where this goes ultimately! Very creative!


I’ve made some progress on saving/retrieving the data to an external file.
The demo below is a new ‘Widget Control’ track, where you can choose widgets from the global rackspace (that have handles) and set a few predefined actions: toggle and ramp up/down. You set the duration of the ramp based on the clip length.


Since my last update in January, my progress has slowed (unfortunate day job getting in the way!). Maybe I’ll wait for the official GP Timeline :grin:

Some things I’ve been working on…

Drag to Select
It took me a while to figure this one out.

Multiple Scroll Regions
The window has 3 different regions that scroll:

  • The track list only scrolls vertically
  • The timellne header only scrolls horizontally
  • The main timeline window scrolls in both directions

Set Specific Values
For a number of clips, I wanted to be able to set a specific value. At the moment I have implemented this via a simple text box on the clip.

Stop Actions
I found pretty quickly that when you are triggering the audio file player or midi file player, it’s annoying when you stop the playhead (while testing) and they continue to play. So the system clip ‘Stop Playhead’ will also allow you to add whatever clips you want after this, and they will always be triggered when you stop the playhead (at any point).

Pre-Triggering Clips
I’ve re-written the trigger code a few times. The MSuperLooper loops are quantised, so they should be triggered before the start of the bar. I have them triggering at 200ms before first beat of the bar, and song part changes 50ms before (this works well for me).

Adding Tracks
I’ve got 2 types of track (3 if you include the MSuperLooper ones): System/Song Control; Widget/Plugin Control. You can add as many of these as you like (and rename them).

Future Changes
I have requests submitted to the GP devs to make a few things easier/possible. It likely means I will wait until these are implemented (hopefully in the next version) before I will share the extension.


That is freaking awesome work!!!


Great stuff!

(and a small reminder, just in case, that this is a public category)