diff options
Diffstat (limited to 'manual/xml/bcf2000.xml')
-rw-r--r-- | manual/xml/bcf2000.xml | 671 |
1 files changed, 671 insertions, 0 deletions
diff --git a/manual/xml/bcf2000.xml b/manual/xml/bcf2000.xml new file mode 100644 index 0000000000..64c1b2f246 --- /dev/null +++ b/manual/xml/bcf2000.xml @@ -0,0 +1,671 @@ +<?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> + <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> +<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> |