Kdenlive and Jog Shuttles 2022
20/07/2022 Leave a comment
Kdenlive is a powerfull Open Source Non-linear video editor that has been under development for at long time. There are extensive documentation for it, but one thing that I had trouble figurering out recently, is how to get it to work with my Contour ShuttlePro. This is a Jog Dial/Jog Shuttle device, that is very convenient, when working with video. This particular model has been superseeded with a newer model, the ShuttlePro V2, but they work in similar ways.
I don’t do a lot of video editing these days, so it seems every time I want to use my ShuttlePro, I have either updated my laptop of the Linux input interface has changed, so it does not work. This is sort of annoying to me, as I believe I wrote some of the original Jog Shuttle code in Kdenlive almost 14 years ago (I don’t think there is much of that code left, to be honest, but still :-)).
This is how Kdenlive looks, under settings|Jog Shuttle, when no Jog Shuttle has been detected:
The solution for me was to follow the instructions posted here. Note, however, that this information was for the V2 device, so, I will summarize what I found:
For Contour ShuttlePro, add a file called /etc/udev/rules.d/90-contour-shuttlepro.rules
, with this content:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0010", MODE="0444"
And, if you have a ShuttlePro V2, add the same file, but with this content:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0030", MODE="0444"
After that, restart the udev system like this:
sudo /etc/init.d/udev restart
As found on the above link, you need to disable the part of the input, that makes Kdenlive/X see it the device as a mouse/pointer. Find it, and disable it, like this (you need to use the correct device id in the last line)
# xinput --list | grep -i shuttle | grep pointer
⎜ ↳ Contour Design ShuttlePRO id=32 [slave pointer (2)]
# xinput --set-prop 32 "Device Enabled" 0
Now, unplug your device, then reinsert it. If you go to Kdenlive JogShuttle settings, and press the “reload” button, it should look something like this:
Now you can start configurering the buttons. Here are my settings (still in Danish)
And, if you look in the configuration file for kdenlive (typically ${HOME}/.config/kdenliverc
) , you can see something like this in it:
[shuttle]
enableshuttle=true
shuttlebuttons=button0=monitor_pause;button1=mark_in;button2=mark_out;button3=monitor_seek_backward-one-frame;button4=monitor_seek_forward-one-frame;button5=monitor_seek_backward-one-second;button6=monitor_seek_forward-one-second;button7=monitor_play;button8=monitor_seek_snap_backward;button9=monitor_seek_snap_forward;button10=seek_start;button11=seek_end;button12=seek_clip_start;button13=seek_clip_end;button14=mark_in;button15=mark_out;button16=monitor_seek_backward-one-frame;button17=monitor_seek_forward-one-frame;button18=monitor_seek_backward-one-second;button19=monitor_seek_forward-one-second;button20=monitor_play;button21=monitor_seek_snap_backward;button22=monitor_seek_snap_forward;button23=seek_start;button24=seek_end;button25=seek_clip_start;button26=seek_clip_end
shuttledevice=/dev/input/by-id/usb-Contour_Design_ShuttlePRO-event-if00
shuttledevicenames=Contour Design ShuttlePro
shuttledevicepaths=/dev/input/by-id/usb-Contour_Design_ShuttlePRO-event-if00