hedgehog/ideas/ UserInterfaceIdeas


Poor control issues

Consider Gimp and its tools.

gimp_paint_tool_options_1

and now let's consider one single control

gimp_paint_tool_options_1_single_control

and observe one very stupid thing that is commonplace amongst the UX with digital painting packages: **the total range of the slider is contained in a box measuring 136 pixels in width, and with tiny up/down controls. How else could I control the slider? If it took up more screen space? Consider this:

gimp_with_big_sidebar_1

that leaves you with a very small area. So one idea, if you have two screens is to undock the tabs and put them all on a second screen. Gimp can already do this. But consider that you only need for the sliders to take up a lot of screen real estate when you need precision controlling them. Another thing is that for most use cases, you will only want to use a small subrange of the slider. For example, if I am tracing a photograph, I perhaps want brush widths between 1 and 10 pixels. Now this is what the slider looks like when the size is set to 1:

gimp_paint_brush_set_to_1

and this is what the same slider looks like with the size set to 10:

gimp_paint_brush_set_to_10

and this 50 pixel wide stretch of the slide is all we've used,

gimp_paint_brush_slider_region_of_interest

and that is with the tool options tab undocked, on a separate monitor, and stretched to take up half of the (second) screen. With the default size of the tool options tab, that 'region of interest' would be more like 15-20 pixels across. The rest of the slider is essentially a waste of space. There should be

  1. User configurable ranges (with easily accessed presets for ranges, so that having the brush size slider only go from 1 to 10, or from 100 to 1000, is within a couple of clicks.
  2. The capacity to temporarily 'zoom in' on a slider I wish to adjust, for example, have a button that presents a maximised (translucent HUD-style) interface that lets you use your entire screen to set a slider value precisely.
  3. Offer the ability for hardware controls (i.e. Hedgehogs) send signals via e.g. OSC, to change either the upper and lower extent of the slider, or change the value of the slider by relative amounts, or to absolute amounts.

The idea in this latter case, which is part of the thrust of my Hedgehog concept, is that midi controllers are readily available and a suitably experienced 'maker' with something like an Arduino and a few rotary encoders, could build a simple control device. See WhatIsAHedgehog. In short, why can't I use

rotary_encoder_1 or ni_m32_encoders_highlighted

to control this:

gimp_paint_brush_slider_highlight_1

and why isn't it easy? At the software level, all you need is a thread listening on a socket for OSC messages, which can then give commands such as 'increase the brush size by 2%', or 'select the bucket tool' and then call suitable functions in the code.

And also, while we're at it. If I have one of these:

ni_m32_buttons_and_keys_highlighted

then when not being used for its intended musical use, why can't I make useful use of all those buttons and keys as macro controls to trigger actions (indeed, one could assign less common actions to chords: e.g. C-major (C+E+G) for 'Export' and C-minor for 'Export As' and map the note keys to the various tools?

See the HedgehogManifesto.

Images

gimp_paint_brush_set_to_1 gimp_paint_tool_options_1 gimp_paint_tool_options_1_single_control gimp_with_big_sidebar_1