M-Audio Trigger Finger

Integrate the M-Audio Trigger Finger finger drum pad controller.

By Tom Brockway (b rock) from P5 Forum



Now that it's mandatory for all P5 users to purchase a Trigger Finger (read the terms of servicer agreement <grin>), I thought that I'd better get cracking. There's nothing too sexy here (that'll come in future installments), but the basics need to be addressed with this "easy" editor. Before you get started here, you might want to read about how the writers of the Enigma software documentation decided on its content. OK, enough with the jokes; I need to write this down before I end up confusing myself all over again:

Customizing a User Bank

First, create a New User Bank using either the plus icon in the GUI, or in the File menu [Ctrl+N], and name it to something appropriate. Keep the confusion down by de-selecting Show ROM Presets for All Evolution Devices in the Options/Preferences menu. At this point, you should import the settings contained internally in the TF to the Enigma interface, to see what you're dealing with Download Device to Device Bank, or Receive, depending on where you read about it. Use this red icon Trigger selection as a holding area for transferring to & from the device's internal memory.

Getting Clipped with the Hit List

OK, now what? There are a few ways to go with this. The Graphical View seemed to be the way to go, but you can only change one parameter at a time there (in the Control Editor [Ctrl+I]). Use the toggle switch at the bottom-right to switch to the List View. Here you can Shift+click or Ctrl+click several parameters at once, and change them all. If you Ctrl+click & drag a grouped selection, that will replace the destination, rather than swap with it [as with clicking and dragging]. In all cases of drag & drop, you're looking for that F1-F4 sliders icon that appears after clicking and holding.

You can also drag a User Bank's preset pad to the same pad in another bank, like your "Trigger" placeholder area, but remember that Pad 14 (for example) will only get dropped into Pad 14 of the destination Bank. For pad 'shifting', use the Copy and Paste functions in the Edit menu. That'll allow you to jump pad numbers from one bank to another.

There's also a handy Describe Clipboard selection to keep you straight on what's exactly in there. This especially comes in handy when you've Copied several individual parameters from the List View for placement elsewhere. The standard Windows shortcuts apply here, but it's worth noting that all of your carefully chosen labels also get copied and pasted. That just adds to the confusion, and requires renaming the pad preset later.

A Trip to the Library

The best-kept secret in the TF is the Library; receiving only a passing mention in the .pdf file. Click on the icon under the Enigma title to bring up a floating window that contains most everything that you need. There are collections of MIDI Note numbers and all the standard CC messages with extended parameters of both the MIDI spec, and those specific to the TF [GM; GM2 and Sysex; Trigger Finger Controllers]. There's also Transport controls [MMC], and dozens of parameter collections of very common soft-synths [freebies and commercial].

Although it's in .xml [like the User Banks], I haven't been successful in saving my own libraries yet, but I'm working on it. What a boon to P5 if we could save & exchange our own synth templates. For now. we'll have to settle for User Bank exchange, which can accomplish the same thing (along with MIDI Remote Control and/or Device Chains).

The Library allows you to drag all of these listed values to your User bank, if only by one parameter at a time. But the advantage is that they're all sitting there for the taking, and you can place one window beside the other for a quick transfer. No more thinking, "Was pitchbend the extended CC# 144, and which one was Note On/Off Toggle"? It's all there in plain English, and the numeric translations are done for you already.

One special note: The TF uses that damnable "down two octaves" MIDI note convention, like one particularly stubborn synth manufacturer. So, if you're looking to add a C5 [as seen by Project5], load a C3 instead. Everything is transposed down 2 octaves. And C0 is represented as C-2, which always ends up looking like C2 to me. Just get it in your head that this is the way it works, and step around that potential stumbling block.

Bring It On Home

This one gets everyone, and it's underdocumented (like almost everything in this tutorial). When you hit the Send Changes in the Device Bank to the Device or Send Current Bank to the Device icons [Update and Send in the .pdf], you'll see the unit flashing "SYS". Immediately hit the Save & Exit button on the TF, followed by the pad number that is the destination. The changes will not be activated until you do so, and fiddling with any other controls before doing so inevitably screws up the process.

At one point, I had a real problem with the Sysex transfer timing out. It seemed that if I placed the unit in USB mode [Peek and Select buttons pressed simultaneously], the transfer would go more smoothly. That didn't make much sense at all, as this action deals with the MIDI Out jack in the back. But, hey: it worked. I ended up uninstalling the Enigma software [yes, you can overwrite the "ROM" presets <g>], and re-installing the software seems to have mitigated that problem.

A Few Notes of Interest

Once you get around these "little" roadblocks, the rest of the procedures should prove to be a little easier. But I have a feeling that this will be a continuing tutorial, as I haven't scratched the surface of the functionality or noted all of the potential pitfalls. This one was just to get your foot in the door ...

Here's a couple of things to look out for, though. When transmitting pitchbend messages via the pad, the range of the message goes from the negative maximum to the positive maximum. Unlike a Pitch Wheel, there is no spring-loaded return to center]. So, if your softsynth's upper and lower PB ranges are both set to two semitones, the pressure in a pad will transmit starting from the inactive zero value. It'll go down 2 semitones, at half-pressure it'll cross zero again, and top out at a +2 semitone value. There is a potential for some "stuck" PB messages, especially in conjunction with the Note On/Off Toggle settings.

Those Toggle settings are supposed to alternately send a Note On; then a Note Off message. But the Note Offs don't seem to get received correctly, and you can get a lot of hung notes that way. As a matter of fact, whatever notes drift onward aimlessly becomes stuck on another [KB] controller sharing the same Port/channel. An All Notes Off cures the situation, as well as a double-click on the CPU meter in P5. Use that procedure to unstick PB messages, too. There's some neat things to be done with a Toggle setting like this, but you can approximate many of them using a Sustain footswitch [parallel in software.]

