Relative XY widgets for use with game controllers.
Posted: Mon Sep 09, 2013 6:31 am
One of the most useful applications for using a game controller as an input device for QLC+, would be to be able to control the XY positioning of a moving head.
There are a few issues with the current XY widget that makes this impractical/difficult:
* Joysticks are spring loaded and centred. This means it always starts at the centre of an XY pad and returns there when released.
* Being spring loaded means you have to find the XY spot and keep it there. This is a bit counter intuitive with the way a board's sliders usually work - move it to position and it stays there while your hands are doing something else.
* Game controllers has a slight jitter.On my experiments with the midi interface there was a definite jitter in the XY widget.
I suggest the extension of the XY widget - relative movement:
* The XY values coming from the controller indicates the rate of change in a specific dimension (as opposed to absolute values). In other words moving the joystick a little way will adjust it slowly while moving it all the way will adjust it very fast.
* The adjustment is relative to the last XY signal for that fixture.
* When the joystick is released and jumps back to centre, the XY co-ordinates are left where they are and no movement back to centre occurs. This would make it possible to make small adjustments by gently nudging a joystick.
* If at all possible the widget should take into account the fine and coarse XY controls many current moving heads have. At small offsets, increment/decrement just the fine control till it gets to the limit then increment/decrement coarse control by 1 and start the fine control at the other end of the limit. As the joystick is moved further from centre, the rate at which the change happens is incremented until it makes sense to only adjust the coarse control - setting the fine control to mid-value.
* Allow the XY widget to update to positions set by means of a function/button. So the designer can program a position to a function/button and the XY widget then updates to that position and allow joystick control from there on.
* The algorithm could use averaging techniques to remove jitter and since there is no change broadcast when the joystick is centred, the fixtures remain stable at the last position.
* Allowing the designer some control as to the sensitivity and crossover parameters would increase the usability of this widget.
This approach would make game controllers extremely useful input devices for controlling moving heads. One can program a predetermines spot for 2 moving heads as to where the performer will start and then follow him around using the 2 joysticks one has on a typical controller = follow spot! This would be very difficult with the standard XY widgets. In fact, using bluetooth, the joystick operator can be somewhere else in the room to where the lighting desk is.
There are a few issues with the current XY widget that makes this impractical/difficult:
* Joysticks are spring loaded and centred. This means it always starts at the centre of an XY pad and returns there when released.
* Being spring loaded means you have to find the XY spot and keep it there. This is a bit counter intuitive with the way a board's sliders usually work - move it to position and it stays there while your hands are doing something else.
* Game controllers has a slight jitter.On my experiments with the midi interface there was a definite jitter in the XY widget.
I suggest the extension of the XY widget - relative movement:
* The XY values coming from the controller indicates the rate of change in a specific dimension (as opposed to absolute values). In other words moving the joystick a little way will adjust it slowly while moving it all the way will adjust it very fast.
* The adjustment is relative to the last XY signal for that fixture.
* When the joystick is released and jumps back to centre, the XY co-ordinates are left where they are and no movement back to centre occurs. This would make it possible to make small adjustments by gently nudging a joystick.
* If at all possible the widget should take into account the fine and coarse XY controls many current moving heads have. At small offsets, increment/decrement just the fine control till it gets to the limit then increment/decrement coarse control by 1 and start the fine control at the other end of the limit. As the joystick is moved further from centre, the rate at which the change happens is incremented until it makes sense to only adjust the coarse control - setting the fine control to mid-value.
* Allow the XY widget to update to positions set by means of a function/button. So the designer can program a position to a function/button and the XY widget then updates to that position and allow joystick control from there on.
* The algorithm could use averaging techniques to remove jitter and since there is no change broadcast when the joystick is centred, the fixtures remain stable at the last position.
* Allowing the designer some control as to the sensitivity and crossover parameters would increase the usability of this widget.
This approach would make game controllers extremely useful input devices for controlling moving heads. One can program a predetermines spot for 2 moving heads as to where the performer will start and then follow him around using the 2 joysticks one has on a typical controller = follow spot! This would be very difficult with the standard XY widgets. In fact, using bluetooth, the joystick operator can be somewhere else in the room to where the lighting desk is.