diff options
Diffstat (limited to 'manual/xml/bcf2000.xml')
-rw-r--r-- | manual/xml/bcf2000.xml | 647 |
1 files changed, 647 insertions, 0 deletions
diff --git a/manual/xml/bcf2000.xml b/manual/xml/bcf2000.xml new file mode 100644 index 0000000000..7933aac448 --- /dev/null +++ b/manual/xml/bcf2000.xml @@ -0,0 +1,647 @@ +<?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"> + <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> +<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> + </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> +<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> + </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> +<screen> +cat bcf2000_1-07.syx > /dev/snd/midiC2D0 +</screen> + <caution> + <para> + Make sure you use the actual device you determined in the previous step + </para> + </caution> + + <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> +<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> + <para> + Here, the BCF is 80, and Ardour is 129. The proper connections can be made + between the two with two commands: + </para> +<screen> +xtc:~% aconnect 80:0 129:0 +xtc:~% aconnect 129:0 80:0 +</screen> + </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> +<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> + <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> +<screen> +xtc:~% amidi -l +Device Name +hw:0,0 M Audio Delta 1010 MIDI +hw:2,0,0 BCF2000 MIDI 1 +</screen> + <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> +<screen> +xtc:~% amidi -p hw:2 -r preset1.syx +</screen> + <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 +<screen> + EG +</screen> + . This is the Global Edit mode. + </para> + + <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 +<screen> + All +</screen> + or +<screen> + SnGl +</screen> + . 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 +<screen> + EG +</screen> + 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> +<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> + <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> +<screen> +xtc:~% amidi -p hw:2 -s preset1.syx +</screen> + <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> +<!-- + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" + href="Some_Subsection.xml" /> + --> +</section> |