eurorack-blocks icon indicating copy to clipboard operation
eurorack-blocks copied to clipboard

Erbui GUI Editor

Open ohmtech-rdi opened this issue 3 years ago • 1 comments

The current way to edit the UI in erbui is far from optimal. This is the feedback we have for the moment and how to address it:

Problems with erbui

  • It's hard to layout a GUI without good skills in either Inkscape or Illustrator
  • Template don't really help to layout
  • It's hard to remember all styles for each control
  • Making small adjustements is long (when not using a graphical editor)
  • It's impossible to see when a control is colliding with a pin socket
  • It's impossible to see when 2 controls are too close and:
    • Either, the underlying footprints collide
    • Or, there is not enough space for fingers between pots

What Users Want

  • They want to get started with a new project idea quickly
    • Even if the control placement is not optimal
  • They want to iterate with their project idea quickly
    • Even if the control placement is not optimal
  • They want a list of styles available for a control
    • Completion in the IDE project text editor was suggested
  • They want a check to know if a control is misplaced (too close, collision, etc.)
    • Some sort of DRC check was suggested
  • They want to be able to make small position adujstement and see the result in realtime
    • Being able to move the controls from within VCV Rack was suggested

Proposition: a GUI Editor

A GUI editor for erbui appears to be a good solution:

  • Placement or repositioning is immediate
  • Feedback is immediate
  • It's possible to have a list of styles or controls in a drop-down menu or browser
  • Have some sort of "X-ray view" which displays control footprints and board pin sockets
    • This could be done everytime a control is moved

Ideally, the editor could be bootstrapped immediately, so an implementation in Python would be a good idea.

Tasks

  • [ ] Evaluate different technologies for GUI using Python
  • [ ] Implement GUI editor
  • [ ] Add erbb gui command

ohmtech-rdi avatar Jan 09 '22 15:01 ohmtech-rdi

Tkinter seems to be more made for automated flow of standard OS controls, which is at the opposite of what we want:

  • We want a canvas to layout ourselves
  • We want consistent look across platforms

It seems that a relative analogy could be, with the web world:

  • Tkinter = HTML
  • PySDL2 = SVG

So Tkinter might be still interesting for some operations, such as dividing the space.

Also Tkinter comes bundled with Python apparently, which is a huge plus.

But most likely we won't evaluate it really.

ohmtech-rdi avatar Jan 09 '22 15:01 ohmtech-rdi