2007-02-01 23:29:55 -05:00
|
|
|
<?xml version="1.0" standalone="no"?>
|
|
|
|
|
|
|
|
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
|
|
|
|
|
|
|
|
]>
|
|
|
|
|
|
|
|
<section id="sn-bcf2000">
|
2007-02-14 22:49:43 -05:00
|
|
|
<title>Using a BCF2000</title>
|
|
|
|
<para>
|
|
|
|
This will walk you through the process of configuring and using a
|
|
|
|
<ulink url="http://www.behringer.com/BCF2000/index.cfm">Behringer
|
|
|
|
BCF2000 MIDI control surface</ulink> , or BCF, with Ardour. This should
|
|
|
|
also work with the
|
|
|
|
<ulink url="http://www.behringer.com/BCR2000/index.cfm">BCR2000</ulink>,
|
|
|
|
but has not been tested.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id="bcf2000-connecting-device">
|
|
|
|
<title>Connecting Device</title>
|
|
|
|
<para>
|
|
|
|
It's assumed that your USB ports are functional under Linux. The
|
|
|
|
easiest way to tell if you've got a functional link is to simply
|
|
|
|
connect the BCF2000 to your computer with a USB cable, connect the
|
|
|
|
power, and turn it on. You should see the USB MODE light come on in
|
|
|
|
the upper right corner of the BCF. If that's not on, you'll need to
|
|
|
|
figure out how to make your <ulink url="http://www.linux-usb.org/">USB
|
|
|
|
port work under Linux.</ulink>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If the USB MODE light is on, doublecheck that Linux knows of the
|
|
|
|
device.
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% aconnect -o
|
|
|
|
client 64: 'M Audio Delta 1010 MIDI - Rawmidi 0' [type=kernel]
|
|
|
|
0 'M Audio Delta 1010 MIDI'
|
|
|
|
client 72: 'BCF2000 - Rawmidi 1' [type=kernel]
|
|
|
|
0 'BCF2000 MIDI 1 '
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="updating-firmware">
|
|
|
|
<title> Firmware Updating (v1.07) </title>
|
|
|
|
<para>
|
|
|
|
The first thing you're likely to have to do is update the firmware in
|
|
|
|
the unit. This is a relatively painless process.
|
|
|
|
</para>
|
|
|
|
<orderedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Download the firmware from Behringers
|
|
|
|
<ulink url="http://www.behringer.com/05_support/bc_download/bc_downloads.cfm">downloads
|
|
|
|
page</ulink>. There will be a
|
|
|
|
<ulink url="http://www.behringer.com/BCF2000/bcf2000_107.zip">zip
|
|
|
|
file</ulink> available which should be downloaded. (This example
|
|
|
|
uses version 1.07 of the firmware, the latest available at the
|
|
|
|
time of this writing. There may be a newer version available now.)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Unzip the file you downloaded. You'll typically extract 2 files, a
|
|
|
|
PDF file with release notes and an SYX file, which is the firmware
|
|
|
|
update.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Find the system device of the BCF
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% cat /proc/asound/cards
|
|
|
|
0 [M1010 ]: ICE1712 - M Audio Delta 1010
|
|
|
|
M Audio Delta 1010 at 0xdf80, irq
|
|
|
|
2 [BCF2000 ]: USB-Audio - BCF2000
|
|
|
|
BEHRINGER BCF2000 at usb-00:1d.1-2, full speed
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
</listitem>
|
|
|
|
</orderedlist>
|
|
|
|
<para>
|
|
|
|
In this case there are 2 devices. The number at the left indicates the
|
|
|
|
card number. The BCF is almost certain, then, to use the device
|
|
|
|
<filename>/dev/snd/midiCnD0</filename> where <emphasis>n</emphasis> is
|
|
|
|
the card number, in this case, 2.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Write the firmware to the BCF with the command
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
cat bcf2000_1-07.syx > /dev/snd/midiC2D0
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<important>
|
|
|
|
<para>
|
|
|
|
Make sure you use the actual device you determined in the previous
|
|
|
|
step
|
|
|
|
</para>
|
|
|
|
</important>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The BCF display will show a whirling figure-8 animation and count up
|
|
|
|
to 18. Once the whirling stops, you should turn off the BCF, count to
|
|
|
|
5, then turn it on again. You should then see the version number of
|
|
|
|
the upgraded firmware displayed for a few seconds as the BCF starts.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-connecting-to-ardour">
|
|
|
|
<title> Connecting to Ardour </title>
|
|
|
|
<para>
|
|
|
|
After starting Ardour, it's important to connect the MIDI device ports
|
|
|
|
of Ardour and the BCF together so that they will communicate with each
|
|
|
|
other. There are a few ways to do this.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id="bcf2000-connecting-with-qjackctl">
|
|
|
|
<title> With qjackctl </title>
|
|
|
|
<para>
|
|
|
|
If you use the program <application>qjackctl</application> to
|
|
|
|
control JACK, there's an easy way to connect Ardour to the BCF. Run
|
|
|
|
qjackctl, and click on the <guibutton>Connect</guibutton> button in
|
|
|
|
the main qjackctl window. This will bring up the Connection window.
|
|
|
|
You should see at least 2 items listed, the BCF and Ardour:
|
|
|
|
</para>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="images/con1.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
<para>
|
|
|
|
Connect the BCF output to the Ardour input, and vice versa:
|
|
|
|
</para>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="images/con2.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
<section id="bcf2000-automating-qjackctl-connection">
|
|
|
|
<title> Automating the qjackctl connection </title>
|
|
|
|
<para>
|
|
|
|
You can set qjackctl to automatically make the MIDI connections
|
|
|
|
(and others) by using the Patchbay feature in qjackctl. Start
|
|
|
|
qjackctl and Ardour, and make the MIDI connections as shown above.
|
|
|
|
Click on the <guibutton>Patchbay</guibutton> button, then click on
|
|
|
|
<guibutton>New</guibutton>. Qjackctl will ask if you want to
|
|
|
|
create a patchbay definition as a snapshot of all actual client
|
|
|
|
connections. Clicking on <guibutton>Yes</guibutton> will bring in
|
|
|
|
a set of all ports available.
|
|
|
|
</para>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="images/qjpatch.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
<para>
|
|
|
|
Make sure you've got both connections as described above, and
|
|
|
|
click <guibutton>Save...</guibutton> and choose a filename. Once
|
|
|
|
this is saved, you can close the patchbay.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Next, click on the qjackctl <guibutton>Setup</guibutton> button,
|
|
|
|
then click on the <guibutton>Options</guibutton> tab.
|
|
|
|
</para>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="images/qjopts.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
<para>
|
|
|
|
Click on <guibutton>Activate patchbay persistence</guibutton> and
|
|
|
|
use the filename you used to save the patchbay above. The patchbay
|
|
|
|
connections will now be made after qjackctl starts up the clients.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-connecting-from-command-line">
|
|
|
|
<title> From the command line </title>
|
|
|
|
<para>
|
|
|
|
The command <command>aconnect</command>, which is the ALSA sequencer
|
|
|
|
connection manager, can do the job of connecting the BCF to Ardour.
|
|
|
|
First find the numbers of the MIDI device ports for the two:
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% aconnect -o
|
|
|
|
client 64: 'M Audio Delta 1010 MIDI - Rawmidi 0' [type=kernel]
|
|
|
|
0 'M Audio Delta 1010 MIDI'
|
|
|
|
client 80: 'BCF2000 - Rawmidi 2' [type=kernel]
|
|
|
|
0 'BCF2000 MIDI 1 '
|
|
|
|
client 129: 'ardour' [type=user]
|
|
|
|
0 'seq '
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
Here, the BCF is 80, and Ardour is 129. The proper connections can
|
|
|
|
be made between the two with two commands:
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% aconnect 80:0 129:0
|
|
|
|
xtc:~% aconnect 129:0 80:0
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-automatic-midi-connection">
|
|
|
|
<title> Automating the MIDI connection from the command line </title>
|
|
|
|
<para>
|
|
|
|
It's sometimes handy to start Ardour from the command line. I found
|
|
|
|
it irritating to have Ardour come up, and then have to manually make
|
|
|
|
the connections for the BCF. This was quickly solved by the
|
|
|
|
following script, which starts Ardour, finds the proper MIDI device
|
|
|
|
ports, and connects them:
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
#!/bin/ksh
|
|
|
|
# /usr/local/bin/start_ardour.sh
|
|
|
|
#
|
|
|
|
# April 17, 2005 - Joe Hartley (jh@brainiac.com)
|
|
|
|
# A quick script to start Ardour and then make the MIDI connections between
|
|
|
|
# the BCF2000 and Ardour.
|
|
|
|
|
|
|
|
# start Ardour and give it a little time before setting the MIDI connections
|
|
|
|
nohup /usr/bin/ardour &
|
|
|
|
sleep 3
|
|
|
|
|
|
|
|
# Set the IDs - note that they'll both end with a colon
|
|
|
|
BCF_ID=$(aconnect -o | grep BCF2000 | grep client | awk '{print $2}')
|
|
|
|
ARD_ID=$(aconnect -o | grep ardour | awk '{print $2}')
|
|
|
|
|
|
|
|
aconnect "$BCF_ID"0 "$ARD_ID"0
|
|
|
|
aconnect "$ARD_ID"0 "$BCF_ID"0
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
As an alternative to the patchbay in qjackctl, you could have it run
|
|
|
|
this script to start Ardour and make the MIDI connections. Click the
|
|
|
|
<guibutton>Setup</guibutton> button and choose the
|
|
|
|
<guibutton>Options</guibutton> tab. Enable the <guibutton>Execute
|
|
|
|
script after Startup</guibutton> option, and change the line to call
|
|
|
|
the <filename>start_ardour.sh</filename> script. In this example, I
|
|
|
|
change directories to the drive I record to so new sessions will
|
|
|
|
open there by default before I run the script.
|
|
|
|
</para>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="qjopt.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-programming">
|
|
|
|
<title> Programming the BCF2000 for effective use </title>
|
|
|
|
<para>
|
|
|
|
One problem that I ran into with the BCF2000 was that none of the
|
|
|
|
factory presets really did what I needed to control Ardour. I had a
|
|
|
|
modest set of things I wanted to use the BCF to control for a track:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Volume
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Panning
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Mute, solo and rec-enable
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Transport (play, stop, ffwd, rewind)
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Preset 2 (P2), the Simple Mixer, was almost there, but I could not map
|
|
|
|
the mute, solo and rec-enable controls in Ardour to a pushbutton on
|
|
|
|
the BCF. This was because in P2, the buttons sent a Program Change
|
|
|
|
signal, but Ardour expects a Control Change signal. This required
|
|
|
|
re-programming the BCF a bit. Here's a list of the controls and what I
|
|
|
|
mapped them to send:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Rotary knobs 1 through 8, when pressed: CC33 through CC40
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
First row of buttons: CC65 through CC72
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
second row of buttons: CC73 through CC80
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Here's a quick walkthrough to program the controls on the BCF. First
|
|
|
|
we'll do the rotary knobs:
|
|
|
|
</para>
|
|
|
|
<orderedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Hold down the EDIT button and press the rotary control. The
|
|
|
|
display will show b1.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Turn the rotary control labeled "TYPE" until the display reads
|
|
|
|
"CC".
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Turn the rotary control labeled "PAR" until the display reads
|
|
|
|
"33".
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Turn the rotary control labeled "MODE" until the display reads "t
|
|
|
|
on".
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Press the EXIT button.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</orderedlist>
|
|
|
|
<para>
|
|
|
|
Continue to program the other rotary controls in the same way,
|
|
|
|
incrementing the value set by the "PAR" control by 1 each time. This
|
|
|
|
will set the CC parameter for the second knob to 34, the third knob to
|
|
|
|
35, and so on.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The steps are the same for the two rows of pushbuttons under the
|
|
|
|
rotary knobs. The CC values for the first row of buttons run from 65
|
|
|
|
to 72, and from 73 to 80 for the second row.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Finally, you need to store these changes so that they'll be kept even
|
|
|
|
when the BCF has its power cycled.
|
|
|
|
<orderedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Press the STORE button. Its LED will start to flash.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Select a different preset number if you wish with the left and
|
|
|
|
right PRESET buttons.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Press STORE again to write the settings to an empty preset. If
|
|
|
|
you want to overwrite an existing preset, press STORE twice. You
|
|
|
|
can cancel the store at any time by pressing EXIT.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</orderedlist>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Your BCF2000 is now ready to control Ardour!
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id="bcf2000-preconfigured-preset-file">
|
|
|
|
<title> Preconfigured Preset File </title>
|
|
|
|
<para>
|
|
|
|
Here is a <ulink url="http://zappa.brainiac.com/preset1.syx">saved
|
|
|
|
preset file</ulink>, which has the definitions described above. You
|
|
|
|
can use <command>amidi</command> to load this into the BCF as
|
|
|
|
<xref linkend="bcf2000-loading-a-preset"/>.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-mapping-ardour-controls">
|
|
|
|
<title> Mapping Ardour controls to the BCF2000 </title>
|
|
|
|
<para>
|
|
|
|
The final step to control surface Nirvana is to map the controls in
|
|
|
|
Ardour to the knobs, buttons and faders on the BCF.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Before you can map things properly, you'll need to set the MIDI
|
|
|
|
options within Ardour. In the Editor window of Ardour, choose
|
|
|
|
<menuchoice> <guimenu>Windows</guimenu> <guisubmenu>Options
|
|
|
|
Editor</guisubmenu> </menuchoice>. Make sure the seq device is online,
|
|
|
|
and make sure <guibutton>MTC</guibutton>, <guibutton>MMC</guibutton>
|
|
|
|
and <guibutton>MIDI Parameter Control</guibutton> is set for the seq
|
|
|
|
device. Also make sure that the 4 boxes below are checked:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<guibutton>MMC control</guibutton>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<guibutton>MIDI parameter control</guibutton>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<guibutton>Send MMC</guibutton>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
<guibutton>Send MIDI parameter feedback</guibutton>
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="images/midiopts.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
<para>
|
|
|
|
Now you're ready to do the actual mapping. This is a pretty simple
|
|
|
|
process, all controlled with a <keycombo><keycap>Ctrl</keycap>
|
|
|
|
<mousebutton>Button2</mousebutton> </keycombo> click. This will pop up
|
|
|
|
a little window which says <guilabel>operate MIDI controller
|
|
|
|
now</guilabel>. Simply press the BCF button (or move the slider) that
|
|
|
|
you want to have control the Ardour function.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id="bcf2000-example">
|
|
|
|
<title>Example</title>
|
|
|
|
<para>
|
|
|
|
We want to map the Master fader in Ardour to the first slider on the
|
|
|
|
BCF. Hold down the <keycap>Ctrl</keycap> key on your keyboard, and
|
|
|
|
click with <mousebutton>Button2</mousebutton> on the Master fader in
|
|
|
|
Ardour. You should see the <guilabel>operate MIDI controller
|
|
|
|
now</guilabel>. Move the first slider on the BCF up or down a bit.
|
|
|
|
The window should disappear, and you should see the master fader
|
|
|
|
move up and down as you move the slider on the BCF. If that works,
|
|
|
|
move the fader in Ardour with your mouse. You should see the slider
|
|
|
|
on the BCF move up and down in tandem with the Master fader!
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
If the "operate MIDI controller now" window does not go away, there
|
|
|
|
is no connection between Ardour and the BCF. Make sure you've
|
|
|
|
properly connected the two as outlined in the Connecting to Ardour
|
|
|
|
section.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-transport-controls">
|
|
|
|
<title> Transport Controls </title>
|
|
|
|
<para>
|
|
|
|
The 4 buttons in the lower right corner are already mapped in Preset
|
|
|
|
2 to the MMC transport controls Home (or rewind to the beginning of
|
|
|
|
the session), Fast Forward, Stop and Play, as shown here.
|
|
|
|
</para>
|
|
|
|
<mediaobject>
|
|
|
|
<imageobject>
|
|
|
|
<imagedata fileref="images/transctls.jpg"/>
|
|
|
|
</imageobject>
|
|
|
|
</mediaobject>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-saving-and-loading-presets">
|
|
|
|
<title> Saving and Loading Presets </title>
|
|
|
|
<para>
|
|
|
|
After beating my head against a wall trying to get various programs
|
|
|
|
that handle SysEx messages to do what I wanted, I realized that once
|
|
|
|
again, the simplest way for me to do this the first time through is
|
|
|
|
from the command line. <glossterm linkend="gt-alsa">ALSA</glossterm>
|
|
|
|
provides the perfect tool for saving and loading files:
|
|
|
|
<command>amidi</command>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
First, use <command>amidi</command> to list the available ports:
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% amidi -l
|
|
|
|
Device Name
|
|
|
|
hw:0,0 M Audio Delta 1010 MIDI
|
|
|
|
hw:2,0,0 BCF2000 MIDI 1
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
There's the BCF, at port hw:2 (we can ignore everything after the
|
|
|
|
first number after the colon). We'll tell amidi to use this port with
|
|
|
|
the -p option
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id="bcf2000-saving-a-preset">
|
|
|
|
<title> Saving a Preset </title>
|
|
|
|
<para>
|
|
|
|
There's 2 parts to saving a preset: telling the BCF to send the
|
|
|
|
data, and telling the computer to accept it.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section id="bcf2000-recieving-the-data">
|
|
|
|
<title> Receiving the Data </title>
|
|
|
|
<para>
|
|
|
|
Run <command>amidi</command>, using the <option>-p</option> option
|
|
|
|
to specify the port, and the <option>-r</option> option to receive
|
|
|
|
the date into.
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% amidi -p hw:2 -r preset1.syx
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
The system will collect data from the MIDI port now until it's
|
|
|
|
told to stop with a
|
|
|
|
<keycombo><keycap>Ctrl</keycap><keycap>C</keycap> </keycombo> so
|
|
|
|
it's time to send some data.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-sending-the-data">
|
|
|
|
<title> Sending the Data </title>
|
|
|
|
<para>
|
|
|
|
To send the MIDI data for the current preset to the computer, hold
|
|
|
|
down the Edit key on the BCF and press the Store button. They
|
|
|
|
should both stay lit and the display should read
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
EG
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
. This is the Global Edit mode.
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
You can choose whether to send the current preset's data or the
|
|
|
|
data for all 32 presets by turning the Mode knob, #6, and
|
|
|
|
selecting either
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
All
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
or
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
SnGl
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
. When ready to send the data, press knob 6. The display on the
|
|
|
|
BCF will circle around while it's sending data, and return to
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
EG
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
when complete. At this point,
|
|
|
|
<keycombo><keycap>Ctrl</keycap><keycap>C</keycap> </keycombo> out
|
|
|
|
of amidi. You'll see a report on the amount of data read:
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% amidi -p hw:2 -r preset1.syx
|
|
|
|
13169 bytes read
|
|
|
|
|
|
|
|
xtc:~% ls -l preset1.syx
|
|
|
|
-rw-r--r-- 1 jh jh 13169 May 1 22:14 preset1.syx
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
The data for the preset is now saved in the file
|
|
|
|
<filename>preset1.syx</filename>. Press Exit on the BCF to exit
|
|
|
|
the Global Edit mode.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-loading-a-preset">
|
|
|
|
<title> Loading a Preset </title>
|
|
|
|
<para>
|
|
|
|
Loading a .syx file, such as the one saved above, is very simple.
|
|
|
|
First, select the preset on the BCF to choose the preset to
|
|
|
|
overwrite. Then call <command>amidi</command> using the
|
|
|
|
<option>-s</option> option instead of <option>-r</option> to send a
|
|
|
|
file.
|
|
|
|
</para>
|
2007-02-01 23:29:55 -05:00
|
|
|
<screen>
|
|
|
|
xtc:~% amidi -p hw:2 -s preset1.syx
|
|
|
|
</screen>
|
2007-02-14 22:49:43 -05:00
|
|
|
<para>
|
|
|
|
There will be a quick left-to-right flash of the encoder LEDs along
|
|
|
|
the top of the BCF, followed by the display circling around until
|
|
|
|
the data is loaded. It will then display the preset number again.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The preset is now loaded with the settings from the file. They are
|
|
|
|
only active as long as the preset is not changed. If you go to
|
|
|
|
another preset and back to the one you loaded, all the changes will
|
|
|
|
have disappeared. To save the settings,
|
|
|
|
</para>
|
|
|
|
<orderedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Press the STORE button. Its LED will start to flash.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Select a different preset number if you wish with the left and
|
|
|
|
right PRESET buttons.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
Press STORE again to write the settings to an empty preset. If
|
|
|
|
you want to overwrite an existing preset, press STORE twice. You
|
|
|
|
can cancel the store at any time by pressing EXIT.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</orderedlist>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="bcf2000-bcedit">
|
|
|
|
<title> Using BCEdit </title>
|
|
|
|
<para>
|
|
|
|
The tool provided by Behringer to manage presets and other things on
|
|
|
|
the BCF is the Java program
|
|
|
|
<ulink url="http://www.behringer.com/05_support/bc_download/bc_downloads.cfm">BCEdit</ulink>.
|
|
|
|
This program will start up under Linux provided the correct version of
|
|
|
|
Java is used. I've found that
|
|
|
|
<ulink url="http://java.sun.com/j2se/1.5.0/download.jsp">JRE 5.0
|
|
|
|
Update 2</ulink> starts up correctly, but earlier versions of 5.0 will
|
|
|
|
not.
|
|
|
|
<ulink url="http://behringer-en.custhelp.com/cgi-bin/behringer_en.cfg/php/enduser/std_alp.php?sm=2">The
|
|
|
|
Behringer support page</ulink> says that the "editor software was
|
|
|
|
originally developed under J2SE-1_4_2_05". I tested it with
|
|
|
|
J2RE1.4.2_08 and BCEdit started, but was unable to see the BCF when
|
|
|
|
the "Scan" button was pressed. Running under JRE_1.5.0_02, pressing
|
|
|
|
the "Scan" button found the BCF, and I was able to load presets from
|
|
|
|
the BCF to BCEdit, but when I simply renamed the preset and tried to
|
|
|
|
write it back to the BCF, I got a Timeout Error while sending "$rev
|
|
|
|
F1" in the application.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
At this point, I don't consider <application>BCEdit</application> to
|
|
|
|
be fully usable under Linux yet.
|
|
|
|
</para>
|
|
|
|
</section>
|
2007-02-01 23:29:55 -05:00
|
|
|
<!--
|
|
|
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
|
|
href="Some_Subsection.xml" />
|
|
|
|
-->
|
|
|
|
</section>
|