This Kontakt-based virtual instrument doesn’t just give you sounds to play back your ideas. It can also give you the ideas themselves!
Generative music software is an interesting branch of music technology, but one that has remained quite specialised until now. Desktop applications such as Nodal, Koan Pro and Noatikl (which also exists as an iOS music app) are perhaps some of the better-known titles in this category, but I think it is fair to say that their appeal lies mainly within ambient music styles. Riff Generation is another product that includes a generative element, but while you can certainly use it to create dreamy soundscapes, In Session Audio suggest it is also capable of much more.
Riff Generation is built from a number of fairly familiar elements. It is a virtual instrument in its own right, containing a collection of 255 synth-based sounds going from mellow to aggressive. It is also a sophisticated step sequencer. You can create a pattern of up to 256 steps, with defined pitch intervals for each step, and this pattern is then triggered from a single MIDI Note, which acts as the root note of the pattern. The step-sequencer grid provides control over step velocity, note duration, volume, pan, pitch, step length and, most interestingly, sound: you can use up to five different sounds within a single pattern. Swing, glide and some rather cool stutter, reverb and delay effects can also be controlled on a per-step basis. MIDI patterns created within the step sequencer can be dragged and dropped into your host sequencer if you wish to use a different virtual instrument for playback.
As well as the step-based effects, there are also global effects: high- and low-pass filters, saturation, modulation, compression (including a Transient Shaper section), four-band parametric EQ plus global delay and reverb, including a convolution reverb option. However, it’s the final two elements in the feature set that help you get the most out of the first three. These are adaptive key/scale locking of notes within the step sequencer, and the ability to automatically generate settings, both globally and for individual sections of the riff ‘engine’. The adaptive key/scale locking option offers a number of different modes of operation (including ‘off’) but means that Riff Generation adapts the pitches specified in the pattern in real time in response to the MIDI root note you use to trigger the pattern, so that everything stays harmonically correct, with no bum notes — unless, of course, you want them.
The generative elements are triggered by cog wheel icons dotted around the interface. You can get the instrument to generate new contents for just a single part of the current patch (for example, just the note pitches, sounds used or velocities) ,or you can go the whole hog and press the large Generate button at bottom centre, whereupon pretty much everything is auto-generated afresh. This can create a lot of somewhat ‘challenging’ musical patterns, but you can simply keep going until something magical pops out. You can increase the odds of that happening by using the Generation Options panel, where you can constrain the range of values used in any of the generation processes, essentially controlling the amount of randomness that’s being introduced. For example, v.1.1 (which I received in the course of writing this review) adds the option to specify which pitches are allowed when you execute a Pitch Generation action.
Riff Generation requires either the full or free version of Kontakt 5.6.1 or newer, and installation follows the usual Kontakt library processes. Once installed and activated, the library offers a single NKI to load. The supplied 320-plus presets are then available from within the Riff Generation interface, and make use of the Kontakt Snapshots feature.
The various elements of the feature set outlined above are spread across a UI with two main sections. The upper strip contains the pattern sequencer, with tabs where velocity, duration, volume and pan are set on a per-step basis, as can be the pitch and duration of each step. This main upper grid can show up to 32 steps, and the Page panel allows you to access seven further pages, for a total of 256; the display can be set to ‘Follow’ during playback so the current page is always displayed.
By default, the lower half of the display shows another step-based grid with five lanes. Clicking on coloured-coded dots allows you to specify the sound, glide between adjacent steps, stutter, ‘delay burst’ and ‘verb burst’ on a per-step basis, the latter two being great for ear-candy spot effects. Other controls above the dot grid allow you to specify the number of steps within the current pattern, set a global swing, and adjust the sensitivity of the sound engine to MIDI velocity. The dot panel zone is also tabbed, and clicking on any of the sounds, effects, and the five different Generation buttons beneath it brings up other parameter sets for editing.
Finally, along the base of the UI are further controls including Mode, which determines whether the pitch values set in the upper panel should ‘play verbatim’ or be locked to a scale. The Mode choices all make for useful creative ‘performance’ options, especially when Retrig is off (the default) so that any new MIDI input note simply shifts the pitch of the pattern from the current playback step without restarting playback at the first step of the pattern. The Mode option can adjust your Pitch row intervals on the fly, but doesn’t actually change the values displayed; alternatively, once you have picked a scale, the Apply Scale button will automatically adjust the settings in the Pitch row so that all the intervals ‘fit’ the current scale. This is useful if you wish to switch between scales to see how they might change the mood of the riff you are creating.
Clicking the Sounds button opens a panel in the lower half of the display with five slots labelled A to E for per-step sound selection, and a selection of controls for customising each sound. For example, sound A has its own envelope, Transpose and Tune controls while the other four slots share a second set of similar controls. Each sound also has Offset and Random settings that adjust the playback starting point of the underlying samples. A padlock button lets you ‘lock’ any sound slot and preserve that sound when executing a Generation process. Slot A also has a Sub button that forces this sound to play on every step, with the other sounds being layered over the top as defined by the steps in the dot grid.
The sounds themselves range from more subdued tones to fuller and more aggressive sounds further up the list, and include some great arp-friendly ‘pluck’ options as well as sounds suitable for electronic drum/percussion roles. If you want your ‘riffs’ to blend both melodic and rhythmic elements, then that’s very easy to do.
Apart from some very occasional — and very minor — audio glitches when some sounds were panned left/right in the Pan lane, Riff Generation behaved flawlessly on my test system, but if I was being greedy, I could think of ways to extend its functionality. For example, an undo button that lets step backwards through a few rounds of Generation would be very useful, as would the ability to work with more than one pattern at a time. I believe this is something In Session Audio have planned for a future update, converting the current eight Pages into eight different patterns. Finally, as you can use five different sounds within a single pattern, it would be nice if the MIDI export option could generate individual MIDI clips for each sound slot, so you could then map these five sounds to different virtual instruments in your host.
However, Riff Generation is a fine product as it stands, and I had an absolute blast while reviewing it. The combination of a powerful step sequencer, a very usable collection of core sounds, plenty of further sound-shaping possibilities and effects, the ability to have your patterns adapted to fit your chosen key/scale as you trigger them from different MIDI Notes, and the options for MIDI export are all beautifully designed. The generative elements are also well-thought out, hugely creative and simply great fun to use, whether tweaking an existing sequence or creating something completely new.
Riff Generation is a sum that is greater than its individual parts, thanks to the very clever way in which these individual components are put together and the beautifully designed interface. Somehow, this manages to provide almost endless possibilities but without an endless learning curve; it’s an impressive combination. Admittedly, it’s not cheap, but if you are looking for some fresh inspiration for creating synth-based riffs and rhythms, Riff Generation comes highly recommended. It sounds great, is very creative and is a heck of a lot of fun to use.
There are plenty of synths that offer generative sound design elements (for example, NI’s Absynth), sequencers and arpeggiators that offer generative pattern features (for example, Sugar Bytes’ Turnado) and software that can generate new music under your guidance (for example, Intermorphic’s Noatikl), but I’ve not encountered any other single virtual instrument that quite matches the feature combination offered by Riff Generation or presents them in such an intuitive design.
Riff Generation’s raw sounds and sound customisation options are very impressive, and it is a serious virtual instrument in its own right. However, you can export its patterns to your host DAW to play back with a different virtual instrument if you wish.
Once you’ve created a pattern, and then triggered it with your chosen root note through at least one playback cycle, the small MIDI button located to the right of the upper sequencer grid lights up in blue. You can then drag and drop to a suitable MIDI track in your host. If you then trigger the same pattern again in Riff Generation from a different MIDI root note, a further MIDI pattern, with the pitches adapted based upon the Mode setting, is stored for drag and drop, and so on. This export process works very well.