Using the Mackie driver for MCU and BCF2000
For Ardour 2, this will walk you through the process of configuring and
using Mackie MCU, or a BCF2000 in
Logic
Control emulation mode.
Connecting Device
Make sure your surface is connected and you know which
/dev/snd/midi entry belongs to the device. You
can do this by saying cat /proc/asound/cards which
should result in something like
0 [EWS88MT ]: ICE1712 - TerraTec EWS88MT
TerraTec EWS88MT at 0x1140, irq 21
1 [VirMIDI ]: VirMIDI - VirMIDI
Virtual MIDI Card 1
2 [BCF2000 ]: USB-Audio - BCF2000
BEHRINGER BCF2000 at usb-0000:00:1a.1-1, full speed
in this case the BCF2000 is on /dev/snd/midiC2D0.
While ardour is not running, edit your
.ardour2/ardour.rc (and for now
etc/ardour2/ardour_system.rc and
etc/ardour2/ardour.rc) and add at the top, with
the other ports:
<MIDI-port tag="mcu" device="/dev/snd/midiC2D0" type="alsa/raw" mode="duplex"/>
Optionally, there is a way to get udev to assign an attached BCF2000 a
consistent name under /dev/ however, by adding the following line to
the udev rules. On some systems, these reside in
/etc/udev/rules.d/:
KERNEL=="midiC[0-9]D0", ATTRS{product}=="BCF2000", SYMLINK+="midi-bcf2000"
This will cause udev to create a
/dev/midi-bcf2000 for any BCF attached to the
system, regardless of which alsa card number it gets assigned.
Obviously you'd use /dev/midi-bcf2000 instead of
/dev/snd/midiC2D0.
See also
Writing
udev rules
Extenders
The Logic protocol allows the use of
extenders
or
Extender
image. Extenders are essentially banks of 8 faders without the
jog wheel and buttons. Once the code is fixed, it will be possible to
use either the mackie extenders, or BCF2000 units as extenders.
Mackie Mode
If you have a Mackie MCU make sure that you have the following under
the <Config> tag:
<Option name="mackie-emulation" value="mcu"/>
The Mackie must be in Logic Control mode, otherwise the LCD display
does not work. To put the unit in Logic Control mode: press and hold
channel 1+2 SELECT while turning the unit on and through
calibration; and then press the VPOT under whichever mode you wish
to use.
In this mode, the original mappings are used. Note that many of the
buttons have not yet been implemented.
BCF mode
If you have a BCF2000 you must add under the <Config> tag:
<Option name="mackie-emulation" value="bcf"/>
The following are different in BCF mode:
7 of the 8 sliders are used as route sliders, the remaining
right-hand one is used for the master slider
certain buttons have been remapped from the default Behringer
settings, which required either both hands, or one-handed
contortions to do simple things like rec-enable or mute a track.
The display shows the number of the first switched-in bank or Ar
if the first bank is in place.
BCF mode bindings
BCF mode bindings
Strips 1-7
Master Strip
Buttons
vpot: pan
button: solo
vpot: jog wheel
button: all solo
LCD display
mute
mute
shift 1
loop
shift 1: marker
shift 2: punch in
rec
session rec
shift 2
click
shift 1: jog wheel scrub/shuttle/scroll
shift 2: punch out
slider
slider
rewind
ffwd
shift 1: jog wheel zoom
home
end
previous bank
shift 1: previous route
next bank
shift 1: next route
frm_prev (previous marker)
frm_next (next marker)
stop
play
Connecting to Ardour
Currently, support for the mackie using alsa/sequencer ports is
borked. You're better off using alsa/raw as documented above.
Start up ardour. Go to Options/Control Surfaces. You should see
"Mackie" as one of the menu items. Turn it on. The faders on the
surface should jump to the correct positions. The mackie should work
as normal, except that any buttons not on the BCF won't work.
Usage
Strips (faders,pots,rec-enable,mute,solo) etc are fairly obvious.
The Jog wheel has various modes:
Scroll mode. Part of the Scrub button cycle. The default.
Scrolls the playhead. Displays "SC" in the 2 character LED.
Scrub mode. Part of the Scrub button cycle. Rate of rotation of
the Jog wheel controls the direction and speed of the transport.
Displays "Sb" in the 2 character LED.
Shuttle mode. Part of the Scrub button cycle. Jog wheel controls
speed and direction of transport. Displays "Sh" in the 2
character LED.
Zoom mode. Toggled by the Zoom button. Mutually exclusive with
the Scrub cycle. Jog wheel controls zoom level. Displays "Zm" in
the 2 character LED.
When holding ffwd or rew, the Jog wheel will adjust the speed.
frm_next and frm_prev will jump to next or previous markers. Markers
can be set at the current playhead position with the marker button.
The pot will pan single panners, and linked stereo panners. It won't
pan unlinked stereo panners, or 3 or more channel panners.
Thanks
Thomas Vecchione for help debugging the mackie LCD display, and
functionality suggestions.
Giso Grimm for help debugging various BCF issues, and functionality
suggestions.
Josh Parsons for the udev configuration and links.
Various other people who provided good bug reports and suggestions and
feedback.