Behringer BCF2000 - Parameter Feedback / Motorized Faders

I also checked out duplex, its neat, but did not do what i was looking for.

All I want to do is control the parameter of a effect AND have it return the signal to the controler.

Funny, I borrowed a BCF the other day just to check that Duplex was working as advertised.

Maybe the Effect application does too much? If you are just looking to control a single parameter, perhaps I can help you create an alternative configuration for the BCF

I’m not sure about this, but I think you NEED Duplex for the faders to move, since Duplex is responsible for sending signals to the BCF…

Oh then i must have missed something in the options

Maybe the Effect application does too much?

Its the native renoise gainer, i want to control the gain (just to test, later id like to do it on distortion and other stuff)

@danoise

no its really cool whatd going on with these layouts, pause, play etc… the most important feature though would be assigning the hardware faders to software faders in renoise and have either one move accordingly to the other

and no, one would not be enough, it was just what i wanted to get working, since i figured then i can go on with all the other stuff.

i just came here to ask if its even possible to do, so that i dont try my luck against the laws of physics…

anyways i dont think i can get it to work. did you start it in standard emulation mode? (check the modes from the big post if you dont know what i mean http://duc.avid.com/archive/index.php/t-253409.html))

Is it ok if im only connected through USB?

Do i need to set the BCF as out device in the midi clock master settings (additional to in device)?

Do i need to activate the nrpn in duplex?

I have no clue about these things…

€dit: oh man i just got SOMETHING to work. when i enter the the midi section of an instrument and put in the BCF as IN and OUT i can record fader movement in the pattern section(it records in pattern effects), and it gives a return signal THE FADERS DO MOVE!. sadly the fader does nothing at this point except for moving (doesnt control anything) and when i assign it to a effect (such as a gainer - gain) it does nothing again. sadly i cant take a screenshot of this setup because renoise seems to copy some crazy code when i press the print scren button (and i dont know how to do it otherwise)

Isn’t this due to this line on the configuration file:

self.loopback_received_messages = false

It should be in /home/$USER/.renoise/V3.0.0/Scripts/Tools/com.renoise.Duplex.xrnx/Duplex/Controllers/BCF-2000/BCF-2000.lua if you’re using Linux.

I remember that it was also set to false for the BCR configuration and it solved the issue changing it to true, but maybe it won’t work well with the BCF (as noted on the comments in that file). Maybe something improved on Renoise or Duplex since the configuration was created?

Do i need to set the BCF as out device in the midi clock master settings

No, Duplex works complety independently of the Renoise Midi settings. In fact, you should deselect the BCF if it’s listed among the current midi input/output devices in the Renoise prefs.
Instead, you want to specify the device within the duplex browser (‘settings’). And of course, you would need to select both an input and output.

Also, don’t forget to follow the instructions spelled out in the BCF control surface. If memory serves me right, it says that you should load the first factory preset…

And finally, consult the duplex manual too, it contains many tips and tricks.

Isn’t this due to this line on the configuration file:

self.loopback_received_messages = false

Yes, that used to be true, because the BCF could be going into a feedback loop (due to the mechanical faders not always arriving at the exact position). But we now have an alternative way of doing soft parameter feedback called ‘soft_echo’

allright i did everything as stated (except for the self.loopback_received_messages = false because

danoise already stated that this is not necsessary)

so that means the only thing where the bfc2000 is entered is the duplex. under settings as in and out. i still dont get the faders to move with that.

i went through the manual, im on the correct programms, did a factory reset on the bcf. nothing in there made it work, i skipped the programming parts though as im not really interested in programming atm.

again i find it strange that when i undo all this and go to instrument > midi and enter the bcf there as in and out, it does write pattern effect commands with fader positions AND the bfc moves accordingly when i play the recording - the only problem it is not connected to any control. would be nice to know how i could make this work, maybe this info helps and i can somehow connect it.

€dit: additionally (dont know if that matters) changes that the motors do wont be recognized from renoise, so if i save 2 different fader positions and switch them,(through bcf preset save) so that the motors will enter the saved positions the software will not recognize a change.

regards

so that means the only thing where the bfc2000 is entered is the duplex. under settings as in and out. i still dont get the faders to move with that.

Yes, you need to bypass the Renoise MIDI prefs. Duplex is working independent of this.

But perhaps the factory preset isn’t actually the expected one? Not sure if you can modify those presets, but if you can, the BCF will obviously send some messages that aren’t recognized by Duplex.

A good way to test this would be to check if the left-most fader is transmitting the correct value. According to the description of the device (the Duplex BCF controlmap), this should be a CC#81. You can hover over any button or fader in Duplex’ virtual control surface to see the value in the tooltip.

Now, if you - temporarily - enable the BCF in the Renoise MIDI preferences you can read any incoming MIDI messages in their “raw” format by going to the MIDI tab. So, moving the left-most fader should spell out the same number - note that CC#81 in hexidecimal would read 51…if not, the factory preset has somehow been modified.

Here, I can simply attach the BCF and load up Duplex. The very moment I start the mixer application, all faders are instantly moved to their respective positions. Obviously, that’s how it’s supposed to work.

again i find it strange that when i undo all this and go to instrument > midi and enter the bcf there as in and out, it does write pattern effect commands with fader positions AND the bfc moves accordingly when i play the recording - the only problem it is not connected to any control

Nothing strange about that - if you send the right CC message, you can control the physical position of a fader. But as you point out, that isn’t very useful in itself.

Here, I can simply attach the BCF and load up Duplex. The very moment I start the mixer application, all faders are instantly moved to their respective positions. Obviously, that’s how it’s supposed to work.

OH MAN thats what im loking for…

it appears every “should be” thing is 100% there, the leftmost fader is the CC81 shown in the midi tab when i enter the bcf into the renoise prefs, and the output value always represents the one that is showing in the display on the bcf aswell…

in the duplex it also says cc81 and its moving the correct software fader when i move the hardware, the motors dont do anyhting now though (the motors also dont change the software fader position, i need to use my hand to make the software recognize anything…)

again, the motors are working when i switch through presets on the hardware.

im very thankful you are trying to help me, if i can provide anything, video footage, data dumps etc… or something just request it.

btw where can i request this feature/ give my vote? (midi feedback)

it appears every “should be” thing is 100% there, the leftmost fader is the CC81 shown in the midi tab when i enter the bcf into the renoise prefs, and the output value always represents the one that is showing in the display on the bcf aswell…

That is very strange… look at the following screengrab:

5314 bcf-midi-cc.gif

I’m pulling the ‘virtual’ slider in Duplex, which tells the BCF to update…and it works fine.

So, if’s the same on your machine (and it “should be”) then it would seem the BCF is not set to factory preset #1 (or that the preset has been changed)

where should this blue numbers be when i move the duplex slider?

if i go to the MIDI tab they only come up when i move the hardware slider (theduplex then moves accordingly) no numbers are being written when i move the software slider (from duplex).

(ps: yes i specified bcf2000 as in and out in duplex)

looks like the problem is on the software somewhere… hmmm

i think we (u) are getting close to solving the problem :smiley:

btw i use windows 7 and i start in administrator mode. again if i should make screencaps or anything just ask.

The screengrab is from the MIDI tab (output) in Renoise, Duplex is generating these messages for the BCF to receive.

If nothing appears there, it is because Duplex hasn’t actually sent any messages…so yeah, definitely getting close.

Sounds like you haven’t set up the input and output ports correctly in Duplex.

On my system (Win7 x64), the BCF registers as no less than 2 input ports and 3 outputs.

Inputs

BCF2000

MIDIIN2 (BCF2000)

Outputs

BCF2000

MIDIOUT2(BCF2000)

MIDIOUT3(BCF2000)

I’ve select the first ones (without the parenthesis) for both input & output in the Duplex Browser > Settings (not sure if the other ones will work).

Note that you need to select the ports after having selected the BCF2000 Mixer configuration!

This should be done only once, but for each individual configuration - Mixer, Effects etc.

Once the ports are configured for the first time, you might need to hit activate the configuration (hit “Run”) to send everything …

as i said already the ports are selected, exactly as u have them. the BCF2000 not the strange one with the brackets.

i only get the exact configuration you have (2 in and 3 out, with the bracket ones too) if i take the mode U-3 (http://www.behringer.com/assets/BCF2000_BCR2000_M_EN.pdf on page 10)

and only if i unplug my audiointerface and my midikeyboard, else they will show up too. I did that though, just in case. Only the bcf was pluged everything else unplugged. I tried all 4 modes, everytime starting renoise, checking the in and out thingys in duplex and clicking run (a second time if it was already on).

Then moving the hardware fader to see its connected to duplex, then moving the software fader to see the hardware doesnt register anything, then going to the midi tab moving a software fader and see nothing gets written, then moving the hardware fader and see something gets written. - atleast that was the best result, in some modes (i think 4) it wont work at all.

Also tried the guys with the brackets (like MIDIIN2(BCF2000)) and they wont either.

Im also on win7 x64.

I Have Renoise v 3.0.0 x64 and the freshest duplex version.

€dit: as emulation mode i did select the standard, B-Control Mode. (BC) wich is the default one. (its under point 4: http://duc.avid.com/showpost.php?p=1450912&postcount=4))

I just checked here, and U3 mode was the one set here. U2 works as well, but let’s just assume U3 is the right one?

The reason I pointed out the port settings in Duplex is that it’s easy to launch another configuration and then think that the ports are already set. But they need to be set for each configuration (this is useful, for example when you have two identical controllers and wish to use a specific one for each configuration).

In any case, we have established that Duplex does not send any MIDI out. And that would perfectly be explained by not having selected a port, but since this does not seem to be the case, it would seem it has a problem opening the (output) port.

Try enabling the MIDI dump feature (located in the tool > duplex menu) and set if it says something about connection problems in the console. Also, it should list the MIDI messages going out. Note that it will only lists something when it has actually connected to the device.

im on the terminal

the only thing that writes something is moving a hardware slider.

MidiDevice: BCF2000 received MIDI B0 51 49
MidiDevice: BCF2000 received MIDI B0 51 48
MidiDevice: BCF2000 received MIDI B0 51 47

moving a slider in duplex does nothing to this window. i have the mixer preset loaded in duplex btw if that matters…

That is super-strange. I guess we need to dive even deeper then.

Try the following procedure

  • Open the tool browser, rightclick Duplex and select ‘reveal in Explorer’ … that should give you the folder in which the source code is located.

  • Proceed into the folder called Duplex, and locate a file called ‘Globals.lua’.

  • Open this file in a text editor, and near the end of the file, replace the following line

--local _trace_filters = {".*"}

With this

local _trace_filters = {".*"}

(you just uncommented a line that prints all debugging info from Duplex)

  • Save the file, overwriting the existing one.

  • Open the scripting console, if it’s not already open.

  • Reload the tools (the shortcut in the tools menu), launch the BCF Mixer application and move the leftmost fader

  • Copy all the text that have appeared in the console window

If I can take a look at that log, hopefully it should provide a hint about what is going wrong.

MidiDevice: BCF2000 received MIDI B0 51 2
MidiDevice: BCF2000 received MIDI B0 51 2
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:2  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:2
UIComponent:test( 1 1 )
UISlider:set_value() 0.02224468621682 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.02224468621682
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 6
MidiDevice: BCF2000 received MIDI B0 51 6
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:6  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:6
UIComponent:test( 1 1 )
UISlider:set_value() 0.066734058650461 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.066734058650461
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 B
MidiDevice: BCF2000 received MIDI B0 51 B
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:11  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:11
UIComponent:test( 1 1 )
UISlider:set_value() 0.12234577419251 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.12234577419251
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 12
MidiDevice: BCF2000 received MIDI B0 51 12
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:18  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:18
UIComponent:test( 1 1 )
UISlider:set_value() 0.20020217595138 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.20020217595138
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 18
MidiDevice: BCF2000 received MIDI B0 51 18
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:24  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:24
UIComponent:test( 1 1 )
UISlider:set_value() 0.26693623460185 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.26693623460185
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 1E
MidiDevice: BCF2000 received MIDI B0 51 1E
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:30  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:30
UIComponent:test( 1 1 )
UISlider:set_value() 0.33367029325231 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.33367029325231
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 21
MidiDevice: BCF2000 received MIDI B0 51 21
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:33  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:33
UIComponent:test( 1 1 )
UISlider:set_value() 0.36703732257754 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.36703732257754
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init
MidiDevice: BCF2000 received MIDI B0 51 22
MidiDevice: BCF2000 received MIDI B0 51 22
ControlMap:get_params_by_value CC#81|Ch1 2
Message:__init
Device:_send_message() message: context:2, group_name:nil, value:34  
  [minimum] => 0
  [index] => 1
  [group_name] => Faders
  [is_virtual] => false
  [value] => CC#81|Ch1
  [skip_echo] => false
   => 3
  [type] => fader
  [maximum] => 127
  [id] => 99
  [swap_axes] => false
  [invert_y] => false
  [name] => Fader #1
  [velocity_enabled] => false
  [column] => 1
  [invert_x] => false
  [row] => 1
  [orientation] => vertical

MessageStream:input_message()
MessageStream:_handle_or_pass()
UISlider:do_change() message: context:2, group_name:Faders, value:34
UIComponent:test( 1 1 )
UISlider:set_value() 0.37815966568595 nil
UISlider:_invoke_handler
Mixer:_set_volume() ??? 1 UISlider
Mixer:_set_take_over_volume() ??? UISlider 1
UISlider:draw() - self.value 0.37815966568595
ControlMap:get_indexed_element 1 Faders
NRPNMessage:__init
Message:__init

I cant thank you enough. Your patience is godly.

*edit whoops wrong log, i moved the hardware fader not the software i think ~.~

Hey, on seeing this log file it just occurred to me that you might be running Duplex 0.99.1, but the latest version is always located at

https://forum.renoise.com/t/duplex-beta-versions/30625

If this is true, try installing 0.99.4 and see if that changes anything?

I’m deep inside this forest called the Renoise forum. Sorry about that!

To make it even more embarrasing:

Isn’t this due to this line on the configuration file:
self.loopback_received_messages = false

Bmts’ advice is very true for 0.99.1, it DOES need to have this line changed.

But somehow the coin didn’t drop before now.

Wow, the moment I clicked accept on the “overwrite the tool because it already exist” the faders jumped into the position that the software mixer was in.

When I move duplex faders now the bcf moves with me! (YAY)

Finally how do I now properly control various effects parameters?

(like: distortion ammount for fader 1, comb filter frequency fader 2 etc… like the usual midi control mapping does.) [i notice the presets, ill sometimes use them but mainly i need to be able to control various different parameters of different effects all at same time.]

is this possible to do on the fly (like the midi mapping function connects hardware with software in learn mode?)

PS:

Thank you so far, you da real man!

(funny the problem got solved eventhough i posted the log wrong… i moved the hardware fader for the thing with the log ~.~)

Well, really happy we got it settled then!

how do I now properly control various effects parameters?

(like: distortion ammount for fader 1, comb filter frequency fader 2 etc… like the usual midi control mapping does.)

The easiest approach would be to switch the effect application (via the settings panel) into the subset = ‘mixer parameters’ mode.

This will show only the sliders that are made visible in the Renoise mixer across the selected track - right-click a device in the mixer to choose which parameters to include.

Works like a charm.

Thanks very much for your great efforts.

How can I put different parameters from different devices from different tracks on it? (~.~)

and where can I vote for midi feedback support from renoise (native, so I could use the midimap -learn feature)?

…and where can I vote for midi feedback support from renoise (native, so I could use the midimap -learn feature)?

yes please.