Custom UI ambitions, or maybe some day the controller grid page

Oooookay, after playing around with tkinter and hating it a bit, I jumped into the UI design to understand some of the process (i’ve not done this nor anything like it before).
I got the core UI design concepts done and also some of the data structures, let’s start with the UI:

There is a main grid with an X/Y grid of values (i find that for the official 3.2 inch screen 4x4 works, but it’s already the max) and Z pages (this can be arranged manually) that keeps each parameter binding in it’s own dict, and organizes them.

For each parameter there are 4 control types:

  • Slider: a normal slider, akin to what we have today
  • Pan slider: same, but with the 0 value in the center
  • Switch: pretty self explanatory, defaults to on/off but can be changed
  • List: Has a list of values that you choose from, I’m still debating if this should be shown in the screen in the order you scroll through as a popup with all the options or keep it simple and tiny.

Also for each parameter there is the following data:

  • label (defaults to lv2-label)
  • ctrl_label (user defined label, optional, helps with weird controller layouts)
  • lv2_parameter_out (still researching about this)
  • cc_in
  • channel_in
  • type (the ones listed above)
  • options (if type = list or type=switch)

Now for the BIG question:

Should I build this as a separate application that would fit into the midi effects category, with it’s own UI and maybe set a new standard for “modules” or “plugins” for zynthian that have their own UI (this would also allow this “virtual midi controller” to run on any system that uses linux) using Kivy or tkinter (still deciding on this)?

OR

Should I build on top of what we already have, creating an option within the layers to show this interface if there is the json file for it?

Either of those would require me to write an editor application, which I would love to be able to have integrated in the webconf tool or run as a web app since that means cross compatibility (and then you copy your json file over to a certain folder.

Thanks for your help so far @riban, here’s hoping to become one of the dwarfs

2 Likes