My thoughts:
For text input, use a Miniparser, that would accept inputs like 1:30
, which works much better for power users. From my limited experience watching users, this isn't harder to learn when they see samples (e.g. an initial selection) and have another mechanism to help them out when they are stuck (e.g. one spinner for minutes, one for seconds).
Try both positionings for looks and usability:
[spin-minute] [edit] [spin-second]
[edit] [spin-minute] [spin-second]
An advanced Miniparser might allow a range editor and allow different formats, say
1.30 - 2.15 (starts at 1.30, runs for 45 seconds, '-' for range)
1.30 +45 (the same, '+' for start and duration)
90 + 0.45 (the same, time in seconds)
I have no ideas how to place spinners here.
Ideally, you have a visual editor, that can show the relationship between the items:
[Action 1] [.....>----<.......................]
[Action 2] [..........>---------<.............]
Range selectors could be something like this.
dragging one of the range "bounds" should show a vertical marker (e.g. dotted line) through all sliders so that you can see the relationship between them.
You might want the movement to "snap" to other markers, so that they can be chained easily.
When implementing snapping, here are my expectations:
- make it an option
- have a method to disable it on the fly, (e.g. by holding down shift)
- when repeatedly pressing and releasing shift, it should jump between the snapped and the floating position (i.e. you have to track these separately)