Generate and send values sequentially in order to smooth out a gap in value between physical fader and software value

HI there dear and fellow worldwide BMT users,

I could use some help with the following scenario:

After I do a certain musical transition in my live show, I set up a BMT performance RESET which does a couple of things. One thing is that it moves the Ableton software crossfader to zero. Now, in an actual live situation I notice that I don’t always hit the ‘zero’ value when using the physical fader controller again (which is mapped to Ableton crossfader), thus resulting in the crossfader not doing anything because it is waiting for PICKUP. In order to prevent this from happening I am trying to accomplish the following:

I now need a BMT translator to FIRST send value 0 when actually moving the physical controller fader in order to deal with the PICK UP value. Then in order to prevent jumps the value should interpolate and send a few values from zero to the actual first recorder fader value and continue with the actual fader values. The following conditions apply:

This rule should only happens once each and every time after the Performance ‘RESET’ has been applied.

This rule must only work when moving the physical fader UPWARDS (downwards fader movement values are ignored by the software because it is waiting for the fader to hit zero).

The translator should generate and send a few values sequentially between zero and the first recorder fader value in order to smoothly close the gap between the crossfader’s zero and the actual fader position.

The translator ends when the actual fader value and Ableton’s crossfader have a match.

Example:

Value Physical Fader BMT Ableton Crossfader
Step 1 127 RESET to 0
Step 2 Moves down to 30 nothing Waiting for pickup
Step 3 Moving up slowly toward 120 New translator detects upwards movement, send value 0 to Ableton crossfader for pickup and the generates a few values sequentially Moves from zero to actual fader position in a smooth way.

Hi,

What triggers the reset? Is it a MIDI signal from your controller? What is your MIDI Setup (controller type and port) with Ableton Live?

I’m sure we would need to capture the crossfader value prior to the reset and the fader moving to zero, so we would need to use Bome MIDI Translator Pro to constantly monitor the value of the crossfader into a global variable but not update it after doing a reset so that we know where to move it back to. This would be preferable to a slow fade until they match (I think).

Steve Caldwell
Bome Customer Care


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

Hi,

Something like the below should work.
The first preset handles MIDI returned from the Application (Ableton Live in this case). Translator 0 will track CC0 and CC1 in global variables g0 and g1 respectively. But while we are updating the crossfader value it will ignore feedback (ga=1).

Translator 0.1 will send the updated fader values to the controller as we smoothly move to the new position

Preset 1 handles communication to the application.

0.1 is what I do to initiate a reset. It captures the last known value of CC0 (Crossfader).

In the rules, Perform ‘SendMIDI3’ is called to set the fader to zero. Both preset 0 and preset 1 use this to update Live and the controller.

Then we call Perform ‘Fader’ recursively until the current value is the target value. (yes it calls itself)

Here are the rules for Perform ‘Fader’

// get value of fader 0 reported by Ableton Live
pp=g0
// disable input
ga=1
Perform "SendMIDI3",0xb0,0,0,0

Perform "Fader", 0, pp, 0, 50

// first parameter is CC number for fader
// second parameter is the desired target value
// third parameter is current value
// fouth parameter is the delay between movements

Here is how my aliases are setup.
image

You can learn more about aliases from this tutorial.

and the project file.

Ableton-Slow-Crossfade-2024-01-17.bmtp (3.2 KB)

Steve Caldwell
Bome Customer Care


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

Hi Steve, thanks for your quick responses! I will need some time to study and implement your answers. The Reset is a CC113 CH1 button press from my controller. Controller is MX12 by Faderfox. The MX12 is connected via USB to the PC. I am using BMT virtual MIDI OUT to talk to Ableton. Thanks again, curious to learn how to do this.