New SooperLooper mode in Akai APC Key25 mk2 driver

Hi dear Zynthian people,

After about a year of on and off development I finally took the plunge and submitted a PR with my
SooperLooper extension to @oscaracena’s AKAI APC KEY25 MK2 driver.

The PR is available at Add SooperLooper Mode to AKAI APC KEY25 MK2 driver by pft · Pull Request #532 · zynthian/zynthian-ui · GitHub

It adds an extra mode to support SooperLooper, without breaking the original
nor diverging from it.

Some features:

  • unlimited number of loops, of which 4 adjacent ones are be displayed/interacted with at a time.
  • loop grouping of up to 5 groups (think verse/chorus etc.)
  • quick access to discrete loop functions (rec/overdub/multiply/insert/replace/subst/trig/pan/volume)
  • quick access to global and per-loop sync/quantize settings
  • quick saving and loading of 40 sooperlooper sessions

The driver is listed as ‘AKAI APC Key25 MK2 + SL’, next to the original ‘AKAI APC Key25 MK2’.

Everything works the same, except that [Shift+BottomRightPad(note 7)] enters SooperLooper mode.

Documentation is currently available at
GitHub - pft/sl-apckey25mk2 (a standalone JS version of just
part of this).

If this gets to be a part of Zynthian proper, I will move the docs to the wiki of course.

Some technical notes

Since Oscar’s driver leaves no pad unused I had to make this a
separate driver, sacrificing the function of Shift+the bottom right
pad, which likely to be the last one used in some of his (sub) modes
(Pattern Editor and Pad Matrix).

For me, this is worth it, but of course not for all. In order to keep
up-to-date with any changes in the original driver, and to keep them
mostly available, I made a few changes to the original driver.

These changes allow a subclass of the driver to dynamically load more
‘handlers’ from files in the subdirectory akai_apc_key25. A simple
dictionary extraHandlerClasses lists the notes that are bound to
switch to that handler. A handler class should be identical to the
module name (filename without ‘.py’) to load, analogous to how ctrldev
drivers themselves are loaded.

If the dictionary is empty no extra handlers are invoked, keeping all
the original functionality.

Please let me know what you think of it.

PS: I just ordered a second-hand mk1 version of this hardware from France, so chances are high that I will try and port the driver in a few weeks.

11 Likes

I’m really looking forward to try this!

Hi @niels, and thanks for your hard work! I’ve never used SooperLooper before, and I must admit that I’m a bit lost. Can you (or someone else) provide a very minimal/basic setup for working with it? It would be awesome! :wink:

EDIT: Mmm, this is what happens when you don’t search thoroughly… Sorry for the noise!

1 Like

The PR is merged! Whoever uses vangelis branch can now test it! Happy Zynthing! :slight_smile:

5 Likes

Mk1 had arrived. Will take some time though to port these two drivers.

Apart from having only three colors and only blink or on, the protocol is different. Velocity is used for color and blink both.

And it has POTS instead of encoders, so working as zyncoder 1-4 will work differently. Volume and pan will work though.

And the third thing: the keybed is sent on a different midi channel, where in the mk2 it is listed as a separate device. This will be easy for the functions in the ~~pattern editor~~ StepSeq mode, but not for playing, so here’s my question: is there a way to let a control device driver pass through midi messages if it so desires?

3 Likes

This is incredible !!

I did not understand how to chose for one driver or the other, but I guess it will clear with gears in front of me.

With all the buttons on the keyboard, what don’t use shift + sustain + a pad ? Then merge both drivers and manual…

Hi @Wapata , thanks for your interest. You use Bold select to open options for a sexific MIDI device, then you can choose the driver.

As to your key combo suggestion: sustain is technically on a different device, so not readily available.

Oh yes of course ! Like we chose to treat the device as “with driver” or “natural” !

And well, it is indeed two different sub devices. But we didn’t used all the buttons yet… did we ? Sustain + every buttons under the pads are not free ?

(Damned time zone, I’m at work right now …)

Hi @wapata, I think you mean Shift + a button.

They are all taken, in one (sub)mode or another. If you do find st, toss me that holy grail!

(Though Shift + right bottom pad is already deeply ingrained in my muscle memory to really want to change it)

By the way, I think two separate drivers is okay, not everyone has/wants sooperlooper, which was a reason for not autoloading my driver.

Mmmm… Shift + button + other button ?

I found it - bold pressing on driver nr 2 gave me the choice! Sorry for the disturbance and forget the following :slight_smile:

I.m on this Vangelis now, but i can’t find the SL driver:

i should be updated.

I get a list of drivers looking like this:

Sorry for taking someones time with this, but can you help?

2 Likes

That’s the devices you see. Bold-select the device apc key mk2 2 (or apc key mk2 4, you have two of ‘em, it seems). Then you can select the driver.

3 Likes