A BETTER LIVE-PERFORMANCE CSOUND PRESET FOR CME UFx SERIES CONTROLLERS Art Hunkins www.arthunkins.com abhunkin AT uncg DOT edu February 2008 The CME UFx series of MIDI keyboard controllers (UF5/6/7/8) includes an ample set of 9 sliders and 8 rotary knobs - all programmable. Unfortunately, these controllers have a single (if elaborate) preset - one that is both non-standard and among the stranger ones I've seen. (The more recent UFxx series allows for multiple presets and alleviates several of the following "quirks.") Although several other UFx buttons and knobs generate MIDI data, none produce continuous controller data or note on/off (the data types required by my compositions) - and none are programmable. (In addition, they are plagued by their own quirkiness.) Among the major annoyances: 1) a master volume slider that sends sysex (v1.03 and earlier drivers, Windows only); 2) several controller groupings that send identical MIDI messages (presumably an invitation to manual programming or a DAW's LEARN application); 3) a rotary control that issues tempo data. The duplicate controllers, in particular, limit the value of these factory settings as a useful preset. They also rule out both MIDIOx maps and scripts as a possible "fix" (MIDIOx, the "Swiss Army Knife" for Windows, is discussed below). Manually programming, or sysex, are the only paths to a more robust and useable preset. On the up side: 1) there are thankfully no endless encoders on the UFx (these are generally useful *only* for DAW's); 3) the 17 controls are fairly easy to program manually; 3) once programmed, the unit *does* remember the changes! The accompanying sysex file, UFxCsound.syx, may represent the simplest way to create a workable set of up to 17 controllers for live performance Csound. (If only 8 or 9 are required, however, see below.) My pieces are mostly designed for one or more banks of eight consecutive continuous controllers (CC's), often supplemented by one or two individual CC's. These banks are identified by the number of their first CC, with individual CC's specified separately. UFxCsound.syx sets the bank of 8 sliders to CC's 20-27, the 8 rotary knobs to CC's 28-35, and the master "Volume" slider to CC 36. In my compositions, the faders should constitute the first bank (I recommend sliders over pots whenever possible), the knobs bank two (positioned in this case, directly above). Often, in my work, the separate slider (numbered either immediately following the last bank, or as CC7) functions as a master level control. These same selections are advised should you decide to program the UFx manually. The UFx series Editor (v1.0 beta - downloadable free from cme-pro.com) is fine for designing presets, but I've been unable either to send or receive sysex with it - either via MIDI or USB. UFx's lack a MIDI IN port, so USB must be used to send the sysex file. Any sysex transfer utility should do the job. On Windows, I work with the versatile MIDIOx (free download - midiox.com). As the sysex file is only 59 bytes long, it can easily be hand-edited (in MIDIOx's Sysex Command Window, for example). The CC#'s for the 8 knobs are listed starting at byte 8 (1C to 23 Hex); the 8 faders appear later as 14 to 1B Hex. The 24 Hex immediately preceding this second set, identifies the "Master Volume" CC (36 Dec). To assign CC *7* to this "master slider" just edit the 24 to 07. Here is the sysex transfer procedure: 1) Connect a USB cable between the UFx and your computer (the UFx requires that USB drivers be installed on either WinXP or Mac OSX; earlier OS's, other than Windows 2000, are not supported). Note, though, that MIDI *Out* from the UFx does not require a USB connection or driver, and works with all operating systems. 2) In your sysex utility, select UF MIDI OUT as MIDI Output Device. 3) Simultaneously press TOUCH and DUAL buttons on the UFx. Three small L's will appear in the LED display. 4) Send the sysex file. 5) On the UFx, set the KNOB FUNC LED to ON, and the *lower* FADER FUNC LED to ON. 6) Move any control to clear the LED display panel. If you need only *8* faders, you are lucky; you don't need to program anything. Just be sure that both FADER FUNC LED's are OFF. In this configuration, the faders are set to CC7 on channels 1-8. In my compositions, the coded CHAN value of "0" enables this grouping. (In earlier works [for CsoundAV], this same arrangement is coded as a bank starting with CC "-1".) If, however, you want a 9th fader, you have a bit of work to do. With multichannel coding (as above), my compositions require the 9th fader to be *CC 7, channel 9*. The problem: in "multichannel mode", the UFx's Master Fader is not programmable; nor can the Modulation Wheel be modified (it is fixed at CC1). The solution: manually program a rotary knob of your choice. Procedure: set the channel to 9 by momentarily pressing CHANNEL and turning the large endless knob until 9 appears in the LED display. (You have about two seconds to begin turning.) Then, depress and hold KNOB FUNC while you turn the preferred rotary knob - until 7 is displayed. Release KNOB FUNC. Finally, make sure the KNOB FUNC LED is ON. (FADER FUNC LED's are OFF.) To program any of the 17 controls by hand, simply hold down FADER FUNC or KNOB FUNC (as appropriate), turn the control until the desired CC# appears in the LED display, and release the button. Then make sure that either the lower FADER FUNC LED, or the KNOB FUNC LED, accordingly, is ON.