Jog wheel mapping

Can you show me the value of the CC at the right most position, the left most position and the center position in which it returns?

You might want to set it up so that a timer periodically increments the value while you are hold the wheel to the right, and decrements the value when you hold it to the left and then stops sending values when it reaches center.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Steve,

I am using the Ulanzi ‘Studio’ software – there I was able to download a MIDI plugin. Using that I configure the dial to send MIDI CC#99 on channel 16.

The dial is not ideal for this purpose – perhaps my title misled you – it’s not really a proper jog wheel with a spring loaded dial that returns to center. Rather it’s just a rotary dial – it ‘tops out’ in the clockwise direction at 127 (of course). If I then continue to turn the dial CW it keeps sending a fresh message with value 127 with each increment (slight detent). The converse is true in the CCW direction ‘bottoming out’ at 0. I was hoping that I could store values in a global variable each time a new message ‘hits’ the preset, and store it in another global variable – the aim being to apply logic to determine which way the wheel is turning by comparing the previous value with the present value, and make the determination of which way the wheel is being turned based on the comparison of those two global variables. At this point, I am fuzzy about how to structure the incoming/rules/outgoing sections, but I think I need to assign the ‘current’ variable in Incoming, then assign it to the ‘previous’ variable in Rules when Outgoing is triggered, but then I’m unclear on how Rules should be structured to work with both ‘current’ and ‘previous’ values, especially when I really need to persist the last state value of the wheel between uses –

I would pick a better piece of hardware if I knew where to get one that wasn’t tailored for video editing in specific programs – I know this is a bit ambitious for someone at my point in the learning curve – any example code to get me rolling would be appreciated.

Oh, of course, we have a tutorial on that using timers here.

Or you can use the below project file that doesn’t use timers.

Here are the commented rules

//Determine Movement amount
tt=ga-qq
// Make positive
if qq>ga then tt=tt*-1
// negative = 127, 126,125...
if qq<ga then tt=128-tt
// Set ga for next iteration
ga=qq
if qq<=0 then tt=127
if qq>=127 then tt=1
// Display outgoing value and absolute value
Log "Value is %tt% ga=%ga%"

I use aliases for my devices as follows:

You can learn more about aliases from this tutorial.

Absolute-to-relative-2026-06-22.bmtp (2.6 KB)

The output should be standard for most jog wheels although you might need to adjust the CC and channel number.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thank you, Steve! Your product is very handy and your tech support is excellent!

My pleasure!