You are here

FXpansion Guru

Virtual Drum Sampler [Windows/Mac OS X]
Published September 2005
By Paul Sellars

FXpansion Guru

FXpansion's software drum machine takes the 'pad sampler' concept pioneered by Akai's MPC range to new levels.

"The beatbox of your dreams is here!" the brochure proclaims. Which is nice. I was wondering when that was going to turn up.

The beatbox in question is FXpansion's Guru sampling drum machine, which is constructed in software rather than hardware. As such, it has the advantage of offering near-seamless integration with your preferred sequencing applications, via the VST, RTAS, Rewire, Audio Units and DXi interfaces. It also has the associated disadvantage of not actually existing in any tangible, material form, and is consequently not quite as well suited to physically banging out a rhythm on as an Akai MPC or similar hardware beatbox.

Guru is available for both Windows 2000 and XP, provided you have an 800MHz or better CPU, and Mac OS 10.3 or above, running on a 733MHz G4 or better. A minimum of 384MB RAM is required, while 512 is recommended. A DVD-ROM drive is also required, as the software installs from a DVD, along with several Gigabytes of sample content from Yellow Tools, Wizoo, Groove Criminals, Gforce and others.

Installation is trouble-free. You have the option to install Guru as a stand-alone application, as well as in the above-mentioned plug-in formats. A couple of mouse clicks are all it takes, and the only minor inconvenience is the time spent waiting for the rather sizeable sample library to be copied to your hard disk. Copy-protection is in the form of a simple serial number, provided with the DVD. The first time Guru is opened you're prompted for said number, after which you won't be bothered again. No on-line activation, no USB dongles, no headaches at all — perhaps FXpansion feel that elaborate copy-protection mechanisms are more trouble than they're worth. Whatever their reasoning, it serves to make life just a little bit easier for the end user, and may earn them a little extra goodwill from customers as a consequence.

A nice, printed manual is provided, complete with full-colour screen-grab illustrations. I'm aware that I always go on about printed documentation in software reviews, but I really do think it makes a difference, especially when learning your way around a new application. Guru's manual is reasonably well-written and quite comprehensive.


At the time of writing, no demo version of Guru was available to download (although some good, informative tutorial videos were). A demo version is planned, and will hopefully be available by the time you read this, or shortly thereafter. Personally, I always like to try a demo version before buying any software and I'd generally advise readers to do the same. In an ideal world a review like this would provide you with all the information you needed to make a decision, but in reality it's still always better to see things for yourself before handing over your money!

Mighty Engines

Guru's user interface is fairly intuitive, and it's not difficult to work with. That said, there are one or two design concepts that perhaps aren't immediately self-explanatory, and are worth explaining. Guru (or each instance of Guru, if multiple plug-in versions are open) has eight 'Engines', each of which can be thought of more or less as a drum machine in its own right. The eight Engines respond independently on MIDI channels 1 to 8.

Each Guru engine boasts 16 Pads, on which up to eight samples per Pad can be layered.Each Guru engine boasts 16 Pads, on which up to eight samples per Pad can be layered.

Engines aren't completely independent of one another, however. While the first of the Engines can have its tempo set arbitrarily (if Guru is used as a plug-in it takes whatever tempo information is supplied by the host application), the remaining seven Engines must be set to a multiple of the first Engine's tempo. So, for example, Engine 1 might be set to 120bpm, while Engine 2 could be set to '1/2' (half Engine 1's tempo), or '2/1' (twice Engine 1's tempo). This 'tempo multiplier' can be anything from '1/8' (one-eighth the original tempo) to '8/1' (eight times the original tempo). Using multiple Engines and different combinations of tempo multiplier, it's possible to come up with a variety of complex, layered polyrhythmic arrangements.

Guru's Engines play Patterns. A Pattern can contain a maximum of 128 steps, spread over four pages, and each Engine can store and play 24 different Patterns. You can switch Patterns by clicking the on-screen Pattern buttons, by sending a MIDI note between C3 and B4, or by using Guru's powerful Scenes function (see box). Patterns can be programmed in step time or recorded in real time, with or without quantising, in both the stand-alone and plug-in versions of the program. Guru's Pattern recording functions are relatively simple, and very easy to use. You can either record hits from a MIDI controller, or use the mouse to click the on-screen Pads. Buttons labelled Commit and Undo allow you to keep or discard recorded passes without leaving record mode.

There's also a neat Groove feature, which allows you to apply varying amounts of timing and velocity variation to a Pattern, based on one of several dozen Groove templates. It's also possible to create your own templates — see the 'Shift Graphs And Other Graphs' box. Each of the eight Engines has its own independent Groove controls.

