Control Issues: Reviewing the Behringer BCF2000 and FCB1010
This week we look at two popular MIDI control devices for use with Linux sound & music software.
Must Have More Control
Programs such as SooperLooper and Freewheeling display their true potential when used with an external controller, and my recent experiments with loopers and arpeggiators led me to conclude that I needed a MIDI control surface (or two). After some basic research I considered recommendations from users and decided to purchase two items made by the Behringer company, a BCF2000 programmable MIDI control surface and an FCB1010 foot-controlled switch & pedal board, also MIDI-capable and also programmable. The following notes present a brief status report on my work so far with those devices.
What It Is
A control surface is a hardware device that provides physical controls that can be mapped to the functions of a program. For example, an audio recorder may include a mixer section with a number of faders to control the output of their associated tracks. Each fader can be controlled by grabbing it and moving it with your mouse, but with that method you can move only one fader at a time. A control surface provides real faders that can be assigned to the virtual mixer elements in your recording software, i.e. it can be used as though it were a hardware mixing desk. Other uses for a control surface include the manipulation of the parameters of a synthesizer and, as indicated in this article, the control of the functions in a performance looper. By the way, typically a control surface sends and receives MIDI data, either through a standard MIDI interface or a USB connection. However, it should be possible to design a control surface that uses a different I/O protocol such as OSC. I only know about MIDI-enabled control surfaces, hopefully my readers will let me know of any OSC-enabled surfaces I should consider.
The Behringer BCF2000
While researching the topic of Linux-compatible control surfaces I found Dan Sawyer's excellent article - Mixing It Up with the Behringer BCF2000 - that describes the hardware and Dan's experience with it. His article is a 1st-stop recommendation if you want to learn the basics of operating the unit with Linux sound & music software. My notes here merely augment Dan's work with some up-to-date information gleaned from my experience with my own BCF2000 (Figure 1).
I tested a few more applications, including the Ardour2 digital audio workstation, the AVSynthesis composition environment for Csound, and the Freewheeling performance looper. Ardour and Freewheeling include ready-to-use templates for the BCF, and AVSynthesis provides an easy mechanism for assigning MIDI controllers to that program's audio and visual parameters. I followed Dan's original advice on configuring Ardour - just hold the Ctrl key while you select a fader or other control in Ardour's GUI with the middle mouse button. A message pops up over the selected control and tells you to move the external controller to make the assignment. When you move a controller on the BCF it automagically becomes attached to the on-screen element. That's it, the hardware can now be used to control the Ardour UI in realtime. I also found the BCF to be very useful for writing gain automation curves. Simply toggle the automation state to Write, start the track playback, and watch as the automation display realizes the gain curve according to the movements of the BCF controls. Toggle the state to Play, and your automation curve is now ready for use. Now when you start playback in Ardour you can watch the BCF's motorized faders zip around as they follow the automation curves you've written for your tracks.
The flying faders are indeed great fun to show off to family & friends, but they have a noticeable drawback. They are noisy, as in clankingly noisy, and I suggest you use the unit where its noise will not affect your recordings. If necessary, you can minimize the noise by disengaging the fader motors as described in the BCF manual. A minor inconvenience, but it may be a relief for recordists with limited space. In other respects the BCF is a well-built machine. All buttons, knobs, and sliders operate smoothly with a solid feel and no discernible MIDI delay. The controls are mounted in a lightweight molded plastic case that seems durable enough for situations that aren't too rough & tumble. I recommend the BCF to anyone looking for a low-cost reliable MIDI control surface that works under Linux.
Software For the BCF/BCR
Dan's article mentions BCEdit (Figure 2), Behringer's software for editing the BCF/BCR, but he didn't get into it deeply. Alas, my experience with the program was ultimately disappointing. I upgraded the unit's firmware to version 1.10 as described in the helpful instructions for using the BCF2000 found in the Ardour manual. The BCEdit program took a long time to scan for my BCF, but eventually it reported my hardware's presence accurately. I uploaded and saved the unit's default configuration and I had fun designing new patch configurations with BCEdit's GUI. Alas, that's the end of the good news. There is a serious bug in the current version that prevents successful transfer back to the BCF, and the official software must be considered broken at this time. Worse, it appears that Behringer is uninterested in repairing their software. However, developer Jens Andreasen has prepared an unofficial version of BCEdit that has fixed that transfer problem. His version is otherwise identical to the official release and is the version to download. That is, if you'd like a version that actually works.
By the way, I discovered some information regarding the non-viability of the sys-ex files created by the original BCEdit. Thanks to a programming error on Behringer's part those files are not useful until a fix is applied to repair a bad character encoding. Details are available for the fix for OSX users, but that information may be useful for Linux BCx hackers as well.
FFADO developer Pieter Palmers wrote bcx2000edit (sorry, it's a direct link to the tarball), a little Python-based utility for retrieving, editing, and saving BCx systems-exclusive files. Another BCx sys-ex editor called bcn200edit is listed in a Yahoo group dedicated to the BCF/BCR. Both utilities are supposed to be cross-platform but I haven't tried either one yet.
I discovered two full-featured BCx editors for Windows that ran nicely with Wine. A programmer who calls himself Birdie wrote the BCF/BCR Editor seen in Figure 3. It worked well for me, but alas, its last public version (0.41) was released in 2004. The Mountain Utilities' BC Manager (Figure 4) is an even better choice. Maintenance appears to be current, and the program offers greater control over the BCF than any other BCx software I've encountered. However, I must emphasize that both programs worked well with Wine 1.1.38 and that I had no problems with data transfers from and to my BCF with either program.
The Behringer FCB-1010
When I tested SooperLooper I recognized that to fully exploit that program's many features I would need a different kind of external controller. I asked around, and by far the most recommended device was the Behringer FCB1010. The FCB provides ten programmable foot switches and two pedal-operated continuous controllers, all housed in a sturdy stage-worthy metal case. The unit is programmable, thus making it a perfect fit for programs such as SooperLooper. I can assign the switches to toggle loops on and off, and/or to activate other switchable functions of the program. The continuous controllers can be used to dynamically modulate volume, sample rate, playback position, and other functions that can be controlled by streaming data.
I've described how to create MIDI bindings for SooperLooper in my recent article on performance loopers for Linux, so I'll refer readers to that article for a brief tutorial overview of the program. At the time I wrote that article I did not yet own an FCB and knew nothing about software for editing its internal presets and banks. Since then I've learned more about using the FCB and discovered two useful editors for the device.
Software For the FCB
The Java-based FCB1010 Editor from Ripwerx (Figure 5) works well if your FCB's firmware is a supported version. Fortunately the version for my board is Behringer's 2.5.1E, which worked fine with the 1.8 program release. The Ripwerx software also supports the UnO upgrade, so be sure to check the support information on the Ripwerx site to see if you can use this editor. Ed Dixon's FCB1010 MIDI Editor (Figure 6) was written for Windows but can be used successfully under Wine. Both editors allow the user to upload existing presets and banks and to edit and download new ones. Documentation can be found on their respective Web sites, but these editors are very easy to learn and use. Further information on the FCB and its uses can be found on the Yahoo FCB Users Group site and on Patrick Voes' FCB1010 pages.
If the Ripwerx software keeps complaining about your MIDI hook-up and you're sure about your versions and connections, try activating one of the foot-switches on the FCB. My board won't send or receive anything until I've pressed one of the pedals, after which the software works perfectly. Also, if the Dixon editor throws up an error regarding MFC42.DLL make sure you have that file in your Wine system32 folder. If you have the file and still receive an error regarding it you probably need to update the DLL. Look for the latest version on Google, download and install it, and the editor should work fine afterwards.
That's it for this week's report. If you've been hesitating over the purchase of either the BCF/BCR or the FCB, hesitate no longer. The units are well-supported by Linux, they work beautifully, and software editors are available that can help you design more creative and effective configurations. At ~$270 USD for the BCF/BCR and ~$220 USD for the FCB these machines are not exactly cheap, but those are the manufacturer's suggested retail prices, you can find better prices for new and used units on the Web.
By the way, I'm very interested in hearing from other owners of these devices, so please add your opinions and experiences to the Comments section. We all benefit when we all contribute.
Similis sum folio de quo ludunt venti.
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- Memory Ordering in Modern Microprocessors, Part I
- Source Code Scanners for Better Code
- diff -u: What's New in Kernel Development
- Tech Tip: Really Simple HTTP Server with Python
- RSS Feeds
- Non-Linux FOSS: AutoHotkey
- Returning Values from Bash Functions
- Security Hardening with Ansible