zynthian / zynthian-issue-tracking

Centralized Issue Tracking for Zynthian Project
https://github.com/orgs/zynthian/projects/1
11 stars 3 forks source link

Use assignable controls on a midi keyboard to control Zynthian UI #944

Open MalcolmGillott opened 5 months ago

MalcolmGillott commented 5 months ago

I use Zynthian with just a touchscreen, and although it is adequate for general use, I would like to enhance my GUI navigation using controls on my midi keyboard controller.

Some midi controllers have multiple assignable rotary encoders and buttons . It would be great to use some of these controls to help with GUI navigation. For example buttons for Menu, Mixer, rotary encoder for cursor up/down selection

I appreciate this can be done via the CUIA midi commands but these must are note values on a master channel, and many midi controllers do not have the flexibility to assign notes and midi channels to controls, usually just CCs on a single channel.

Possible alternatives are :- buy a midi controller keyboard with more flexible control assignment options ! use a hardware midi filter (laptop / another Pi ?) between controller and Zynthian to re-assign the messages

Thanks Malc

BenMcLean commented 4 months ago

I would definitely consider dedicating one of the presets on my Alesis Vortex Wireless 2 for Zynthian UI navigation if this feature is implemented and could share the preset after I make it. Seems like a slam dunk idea.

riban-bw commented 4 months ago

Yep! The CUIA control is currently driven by hardware (e.g. I2C connected buttons), MIDI Note-on, OSC and computer keyboard bindings. I can see that allowing MIDI CC bindings could be benefitial. The current binding mechanisms are each different which I think is technical debt we should resolve. I recently (well, maybe over a year ago) refactored the computer keyboard bindings with a more responsive webconf interface. I would like to extend this same approach to the other bindings which I hope would simplify support and provide more consistent and simpler to undertand UI.

This work has been on hold whilst we refactor the code to spearate the UI from the core. Much of that work is complete so we may start to look at features like this...

jofemodo commented 4 months ago

Control drivers are precisely for this. Someone have to write a little driver for the device and then, you simply "activate" the driver for the device.