Finally, there are those Pads. A Pad is essentially a playback sampler, with its own associated on-screen pad and assigned MIDI note. Each Engine has 16 Pads, which are divided into four categories: Kicks, Snares, Hi-Hats and Percussion. Pads are fairly sophisticated, allowing up to eight different samples to be either stacked or velocity-switched. Parameters including gain, pan, pitch and filter settings are all adjustable, along with sample start and end points. Each pad has two envelope generators, one controlling amplitude, the other patched to pitch and filter cutoff.The Mix view is where you combine the outputs from Guru's eight Engines and apply effects to them, if you wish.The Mix view is where you combine the outputs from Guru's eight Engines and apply effects to them, if you wish.


Guru provides an impressive array of built-in effects, which on the whole sound excellent. These are accessible in several different ways. 'Pad effects' are basically insert effects, applied one per Pad. Pad effects include compression, several flavours of distortion, ring modulation, some nice gritty sample-rate and bit-depth reduction effects, and six different one-band parametric EQs. There are also half a dozen oscillator Pad 'effects' which don't process sound at all, but instead synthesise different waveforms (sine, triangle, saw, square, pulse, noise) and can be used to generate various pitched and percussive noises.

The remaining 'Engine effects' can be used as inserts on a one-per-Engine basis in the 'Mix view' panel, added to Aux effect busses (each Engine has three Aux busses), or inserted in the Master buss via which all eight Engines are routed. Engine effects include a stereo tempo-sync'ed delay, flanging, chorus, compression, reverb, distortion, LFO and envelope-controlled resonant filters, a phaser, a comb filter, 'bit-crusher' distortion effects, ring modulation and EQ. There's also a 'Trancegate' rhythmic gate, and an unusual 'Freezer' effect, which grabs part of the incoming audio stream and loops it in surprising ways.

Shift Graphs And Other Graphs

It's possible to use Guru simply as a MIDI-controlled drum sample plug-in, and allow your host application to take care of all the sequencing duties. That would be a shame, though, as Guru's onboard sequencer is deceptively powerful, and very well designed. At first glance, it may appear primitive: a straightforward step sequencer, with everything hard quantised. While this would have the advantage of simplicity, it would be rather inflexible — and wouldn't allow Smart Slice to accurately extract phrasing information from sampled drum patterns.

Guru solves the problem with what FXpansion call Shift Graphs. Graphs in Guru are, in essence, control data sequences associated with patterns, rather the like the controller strip in the edit page of a conventional MIDI sequencer. There are Graphs for velocity, pan, tuning and filter cutoff, among others. Shift Graphs are implemented in a very similar way, except they don't contain control data in the usual sense. Instead, they allow you to shift each step backward or forward in time slightly. Values above the centre line make events 'late'; values below the line make them 'early'.

FXpansion Guru

When Smart Slice extracts the phrasing from a sampled pattern, it automatically creates Shift Graphs for the detected slices, to ensure that all the idiosyncrasies of the original phrasing are preserved as closely as possible. Likewise, when patterns are recorded live, without quantising, Shift Graphs are generated to preserve the feel of the original performance.

You can also create your own Shift Graphs, to liven up patterns you've programmed from single hits. To introduce a bit of natural variation into a hi-hat pattern, for example, simply switch to the Shift Graph for one of your Hi-Hat Pads and quickly draw in a gentle, wavering curve. This immediately loosens up the pattern, and makes things feel a bit less metronomic. You can be as precise or as random as you like when creating Shift Graphs, and trying out different variations is quick and easy. If you come up with anything you particularly like, it can be saved as a Groove template for use in other projects.

In addition to Shift Graphs, there are two other types of Graph that can be used to interesting effect. Repeat Graphs allow you to repeatedly trigger a Pad a variable number of times within a single step of a Pattern. The Pad can be retriggered two or three times, producing fairly natural-sounding 'drags' or rolls, or many more times to create anything from short 'machine gun' fills to strange, glitching mechanical whines.

Scrub Graphs are different again, and allow you to dynamically shift the start point of the sample assigned to a Pad. The centre line represents the normal start point, as defined in the Pad edit view. Values above the centre line move the start point for playback forward (ie. to a point later in the sample), while values below the line do the opposite. Some peculiar effects can be created in this way.

Smart Idea

One of Guru's more interesting features is its 'intelligent' sample-slicing function, referred to by FXpansion as Smart Slice. This is similar to the kind of transient-detecting loop-slicing algorithm pioneered by Recycle (Guru can import Recycle-sliced files), but with a clever twist. Put simply, Smart Slice not only attempts to work out where the individual hits in a loop are, it also attempts to guess what they are. Based on the material it finds within an audio file, Guru will divide the loop up into individual hits, and automatically assign bass drums to the four Kick Pads, snares to the four Snare Pads, hi-hats to the four Hi-Hat Pads and any remaining hits to the remaining Perc(ussion) Pads.

