Akai MPK mini mk3 driver

Good {morning/afternoon/evening} Zynthianers!

I’ve been working on a new driver, for the Akai MPK mini mk3. I know that this device has some key limitations (like the missing PAD’s LED control) to be a great device for Zynpad, but, on the other hand, it is a good value for the money, and many people have one of these laying around… :wink: Moreover, I wanted to know what could I get from it. And, this is the result!

The driver has the following key features:

  • 4 major modes of operation (mixer, device, pattern and notepad) + 2 minor modes (user and config).
  • Shortcut buttons to open the most common Zynthian screens (Zynmixer, Zynpad, Pattern Editor, Tempo, Snapshots, ZS3…).
  • We don’t have LEDs, but we can use the MPK tiny screen to see Knobs function/value or current mode.
  • Config mode allows you to setup the MPK device, including some settings that otherwise, you could only change using the “MPK mini Program Editor” app (like the PAD and KeyBed channels, or the PADs aftertouch).
  • MPK settings are stored per snapshot basis, so you are not limited to 8 programs.
  • PADs could still be used in note mode, so you can assign them notes/instruments for live performing or pattern editing.

And some other functions/features. You can check what you can do in the Wiki:

There is also some controller mappings diagrams, to help in navigation, like this one:



I’ve made a PR, just in case it could be added to the list of available drivers. As always, any comment, issue or suggestion is welcomed! :grinning:

Cheers!

7 Likes

Hi @oscaracena !!

You made a huge work here!! Congratulations compadre!!
There are a ton of functionality to study. As a happy MK3 owner, I will test ASAP and give you feedback so this could be merged in the next days.

Thanks!!

2 Likes

Thank you very much for your encouragement! I hope someone would find the driver useful. :blush:

2 Likes

I’ll have a look at it from the perspective of it’s simpler relative…

I’m not sure if it will work with that version… Not at least without a bit of rework… :sweat_smile:

I don’t doubt it but we can at least how far we can get. You have defined much useful interface.

1 Like

Hi guys, I am completely new to Zynthian just built my box with a pi4 and a touchscreen and was interested in integrating my very own akai mpk mini mk3 to. Does anyone know how can I pull the changes made in this thread into my local zynthian installation ?
many thanks in advance to everyone

1 Like

Hi @fedepoi, and welcome to Zynthianland!

I’m pretty sure that @jofemodo is checking the PR just now, to include it into Oram (which is the ‘testing’ branch of Zynthian). You can update to Oram, and then wait for the changes to be committed.

Or, if you can’t wait, you will need to apply the patch of the PR (I can send it to you) to your installation, but those changes will be lost on the next update. It’s your choice :slight_smile:

hi @oscaracena thanks for the quick reply!! I’ll switch to the oram branch just now (I am assuming I should switch to oram in all the repos and not just zynthian-ui right? ). would be also really nice if you could send over the git patch to apply just to test this out I’ll then update the system once pr 496 is merged

Better is make new installation on other ssd card.
Here is link on oram image

Yes, as @ToFF said, you will be safer doing a whole new installation (bookworm is 64bit too). As per the patch, here are the instructions. Run these commands inside the folder /zynthian/zynthian-ui:

wget https://patch-diff.githubusercontent.com/raw/zynthian/zynthian-ui/pull/496.patch
git apply 496.patch

And restart Zynthian :slight_smile:

Amazing !!, thank you both guys :pray:

2 Likes

You may find another problem, as the driver loader does not expect an auxiliar module in the ctrldev folder (and I add one). To fix it, apply this other patch:

diff --git a/zyngine/zynthian_ctrldev_manager.py b/zyngine/zynthian_ctrldev_manager.py
index 28eafd05..d78407c0 100644
--- a/zyngine/zynthian_ctrldev_manager.py
+++ b/zyngine/zynthian_ctrldev_manager.py
@@ -63,7 +63,9 @@ class zynthian_ctrldev_manager():
         for module_name in list(sys.modules):
             if module_name.startswith("zyngine.ctrldev.zynthian_ctrldev_"):
                 class_name = module_name[16:]
-                dev_class = getattr(sys.modules[module_name], class_name)
+                dev_class = getattr(sys.modules[module_name], class_name, None)
+                if dev_class is None:
+                    continue
                 for dev_id in dev_class.dev_ids:
                     logging.info(f"Ctrldev driver '{class_name}' for devices with ID '{dev_id}'")
                     self.available_drivers[dev_id] = dev_class

@jofemodo, you may need to add it too, or shall I update the PR with it?

2 Likes

@oscaracena, please, update the PR so it’s complete :wink:

@fedepoi, muy bienvenido al carro de zynthian, compañero!! Welcome to zynthianland!!
If you can wait a little bit, i hope to commit the @oscaracena MPK driver in a few hours :wink:

Cheers!

3 Likes

Done! :slight_smile: :+1:

@ToFF @oscaracena I flashed this image on a new sd card but seems like the default raspberry password does not work to login into the webconf tool (it does not even work for sshing into the pi) anyone knows if there is a different default password for this specific image?

Try with opensynth.

2 Likes

yeah ! that worked thank you so much

3 Likes

@oscaracena I can cofirm that the patch works as expected, great piece of work there it integrates the midi keyboard perfectly! well done.

not sure if you guys are aware but wifi connection seems to be broken on this branch I also tried to connect manually seems to be working when pinging 0.0.0.0 but then after opening zynthian it says can’t connect to wifi. probably this is an issue to raise within this other thread though (New testing image Bookworm Oram 64bits)

1 Like

Did you update? (With Zynthian connected to Internet.)