# Akai APC Key25 mk2 driver

**URL:** <https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082>\
**Category:** Software\
**Tags:** midi-controllers\
**Created:** [February 4, 2024, 9:09pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082 "2024-02-04T21:09:06Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [February 14, 2024, 6:01pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/21 "2024-02-14T18:01:16Z")

</div>

I’m editing it! 😉

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [February 15, 2024, 1:04pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/22 "2024-02-15T13:04:35Z")

</div>

A promise is a promise! 🙂

I’m working on **visual feedback** for velocity/duration adjustments, and also a way to change them more concisely (alas with less resolution).

Suggestions welcomed! 😉

[![](https://img.youtube.com/vi/zprRUIbjHqs/hqdefault.jpg "Zynthian - Akai APC Key25 mk2 - StepSeq (alpha) demo II") ](https://www.youtube.com/watch?v=zprRUIbjHqs)

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [February 15, 2024, 1:23pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/23 "2024-02-15T13:23:28Z")

</div>

Thanks for the video. Its good but I need to watch it many times because stuff happens so fast. Do you have a way to edit the text and re-render the video? You show both yellow and violet as page 3. Should violet be page 4?

The controls seem to be chain specific. Is there a way to target different chains?

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [February 15, 2024, 1:29pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/24 "2024-02-15T13:29:50Z")

</div>

> [@riban](#):
>
> Thanks for the video. Its good but I need to watch it many times because stuff happens so fast.

Yes, you are right, I was concerned of being too boring… 😅 I also need to write the Wiki page for this, but I’m waiting until I get a more or less finished version.

> [@riban](#):
>
> Do you have a way to edit the text and re-render the video? You show both yellow and violet as page 3. Should violet be page 4?

Oops, sorry, yes, let me fix it… (done!)

> [@riban](#):
>
> The controls seem to be chain specific. Is there a way to target different chains?

The chain adjustment in this video is specific for the sequence’s chain. If you want to adjust others, just stay in the _Mixpad_ mode (where it begins) and use the knobs to change volume/pan of other chains (or main).

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [February 15, 2024, 2:10pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/25 "2024-02-15T14:10:06Z")

</div>

I have been taking a brief look at the code. It would be super cool if we could implement the step sequence editing within the core zynthian so that it is available as an alternative pattern editing screen, preferably with some interface to allow other USB controllers to interact with it.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [February 15, 2024, 2:18pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/26 "2024-02-15T14:18:33Z")

</div>

I am interested to know if you looked at any of the inline docs or the sequencer guide on the wiki and whether any of this helped with your development. We spend hours writing this stuff but seldom hear whether it is read or of benefit.

[Edit] Also will you compare the CPU load when running the sequence editing and with the device disabled? You can use tools like `top` and `jack_cpu_load`.

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [February 15, 2024, 2:29pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/27 "2024-02-15T14:29:25Z")

</div>

> [@riban](#):
>
> It would be super cool if we could implement the step sequence editing within the core zynthian

Yes, I agree! My plan is to get something more or less “finished” (I’m changing it a lot… ), and then extract the common factor and use it in other places (or, if suitable, add some parts to the core).

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [February 15, 2024, 2:36pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/28 "2024-02-15T14:36:05Z")

</div>

> [@riban](#):
>
> …if you looked at any of the inline docs or the sequencer guide on the wiki and whether any of this helped with your development.

Yes! The first thing I did was to read the Zynpad wiki and other related documentation. Then, the inline doc in the header files was very valuable! And, of course, the source itself 🙂 Thank you very much for taking the time to write it!

> [@riban](#):
>
> Also will you compare the CPU load when running the sequence editing and with the device disabled? You can use tools like `top` and `jack_cpu_load`.

Yes, I’ll do it, I also want to know the impact on the system. Thanks for suggesting the tools.

[**UPDATE**]: I’ve run the tests with and without the driver loaded (and running). There seems te be no much difference. Of course, the CPU load fluctuates, but there are no big spikes. I attach some screenshots of `htop` and `jack_cpu_load`:

 ![htop-compare](https://discourse.zynthian.org/uploads/default/original/2X/1/104a45f68b0783422ca7367cb54f06b5cccfbb32.jpeg)

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [March 1, 2024, 12:45pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/29 "2024-03-01T12:45:41Z")

</div>

Hi Zynthianers!

I have another update! 🙂 I’ve been working on the following features for this driver:

- A simple **pattern arranger** that lets you change current pattern, clear, remove or copy up to 8 patterns in current track (only first track supported yet).
- Support for a **simpler step duration extend** (just press the start pad + the end pad to create a step of that length).
- Adjust more **precisely the velocity** of an _instrument_ or step, using the pads instead of the knob. Each pad changes the velocity a 20%, or a 10% if pressed twice.
- Support for **stutter control**. You can change the stutter count or duration of an _instrument_ or step using Konbs K3 and K4. Also, you can use the pad matrix for a more precise adjustment.

There are a lot more features that I would like to implement, but I’m going to stop here (at least for now), and focus on **making this more generic** and usable for other drivers. I also want to update the documentation in the Wiki, and make a PR, just in case anyone wants to try it out!

And yes, I’ll upload a video showing these new features, as soon as posible… 😉  
Stay tuned!

---

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [March 1, 2024, 4:01pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/30 "2024-03-01T16:01:19Z")

</div>

Great @oscaracena ! Have you sent a PR?

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [March 1, 2024, 4:06pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/31 "2024-03-01T16:06:26Z")

</div>

Nope, I’m still reviewing and updating the Wiki, and fixing whatever thing I find. I’ll notify you when ready! 🙂

**UPDATE:** @jofemodo I’ve made the PR! You can check it here:

- [Akai APC Key25 mk2 driver: add stepseq mode by oscaracena · Pull Request #493 · zynthian/zynthian-ui · GitHub](https://github.com/zynthian/zynthian-ui/pull/493)

Thank you! ☺

---

<div class="post-metadata">

**Author:** ![wyleu](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/wyleu/32/514_2.png) [@wyleu](https://discourse.zynthian.org/u/wyleu)\
**Post date:** [March 1, 2024, 4:09pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/32 "2024-03-01T16:09:29Z")

</div>

Could you do a video of it’s use?

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [March 1, 2024, 4:14pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/33 "2024-03-01T16:14:17Z")

</div>

Sure! I’ll make it as soon as I finish with the Wiki, and send the PR 🙂

**UPDATE** : The [Wiki](https://wiki.zynthian.org/index.php/Supported_plug_%26_play_MIDI_controllers#The_Step_Sequencer_mode) is ready, and also the PR! Let’s work on the video…

---

<div class="post-metadata">

**Author:** ![wyleu](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/wyleu/32/514_2.png) [@wyleu](https://discourse.zynthian.org/u/wyleu)\
**Post date:** [March 1, 2024, 4:14pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/34 "2024-03-01T16:14:50Z")

</div>

Excellent!

---

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [March 3, 2024, 11:02am UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/35 "2024-03-03T11:02:17Z")

</div>

> [@oscaracena](#):
>
> **UPDATE:** @jofemodo I’ve made the PR! You can check it here:

Merged!

Thanks!

---

<div class="post-metadata">

**Author:** ![jofemodo](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/jofemodo/32/2_2.png) [@jofemodo](https://discourse.zynthian.org/u/jofemodo)\
**Post date:** [March 3, 2024, 11:08am UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/36 "2024-03-03T11:08:43Z")

</div>

> [@oscaracena](#):
>
> The [Wiki](https://wiki.zynthian.org/index.php/Supported_plug_%26_play_MIDI_controllers#The_Step_Sequencer_mode) is ready,

Excellent work! Congrats, @oscaracena !  
I can’t wait to see the next video and have all this functionality available for using from other devices. I envision two 8x8 launchpads working simulateously for having a combined 16x8 grid. Yesss!

Thanks a lot!

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [March 3, 2024, 11:30am UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/37 "2024-03-03T11:30:49Z")

</div>

> [@jofemodo](#):
>
> Excellent work! Congrats, @oscaracena !

Thank you very much! 🥹

> [@jofemodo](#):
>
> I can’t wait to see the next video and have all this functionality available for using from other devices. I envision two 8x8 launchpads working simulateously for having a combined 16x8 grid. Yesss!

I would like to see that too! 🤓👏👏 It’s hard to find a 16x8 pad controller for less than 500 bucks! But two launchpads working like one… 🤤

---

<div class="post-metadata">

**Author:** ![wyleu](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/wyleu/32/514_2.png) [@wyleu](https://discourse.zynthian.org/u/wyleu)\
**Post date:** [March 4, 2024, 11:00am UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/38 "2024-03-04T11:00:39Z")

</div>

Could a configuration of MIDI learnt settings be turned into code as the basis of a device driver?

Example:

I have programmed up a device for the Audio Mixer with my specific MIDI Mixer control source, which works and provides functionality. But I want’ to go a little further and add other functionality of my own, and realise this is best implemented into a device specific device driver for the zynth, but want to start from a framework that adopts best practise with the device driver facilties?

So using MIDI learn can lead directly to device driver construction without having to re-write functionality.

---

<div class="post-metadata">

**Author:** ![riban](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/riban/32/2331_2.png) [@riban](https://discourse.zynthian.org/u/riban)\
**Post date:** [March 4, 2024, 12:28pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/39 "2024-03-04T12:28:42Z")

</div>

I wonder whether this is a separate, template or profile overlay for MIDI learn?

---

<div class="post-metadata">

**Author:** ![oscaracena](https://discourse.zynthian.org/user_avatar/discourse.zynthian.org/oscaracena/32/10846_2.png) [@oscaracena](https://discourse.zynthian.org/u/oscaracena)\
**Post date:** [March 4, 2024, 9:25pm UTC](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082/40 "2024-03-04T21:25:26Z")

</div>

Just as promised, here is the **last** demo video!  
Thanks for watching! 😉

[![](https://img.youtube.com/vi/3EPUusfwmEg/maxresdefault.jpg "Zynthian - Akai APC Key25 mk2 - StepSeq (beta) demo III") ](https://www.youtube.com/watch?v=3EPUusfwmEg)

[Previous page](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082.md?page=1)

[Next page](https://discourse.zynthian.org/t/akai-apc-key25-mk2-driver/9082.md?page=3)