I have to admit I was sceptical as to how well this would work, but the results are really quite impressive. Switch to the Loops tab in Guru's built-in file browser, navigate to a folder full of suitable files, and a list of file names appears with a small plus ('+') symbol beside each one. Click the plus symbol and the 'tree' expands, directory-fashion, allowing you to see a list of detected slices within the file. Guru analyses these slices and automatically picks what it considers to be the best four candidates for each Pad category. Click on each of the Pads in turn (or play their assigned notes on your MIDI controller) and you can immediately hear which slices have been assigned where.

What's striking is how quickly the analysis and assignment of slices is carried out. With shorter samples, it's all but instantaneous. You simply select the file name in the browser, and straight away the Pads begin to flash, indicating that new slices have been assigned. Longer files take longer, but rarely more than a couple of seconds.

There are three options governing exactly how Smart Slice works. When Both is selected, Guru will load the detected slices from the audio file and automatically create a Pattern to trigger them in their original sequence. When Score is selected, the sequence Pattern is created, but the slices aren't loaded. When Audio is selected, the sample slices are loaded, but no sequence pattern is created. This presents some interesting possibilities. You can, for example, pick a drum loop you like the sound of, and have Guru automatically load its slices and create a Pattern to trigger them. You can then activate the Audio option and select a different drum loop in the browser. Guru will analyse the new loop, and a moment later you'll be able to hear the first loop's sequence triggering the second loop's slices. If you don't like the results, just select a different file in the browser and hear how some different slices sound. Or activate Score and try loading a different Pattern (see the 'Shift Graphs And Other Graphs' box for more details about extracting Patterns). All this can be done on the fly, while Guru plays. Juxtaposing one loop's Pattern with another loop's slices can produce some surprising results, even with the most familiar and over-used samples, and Guru makes the process close to effortless.

Of course, Smart Slice is not absolutely foolproof. To work well it needs to be fed audio files of a sensible length, which have been trimmed to loop cleanly when repeated. Even then the odd confusion can arise: a handclap may be incorrectly identified as a snare, or a low tom might end up on one of the Kick Pads. Overall, though, it works remarkably well.

If some loops seem to be particularly problematic, you can switch from Smart Slice's default Fast mode to either Enhanced or Hi-Sens mode. Both of these can provide better results with difficult files, at the cost of a slightly slower analysis phase. Another option available is Equal-16ths mode, which simply slices a loop into 16 equal segments and assigns these to the Pads sequentially. Needless to say, you're under no obligation to keep Guru's automatically generated slices and Pad assignments. You can easily move the beginning and end points of a slice, and you can manually assign different slices to different Pads, as you like.

Creating A Scene

FXpansion Guru

Guru Scenes could be extremely useful for improvising arrangements in a live performance, and triggering Scene changes with MIDI notes from your host sequencer is a good way of creating complex arrangements from your Guru Patterns.

A Few Small Points

As a reviewer, I feel that one of my principal responsibilities is finding things to complain about. Sometimes this is easy, but in the case of Guru, I've struggled to come up with any really substantial objections. That said, there are couple of features currently absent which could be very useful, especially for users working with the stand-alone application.

The first of these is audio file export. While it's easy to create a WAV or AIFF file mixdown of your patterns when using one of the plug-in versions of Guru within an appropriate host application, at present there isn't any way of doing this with the stand-alone application.

Secondly, even if audio export were available, its usefulness would be limited by the fact that Guru does not include any kind of in-built 'song' sequencer for chaining patterns together to create larger arrangements. Of course, this is no problem when running Guru as a plug-in, since Scene or Pattern changes can be triggered by your host's MIDI sequencer. Even so, it would be a nice addition. FXpansion tell me they have plans for future updates of Guru which will include a proper song sequencer and audio file export functions for both the plug-in and stand-alone versions. For the time being their absence is unfortunate, but not disastrous.

One final whinge is that there's no straightforward way to switch the pattern resolution to triplets. I raised this with FXpansion, who pointed out that triplet phrasing can be created in any of the Engines other than the first one, by setting the tempo multiplier to '3/2' and the Pattern length to '12' or '24'. In my opinion this is stretching the definition of 'straightforward' a bit, but it is a solution.

These quibbles aside, I have to say that I have been impressed by Guru. It's a well designed and well organised virtual drum machine with some genuinely innovative features. Smart Slice works better than I expected it to, and could be a valuable labour-saving feature for anyone regularly working with sampled loops. The combination of straightforward, point-and-click Pattern editing and the flexible phrasing options provided by Shift Graphs is a clever compromise, which makes programming effective patterns quick and easy.

Provided you're happy for your drum machine to be virtual rather than actual, and assuming your computer is already equipped with a suitable audio interface and MIDI controller, you can't go far wrong with Guru. At £150, it's competitively priced for a product of this type, and the supplied sample library full of patterns, kits, hits and loops makes a very worthwhile addition to the bundle.

Published September 2005