BCR2000 advanced programming
BCR2000 advanced programming Posted on: 03.11.2013 by Leoma Larouche I am in the process of setting up 2 x BCR2000 for my DJ set-up.I want to configure an encoder two control more than one parameter depending on the state of a shift button. To this end I rely on Traktor's modifiers. Say I want an encoder to adjust Level, and to adjust Gain if a Shift button is being held down. That's would be fairly easy to set up and works fine, in both Relative and Absolute modes. The problem is not the encoder but the LED feedback: As you turn an encoder in the BCR, Traktor will send LED feedback to the encoder LED ring (typically the same CC number as the encoder). However, the BCR ignores this feedback by design. It only accepts feedback if the encoder is not being turned, but Traktor only sends feedback while the encoder is being turned! It's easy for this problem to go unnoticed because we usually configure each encoder to control a single parameter. However, when two parameters are associated with the same encoder this problem becomes apparent. Is there any way to get Traktor to output MIDI to a parameter different from the triggering parameter, e.g. CC 100 (the Shift button) triggers but output goes to CC 102 (an LED ring)? Or alternatively, is there any way to get Traktor to "refresh all parameters"? | |
Leoma Larouche 11.11.2013 |
Originally Posted by tekki
The guy who wrote BC Manager did a great deal of research on the B-Control and wrote a manual for his app that is very well written and very complete, and it explains everything about the BCR considerably better than any community or even the BCR's own users's manual. |
Random X 05.11.2013 |
Originally Posted by Scoox
There actually was one time I was writing smart encoder SysEx, but after a while I discovered it to be too much for the genres I usually spin, so I switched it back to a more traditional setting. But yeah.... A MarkII /rebirth is something that many of us are waiting for. By the way, you did find out about the BCR2000 Yahoo- group? |
Kellie Myrum 04.11.2013 |
Originally Posted by Scoox
Also the Hot Command. Something like 64 of them would be enough for editing big mappings and better organizing when you're dealing with over a 10K commands mapped to multiple devices in a single .tsi Modifier loops with 64 modifiers synced to master clock for mapping long automated FX sequences (believeing mappings). Something like new Twister and Digital Warrior firmwares does but actually a power mapping for any controller. |
Leoma Larouche 04.11.2013 |
Originally Posted by Patch
Next, you map Add In > Global > Send Monitor State to the same Shift button 2 times, onec with the Invert checkbox unchecked and again with the same checkbox checked. This ensures all LEDs will get updated both when you push down the Shift button and when you release it. Now you can map Adjust Filter to an encoder, also twice. The first time you set the first condition to M1=0. This would be our "un-shifted" state, because M1 is equal to 0 when the Shift key is not pressed down. Then you map Adjust Filter once more to the same encoder, but this time you set Type Of Controller = "Button" and Interaction Mode = "Reset". Finally, you map Out > Mixer > Filter Adjust to the same encoder, and you are done. I've exported a TSI file for this mapping, here it is: Resettable encoder.tsi In the above screenshot, notice the text in the Comment column. This helps grouping and sorting things that belong together. On a related note, I find managing complex mappings in Traktor a complete evening mare. When mappings are exported to TSI file, the file is not even human-readable, which forces users to rely heavily on the mouse. If I want to share a section of my mapping I can't just copy the code and paste it here on the community s, you have to send the whole TSI file. I just refuse to believe NI developers create mappings using the mouse, surely they have better tools that they don't make available to us |
Leoma Larouche 04.11.2013 |
Originally Posted by Stewe
Essentially the BCR blocks incoming MIDI to any encoder that has just been turned, for a few hundred milliseconds, say, 500ms. This delay is obvious if you map both the main out level meter and also the main out level knob to the same encoder. When you turn the encoder the LED ring "freezes" for a short time, and then continues to be updated after the said delay. Traktor sends MIDI as fast as it can, and to the best of my knowledge there is no way to insert a delay in Traktor. I'll see if I can believe of something else, and if I do I get a feeling it's not going to be pretty. |
Leoma Larouche 03.11.2013 | I am in the process of setting up 2 x BCR2000 for my DJ set-up. I want to configure an encoder two control more than one parameter depending on the state of a shift button. To this end I rely on Traktor's modifiers. Say I want an encoder to adjust Level, and to adjust Gain if a Shift button is being held down. That's would be fairly easy to set up and works fine, in both Relative and Absolute modes. The problem is not the encoder but the LED feedback: As you turn an encoder in the BCR, Traktor will send LED feedback to the encoder LED ring (typically the same CC number as the encoder). However, the BCR ignores this feedback by design. It only accepts feedback if the encoder is not being turned, but Traktor only sends feedback while the encoder is being turned! It's easy for this problem to go unnoticed because we usually configure each encoder to control a single parameter. However, when two parameters are associated with the same encoder this problem becomes apparent. Is there any way to get Traktor to output MIDI to a parameter different from the triggering parameter, e.g. CC 100 (the Shift button) triggers but output goes to CC 102 (an LED ring)? Or alternatively, is there any way to get Traktor to "refresh all parameters"? |
Leoma Larouche 25.11.2013 | One more thing regarding my setup above. You may have noticed it lacks any Out mappings. Afterwards I mapped Outs to get LEDs to match the software, but this resulted in a MIDI feedback loop when Deadtime = 0. Luckily there is a very neat solution to this problem, which is to set all knobs to Relative Mode in both the BCR and Traktor. If you use a BCR I recommend you explore Relative mode. |
Random X 11.11.2013 | Yup, mister van den Berg has been putting his sparetime to good use. The yahoo group is actually the group where he kicked off. |
Leoma Larouche 11.11.2013 |
Originally Posted by tekki
The guy who wrote BC Manager did a great deal of research on the B-Control and wrote a manual for his app that is very well written and very complete, and it explains everything about the BCR considerably better than any community or even the BCR's own users's manual. |
Random X 05.11.2013 |
Originally Posted by Scoox
There actually was one time I was writing smart encoder SysEx, but after a while I discovered it to be too much for the genres I usually spin, so I switched it back to a more traditional setting. But yeah.... A MarkII /rebirth is something that many of us are waiting for. By the way, you did find out about the BCR2000 Yahoo- group? |
Kellie Myrum 04.11.2013 |
Originally Posted by Scoox
Also the Hot Command. Something like 64 of them would be enough for editing big mappings and better organizing when you're dealing with over a 10K commands mapped to multiple devices in a single .tsi Modifier loops with 64 modifiers synced to master clock for mapping long automated FX sequences (believeing mappings). Something like new Twister and Digital Warrior firmwares does but actually a power mapping for any controller. |
Leoma Larouche 04.11.2013 |
Originally Posted by Patch
Next, you map Add In > Global > Send Monitor State to the same Shift button 2 times, onec with the Invert checkbox unchecked and again with the same checkbox checked. This ensures all LEDs will get updated both when you push down the Shift button and when you release it. Now you can map Adjust Filter to an encoder, also twice. The first time you set the first condition to M1=0. This would be our "un-shifted" state, because M1 is equal to 0 when the Shift key is not pressed down. Then you map Adjust Filter once more to the same encoder, but this time you set Type Of Controller = "Button" and Interaction Mode = "Reset". Finally, you map Out > Mixer > Filter Adjust to the same encoder, and you are done. I've exported a TSI file for this mapping, here it is: Resettable encoder.tsi In the above screenshot, notice the text in the Comment column. This helps grouping and sorting things that belong together. On a related note, I find managing complex mappings in Traktor a complete evening mare. When mappings are exported to TSI file, the file is not even human-readable, which forces users to rely heavily on the mouse. If I want to share a section of my mapping I can't just copy the code and paste it here on the community s, you have to send the whole TSI file. I just refuse to believe NI developers create mappings using the mouse, surely they have better tools that they don't make available to us |
Jonathan Chiuchiolo 04.11.2013 | you would just need to have traktor output the position of "filter adjust" to a LED bar/ring, then when you map the shift add in that it should disable the "filter on", because the bcr has only encoders it shouldn't matter where the software is as long as the led ring surrounding the encoder shows the real position. |
Brunilda Kora 04.11.2013 |
Originally Posted by Scoox
|
Leoma Larouche 04.11.2013 | Yeah it's ridiculous how the BCR really kicks every other controller's ass in pretty much every way. I only wish Behringer released a BCR mk2 to further improve on an already functionally perfect product. Imagine all normal encoders replaced with push-encoders and backlit encoder caps to show push-encoder state. And while we are at it, imagine RGB LEDs. I've just ordered an extra BCR for a 2-BCR set-up. Once it's configured I'll try to post a video of a live set to show what it can do. The more I exploer this beast the more I like it. It has some obscure features such as the fact that the Preset +/-, Edit, Store, Learn, Exit and the four encoder group selection buttons are in fact user configurable via SysEx commands, thus giving you an extra 10 buttons. |
Random X 04.11.2013 | Niiiiiiiiice! Shame I have just noticed this thread. This is an awesome display of how crazy configurable this controller is. The dead time is something I have already long forgotten, as I only used/seen that back in 2009! GREAT to see you doing justice to this remarkable piece of kit, Scoox! |
Leoma Larouche 04.11.2013 | OK I have just been playing with my new configuration and it's amazing. Being able to reset parameters and kill EQ bands all with the same know removes the need for extra buttons and makes the BCR an even more versatile controller. For instance, I can go mad turning the filter encoder and when I am done I just hit the Shift button and voila! it's back to the centre position, right on the beat. |
Leoma Larouche 04.11.2013 | I cracked it! The BCR apparently has a Deadtime global setting which specifies how long input is blocked after a knob is turned or a button is pushed. By setting this parameter to zero you completely remove the delay, thus solving the problem. To achieve this, power up the BCR and do the following: 1. Press the EDIT and STORE buttons simultaneously 2. "EG" will be shon in the LED display at the top-right corner 3. Turn the 7th push encoder (top-row) counter-clockwise until the LED display shows "0" 4. Press EXIT. Then, in Traktor you need to map Send Monitor State to the shift button, once with Invert checked and again with Invert unchecked. Rock and roll baby! |
Leoma Larouche 04.11.2013 | I just figured out a workaround. I have Bome's MIDI Translator Pro, which allows me to send MIDI CC after a delay. 300ms seems enough. I then have MIDI Translator output to a virtual MIDI port (possible using loopMIDI or MIDI-YOKE) which is then routed into Traktor to trigger the Send Monitor State command. Encoders must be configured to work in Relative Mode, otherwise the associated parameter could jump back in the software if the encoder continues to be turned before the 300ms delay has elapsed. This solution ain't pretty, as it requires two other pieces of software running to do the MIDI routing. However, it is not too ugly either: If either MIDI Translator or MIDI YOKE crash, the BCR would continue to work as normal, but the LEDs would no longer match the software. I have also tried mapping Send Monitor State to the Shift button, inverted so that it gets sent when the key is released. This works fine but you need to ensure you releae the Shift button long enough (~300ms) after you stopped turning the encoder. This solution proved ineffective because I instinctively release the button as soon as I achieve the desired sonic result, only to realise that the LEDs no longer match the software because I didn't hold the button down long enough. |
Leoma Larouche 04.11.2013 |
Originally Posted by Stewe
Essentially the BCR blocks incoming MIDI to any encoder that has just been turned, for a few hundred milliseconds, say, 500ms. This delay is obvious if you map both the main out level meter and also the main out level knob to the same encoder. When you turn the encoder the LED ring "freezes" for a short time, and then continues to be updated after the said delay. Traktor sends MIDI as fast as it can, and to the best of my knowledge there is no way to insert a delay in Traktor. I'll see if I can believe of something else, and if I do I get a feeling it's not going to be pretty. |
Latoria Kavulich 03.11.2013 | Paging Tekki to the Batphone ! |
Kellie Myrum 03.11.2013 | It seems that controller didn't refresh the output of the modifier state. Try to map Send Monitor State command to your shift button. Don't forget to assign correct mod vales for both Output commands. |
Leoma Larouche 03.11.2013 | Same issue reported in Post #5 of this thread. Also, Post #3 in this thread hints at the fact that relative mode is the way to go but LED rings won't work. Shame, I do like those pretty LEDs. |
<< Back to Reviews of DJ equipment Reply