Friday, June 29, 2007

Reaktor Benefits And Improvements

As a sound artist I've been working predominantly in Reaktor for a couple of years, ever since I found a copy dead cheap in Dublin. Reaktor is a sophisticated toolkit for the construction of software instruments. If you have a good background in electronics and audio engineering you can build your own synthesis, sampling and sound processing tools from scratch. But Reaktor also gives you access to hundreds of ready-made instruments which you can combine in different ways. So it's not necessary to be a complete geek to use Reaktor... it just helps!

The advantage of this package over more academically-oriented tools like Csound is that you do not need to be a computer programmer. I am, in fact, a programmer. But I don't think that the programmer mindset is the best way to approach music.

Reaktor provides an accessible toolkit that layers functionality in a well thought out manner. Macros combine to form instruments which can be joined together in ensembles at the highest level. Each have a full graphical interface that designers can skin with custom graphics if they wish.

Another distinguishing feature is that Reaktor is very much performance-ready. Snapshots of settings can be saved and recalled as banks, much like saving preset sounds on a synthesizer, except here the presets can cover multiple instruments arranged in an ensemble. Every knob and fader can be MIDI controlled in a couple of moments. Instruments can be restricted in the MIDI notes they accept, so that different ranges of notes can be set up to control different instruments simultaneously.

Of course all 16 MIDI channels are available, and instruments can send and receive MIDI via any available device... or with each other.

The sixty instruments that come with the product cover a wide range of synthesis -- FM, subtractive, additive, granular -- as well as effects, drum machines, sequencers, samplers and free-form noise-making gear. If these aren't enough, a user library of 2500 more instruments is available for downloading.

This makes Reaktor a good learning tool for those wanting to know more about audio processing. I find it more satisfying to start with an existing instrument and dissect it, rather than trying to build a working tool from the ground up, as you generally would in a code-oriented product.

There's also support for Open Sound Control, which I hope to get into in the future.

Reaktor can be processor intensive, but this depends entirely on how you build your instruments, and which macros you choose to use and combine. I like how one can quickly reduce the sampling rate to play more complex ensembles. It's not always necessary to run at 44.1KHz to get a decent sound.

Multiple copies of Reaktor can run at the same time, either as plugins or in standalone mode. I have used this facility live to ensure a continuous stream of sound as I load new ensembles and change snapshots.

All this said, there is still scope for improvements in Reaktor. Some seem long overdue. Here are my suggestions.

Wanted: Object-like Macros

The major disadvantage of building in Reaktor can be illustrated as follows. Say you've made your own strange hybrid oscillator as a self-contained macro. Now, you want two more of them for a particular instrument. It's simple to copy and paste your StrangeHybridOsc box and wire the three up. But then if you make a change to one box, you have to make the same change to all three. Reaktor has no way to create "shadow" copies of the first that will automatically be updated.

In theory there should be nothing complicated about implementing this feature. Each copy is simply a new instance of an existing object. The visual representation could be a box shaded slightly differently from the original, with the text [copy] or similar appended to the name. A new Paste As Shadow context menu option would make the workflow easy.

Wanted: Improved Construction Interface

Currently when building instruments one inserts low-level components through the context menu. This requires right-clicking and then navigating the menu up to three levels deep. It would be far superior to have a component panel that could be open at all times, allowing one to navigate components via a tree, or search them by name or tag. A simple drag'n'drop would place the component on the work surface. Other programming environments have just such an implementation.

While I'm on the subject, the current Multiple Document Interface is looking pretty long in the tooth. What we need is a tabbed panel look that would allow you to quickly shift between views, while still seeing more than one at a time if desired.

And, the ability to replace an existing component with another, preserving all inputs and outputs. The current requirement to delete and rewire each time is tedious.

Furthermore, smart input/output functionality that will reduce all of the duplicating of ports inside and outside a macro.

Likewise, a way to re-order existing ports.

All of these workflow improvements would dramatically increase productivity.

Wanted: Instrument and Component Tagging

Once one has a lot of macros, instruments, and ensembles, managing them can be a pain. Directory structures only go so far towards alleviating the problem. I would like the ability to tag each with a list of keywords, so they can be searched by the same.

Wanted: Programmer's API

If Reaktor had a programmer's interface it really could be all things to all people. This would remove the last major advantage CSound has. Please embed Python and allow scripting of macros! Also, give us an external API to allow programmes written in Python, etc. to call Reaktor.

This would be particularly useful for me in my current research, funded by The Arts Council/An Chomhairle Ealaíon. I am investigating sensor control of a cybernetic music mechanism. Unfortunately Reaktor may not have the necessary control hooks to facilitate embedding into a larger system.

Wanted: Better Sampling

This is a lesser feature request along the lines of many one sees posted online: "Boy wouldn't this cool new module be fab!" In my case I'd like the sampler to be improved to make it easier to support velocity layering. Currently one must use multiple samplers chained with different velocity curves, only to find out the CPU goes through the roof. The current sampler interface could also be easier to use.

I realise that there are any number of dedicated samplers (some made by Native Instruments) that allow this, but it would be great to have it natively supported in Reaktor.


I suppose as a dedicated Reaktor user I want this software to include the best of Max/MSP and every other programmable audio system. The fact is, I don't see why this shouldn't be, as what is already provided by NI is exemplary. Here's to the future of custom instrument building!


No comments:

Post a Comment