Behringer BCF2000 midi remote


No, this sends the normalised value 0-1.

Do you want to use the mOnDisplayValueChange, instead of the mOnProcessValueChange? Is this what you are searching for?

Sure it is normalized, I was just using 64 for simplicity.

Replace 64 with .5 and the statement is still valid. mOnProcessValueChange is triggered when the value changes in Cubase, but it ALLWAYS sends the last value that came from the device.


Then you have a bug in your script.

Nope! This has been verified by many times over. It looks like a bug in Cubase though.


Would you be willing to share the JS file with me (via Private Message)? I’m going to go to bring my BCF2000 today and I would test it out. Btw, which Mode do you use on the BCF, please?

This belongs on a separate thread as it is getting confusing.

As stated already above, I don’t have that device or code for that device.

This has gotten off track from the original thread. I came over to this thread to possibly get help on another and … like I said, there are 3 threads right now. This topic is different it is about mOnProcessValueChange not working as one would expect.

I have shared my code for LCXL and the workaround for this exact issue.
Here: GitHub - oqion/midiremote-userscripts: A place for user created MIDI Remote API scripts

And an earlier discussion about the problem is here:

What??? That can’t be working, can it?


I haven’t tried, sorry. :man_shrugging:


here you go:

var value14Bit = value * 16384
var value14BitLSB = value14Bit & 0x7F
var value14BitMSB = value14Bit >> 7

midiOutput.sendMidi(context, [0xe0, newValue14BitLSB, newValue14BitMSB])


I assume you are referring to the pitch bend code. I believe that you already verified the behavior as I described it. But this jocularity has me concerned. Was the mOnProcessValueChange callback originally intended to work as Martin has described and doesn’t? Is Martin mistaken about a design change, or am I wrong? I would love to be wrong :slight_smile:

Of course, you are right. I should read the specification. :thinking:

That’s what I didn’t try, but would be interesting to check if it works:

var pitchBendOutput = surface.makeCustomVariableValue('PitchBendOutput')

knob.mSurfaceValue.mOnProcessValueChange = function(activeDevice, value) {
	pitchBendOutput.setProcessValue(activeDevice, value)

Some devices will ignore the LSB.

@Jochen_Trappe what about this issue with mOnProcessValueChange though?

Which ones? I’m confused!

Now you’re just messing with me, and not answering my question.

1 Like

please, stop using this not working “oldValue” thing. In which exmaple script did we put it? I’ll remove it asap!

1 Like

Unfortunately it’s in the code examples in the README

RealWorld line 50

Oh no :frowning:

HI everybody

i would like to follow up with bcf2000 midi remote script, i have one that i use to use as a mackie control, but i am not sure how to use it with this remote script? is it even continued in its development ?


@oqion Did Jochen or anyone ever officially stated what the deal with mOnProcessValueChange is? This issue has been reported in so many threads and I couldn’t find a concise answer.