Now that that's out of the way, I can concentrate on the actual cool stuff that you can do with this unit, including controlling three destinations at once with a single pad. Questions/comments/corrections are welcome ...

Addendum: MIDI Note Number Convention

In the Control Editor of the Enigma, load any parameter (double-click on anything in the Graphic View) and go to the Extra Variables tab. Here's where you set the parameters that affect the entire current bank in the Trigger Finger. There'a the Global MIDI channel (defaulted to Ch. 10: as if the TF is geared towards drums ... <g>). You can also set the velocity curve (one of nine response shapes; see the .pdf), the pressure sensitivity (C0-C3 = increased pressure output for less physical pad pressure), and the velocity mode. This last one determines if you're outputing the usual pad-controlled velocity values (Off), maximum velocity value of 127 (Full), or the per-pad values set in Vel Lock (Lock).

I haven't worked out the kinks in the last mode, or the fact that you can enable all three at once (that has potential!). But the last Extra Variable available is Transpose, with a value range of 24 semitones in either direction. If you drop this parameter down to -24 (Save everything regularly!), every note that you drag from the Library will now align with the visual feedback in the Inspector KB's highlighted notes, and audibly as well.

When you hit the 'negative numbers' (C-2=C0 and C-1=C1), though, you're on your own. <g> If you do choose to take this course, make sure that you make it a habit to always start a new bank with a template that contains the -24 Transpose setting, or this 'fix' will do more harm than good.

Addendum: MIDI Note On/Off Convention

By way of an explanation for this: There's a 'problem' in the way that many (including M-Audio) controllers treat MIDI Note messages. It's really a 'difference of opinion' that can lead to problems, and undoubtedly springs from concerns over development costs and ease of implementation.

As defined by the MIDI spec, a true Note On message consist of the hex numbers 9nH. That indicates a Note On (the nine part), a MIDI transmit channel ( n+1 equaling the MIDI channel number), and the "H" (sometimes "&H") just stating that it's a hexidecimal number. This is the status byte, and (in this case), it's followed by two data bytes: the first being the actual Note number; the second value for the velocity struck.

A Note Off command follows the same definition, but with 8nH, followed by the same two types of data bytes. Controllers that follow this specification actually send two different MIDI messages: a Note On when struck, and a Note Off upon release of the key. This can lead to some cool & realistic effects (programming a harpsichord sound to include the quill lightly touching a string on release), and allows you to use the Release Velocity parameter in Dimension's MIDI Matrix, among other things of interest.

But some manufacturers (and this is acceptable under MIDI convention) use a MIDI Note On (with a velocity value of zero in its last data byte) to substitute for a true Note Off value. All M-Audio controllers that I've tested use this velocity 00 Note 'Off' scheme, including Oxygen8 and the Trigger Finger. And I suspect that Project5 is looking for an actual Note Off message, although M-Audio controllers other than the TF shut notes down correctly, so there must be an allowance in P5 for a "Note On" Note Off command.

So, for this to all work correctly, any Note On that you press must be followed at some point downstream by either a Note Off, or a Note On with 00 velocity on the same MIDI channel. After studying the stream from the Trigger Finger, I see a lot of Note Ons (with the setting of Note On/Off toggle), but no Note Off of either variety with consecutive taps on the pads.

You know that I hate to throw out the "B" word without completely testing this "non-behavior", but so far, I can see no Note Off equivalents to shut down a Note On message in the Note On/Off Toggle selection command. So just be aware that these notes will drift on like ghosts, wandering aimlessly throughout eternity without resolution. That is, unless you reset the CPU, send an All Notes Off command [CC#123], or power down your DAW for the evening.

Addendum: A Trip to the Library, revisited

To answer one of your documenteer's questions...

In "A Trip to the Library". He says that "Although it's in .xml [like the User Banks], I haven't been successful in saving my own libraries yet, but I'm working on it. What a boon to Project5 if we could save & exchange our own synth templates."

I worked on the team that developed 'Cyclops', aka Enigma (btw, that joke where he points off to the Enigma machine is actually quite accurate since that's was what it was the reasoning behind the name). We developed those libraries and I wrote a quick tool that can convert CSV files into Enigma compatible XML files, so it is possible to exchange library files but it'd obviously be unsupported by M-Audio.

The site where I've got an unofficial release of the program is here: http://mike-martin.com/evol/csv2cyclops/ it comes complete with source since it's really just a quick and dirty PHP script.

If it is at all possible to contact the author to let him know this information, it may be of use. I'm not a SONAR user (Pro Tools & Nuendo for all my sins) so I can't reply to the forum post.

Anyway, I hope this information is useful to the more technically brave Trigger Finger users. Creating one's own Enigma Library files may break compatibility (because of the unique ID system) with future releases - which is why Enigma doesn't allow users to create their own library lists, though M-Audio (to my knowledge) haven't updated the library list for some time.

So that's why this script is completely unsupported, but it is what we used (and still do) to create the library files.


Michael Martin
Composer and Musician

The content provided on this web site is public information which was originally posted in the Cakewalk User Forums and on the old Project5 Wiki. Project5™ and Cakewalk™ are registered trademarks of Cakewalk, Inc. Other product names or companies names may be trademarks of their respective companies whether marked as such or not. Portions of this web site are copyright © 2017 Robert J. Hammond ( A member of the Technetos family of web sites ).