Midi fader: using the full lengt of a fader but with an offset and a max

25 views
Skip to first unread message

Pieter Nys

unread,
Jan 15, 2026, 10:46:55 AM (16 hours ago) Jan 15
to ql...@googlegroups.com
Hi

I need to follow an actor with a moving light (tilt) from the front to he back on stage.
I like to use a midifader.  But the fader only needs to control a certain window in the dmx range:
For example; 
  • fader full down: tilt is 50%
  • fader full up  is 70%
So I can have the full resolution of the fader for controlling the fuine movement.

I can use a subgroup, but that only give me a maximum limit, not a minimum offset.

Has anybody done this before?

Thanks!

Pieter Nys
Belgium


micpool

unread,
Jan 15, 2026, 6:45:37 PM (8 hours ago) Jan 15
to QLab
You need to scale the MIDI controllers output to output cc values 64-89 in response to the full MIDI fader values of 0-127.
You can either do this by writing a patch in Max, Vuo, Chataigne, OSCulator, or similar to do the scaling.

You can also do this entirely in QLab by generating a lookup table with this script:

--create 128 MIDI cues to control a lighting parameter scaled to a range


set theIndex to 0

set theMin to 127 / (100 / 50) --Max MIDI Value/ (100/ Minimum Light parameter percentage)

set theMax to 127 / (100 / 70)  --Max MIDI Value/ (100/ Minimum Light parameter percentage)

set theMIDIch to 1 --Channel of Physical MIDI controller

set theMIDIcc to 1 --Controller Number of Physical MIDI controller

set theMIDIccCh to 16 --Channel of QLab Light Binding for parameter

set theMIDIpatch to 1 --Number of MIDI patch to send MIDI  to Light Dashboard



----Do not alter anything below this line


set theStep to (theMax - theMin) / 127

tell application id "com.figure53.QLab.5" to tell front workspace

repeat with theValue from 0 to 127

make type "MIDI"

set theSelected to last item of (selected as list)

--MIDI trigger set up

set the midi command of theSelected to control_change

set the midi byte one of theSelected to theMIDIcc

set the midi byte two of theSelected to theValue

set the midi trigger of theSelected to enabled

set the midi trigger channel of theSelected to theMIDIch

--set the MIDI message to be sent by the new cue

set thelevel to theMin + theValue * theStep

set thelevel to round (thelevel) rounding to nearest

set the byte one of theSelected to theMIDIcc

set the byte two of theSelected to thelevel

set the channel of theSelected to theMIDIccCh

set the message type of theSelected to voice

set the midi patch number of theSelected to theMIDIpatch

set the command of theSelected to control_change

set the q number of theSelected to "cc" & theMIDIcc & "_" & theValue

end repeat


In the attached video the script is run and 128 MIDI  cues are created each triggered by a controller value 0-127. Each MIDI cue outputs the scaled range based on its trigger cc value.
The Midipipe pane is just a MIDI slider 
Screen Recording 2026-01-15 at 23.30.20-HD 1080p.mov

micpool

unread,
Jan 15, 2026, 6:47:43 PM (8 hours ago) Jan 15
to QLab
Workspace attached with generated cues
MIDI controlled tilt look up light restrict.qlab5

micpool

unread,
Jan 15, 2026, 7:26:20 PM (7 hours ago) Jan 15
to QLab
There is one obvious problem with this approach. You only have a range of integer  MIDI controller values between 64 and 89 i.e 26 steps to tilt your light the entire depth of your stage (50to 70%). If the depth is 10m, each step is going to move the  light 40 cm so the resulting control will be quite coarse.  If the tilt on your moving light is 16 bit (2 DMX channels 65,536 step resolution) then controlling this with a 7 bit controller (128 steps) is not ideal. If you want to use MIDI then a pitch wheel 16384 steps might be more appropriate. Unfortunately this means that the MIDI control can't be scaled directly in QLab and you will have to build a MIDI to DMX scaler in a third party programme like MAX.






On Thursday, January 15, 2026 at 3:46:55 PM UTC pie...@pnpbv.com wrote:
Reply all
Reply to author
Forward
0 new messages