How to trigger huge number multiple keystrokes when turning a knob or a fader?

Hallo, I have BMTP, a Faderfox UC4 controller with knobs and faders and Virtual DJ Pro. In VDJ Pro I would like to control a plugin which generates an Ableton Link signal to my hardware machine. Now there’s a delay between my computer and the machine and I would like to adjust the delay in the plugin to match the perfect timing.
The problem for me now is that the delay can only be changed with two buttons and these buttons can only shift the delay + or - 0.1 ms with each press. But the delay in some cases needs to be 200ms or more. So I would need to press one button 2000 times to match the timing! That’s a lot of button presses.
But at least these buttons can be midi controlled.
I already wrote to the developer if they can implement a knob so I can dial in the latency but they’re not going to do that unfortunately which is very sad.
But I thought this is a great task for BMTP and my Faderfox UC4 controller.

So my question here would be if there’s anyone here who can maybe tell me or write a program in BMTP for me to achieve this huge number of button presses with my controller and BMTP by the turn of the knob or with the move of a fader somehow. That would be awesome.
I would pay for this if it works well.

Hoping for someone to help me!



I believe I can help you.

Please tell me:

The keystroke required to increase the delay and decrease the delay.
Please tell me the MIDI message you want to send from your FF to do the same.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

That would be awesome, Steve!
The MIDI message can be any note or CC I guess.
I would like to use the upper left first knob of the UC4 to achieve that.
It has the outgoing Midi Message: Pitch Wheel, Channel 1 and Data -8192 to +8192. The Midi message from BMTP can be any CC or note I guess, as they are all accepted by Virtual DJ as Midi messages for the plugin (and other) buttons.

OK, this project should do it.
I use the global variable “ga” to track the last known state of the knob
I uses the global variable “gb” to determine how far the knob moved
I set up two timers, one for key up and one for key down. Depending on the direction of the knob, only one of the timers will fire.
Within the timer rules, I add a multiplier so that you can, for instance multiple one movement by the multiplier (I use 5) to generate keystrokes.


I set the delay between keystrokes at 20ms.

You can change these to suite your needs as well as the outgoing keystrokes you want for up and down.

I set up the alias “My Controller” that you should assign to your faderfox MIDI port.

PB-to-Keystroke.bmtp (1.5 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Thank you very much! It works, but only until the knob is down to the value of -8192 or up to the value +8192. Then it stops. Because the encoders are no endless encoders.
I am just thinking maybe it would be easier if I just set up two buttons on the Faderfox that I can press and like on the computer keyboard the button press could be repeated at a high rate. I am sure this can be done with BMTP, too.

How about this,
Press note (Note On) 0 MIDI CH 1 start an infinite timer sending keystroke “U” at 20ms intervals. Release the note and it kills the timer.

Use note 1 to handle keystroke “D”.

Of course you could change the interval if it is too fast or too slow.

Up-Down-Timer.bmtp (2.7 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Thank you very much again, Steve!
Strangely this doesn’t work well.
The keystrokes are not properly recognized by VDJ. Only very randomly.
But I’ll try this with midi messages. Maybe they’re recognized more reliably.

OK for keystrokes, your VDJ application needs to have focus. Also it is possible that the VDJ application cannot receive the keystrokes fast enough so you might need a greater delay between keystrokes.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Okay, I tried to send out a midi note on off from the virtual Midi Port of BMTP, but there are strange things going on. When I Midi learn VDJ with the Faderfox directly I get the message on when pressing the button and off when letting it go.
When I do the same with the virtual Midi Port from BMTP I only get the on button and no off button and the button stays on all the time…

Okay, I guess I know what’s going wrong. BMTP sends the Note On command all the time and no Note Off command. So I have to configure the Note Off command to be sent when the button is lifted the same time when the timer stops.

Yes, that is likely as I had only programmed Note On.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Yes, now it works! Great! :slight_smile:

1 Like

Thank you very much, Steve! It works now the best way it can. :slight_smile:

1 Like