Documentation Wiki rss-feed

Configuring AudioUnit and VST plugins


The Eigenharp is capable of changing pitch and expression of each individual note that is being played. Newer agents like Fingerer and Strummer in particular rely on this. AudioUnit and VST plugins are based on the MIDI standard which doesn't provide native support for per-note expression. For these plugins to work well, some amount of configuration is required. Note that this documentation assumes that you already have an AudioUnit or VST plugin loaded as an instrument. Documentation about how to do that with your the factory setups can be found in the Quick Reference guide of your instruments or in the following video tutorials for the Pico, Tau and Alpha.

You can find the general steps about how to further configure the plugin explained below. Note that this is in reality different for each plugin and you'll have to refer to the manual of yours to find what needs to be done exactly. It's impossible for Eigenlabs to provided step-by-step instructions for every available AudioUnit and VST instrument. We have however recorded some video tutorials for the most popular plugins, you can find these at the bottom of this document.

Pitch calibration:

EigenD internally works with frequency information, while MIDI uses note numbers combined with a pitch bend distance. For EigenD to be able to properly convert frequency to the right MIDI information, you need to calibrate the maximum pitch bend distances that your plugin accepts.

Ideally, it's best to change the pitch bend distance in your AudioUnit/VST plugin to the maximum possible interval, allowing EigenD to reach a wider ranger of frequencies. Usually you'll find that the pitch bend distance is set to 2 semitones, but that the maximum can be set to 12 or even 24 semitones. To perform the pitch bend calibration, change the settings in the plugin first.

For example, this is where such configuration is done in Spectrasonics Omnisphere:

image:omnisphere_pitchbend.png

Once this is done, you can go to the global settings of the routing matrix. The 'pitch bend up calibration' and 'pitch bend down calibration' settings have to indicate the same values as what your plugin expects.

For example, in this case the plugin has a maximum up and down pitch bend distance of 24 semitones, so that's what we set to routing matrix settings to:

image:routingmatrix_pitchbend.png

At this point EigenD and the plugin will agree upon pitches and frequencies. This means that the pitch bend configuration of all agents, like for instance the scaler, will be honored by the AudioUnit or VST.

Multi-timbral playing:

MIDI has been designed to use a single device or instrument for each MIDI channel. This makes using a single MIDI channel very restrictive in terms of expressiveness, it's not even possible to individually bend the pitch of a note while keeping others unchanged.

EigenD offers a poly mode that uses several MIDI channels for the same instrument. Based on the notes that are being played, MIDI channels will be selected so that each note uses a different MIDI channel.

This is set up in the MIDI section of the routing matrix's global settings, detailed information about the poly MIDI mode can be found in the routing matrix's manual.

For example, here we've set up poly mode to distribute notes between MIDI channels 1 and 8:

image:routingmatrix_midichannels.png

Next we have to configure the AudioUnit or VST to use the same sound on each MIDI channel. This configuration is very different for each plugin and many don't actually have the possibility to do this. Usually this is described as creating a 'multi' instrument with several 'parts' or 'instruments', make sure that you load the same sound into each part and select a different incoming MIDI channel for each. These channels have to correspond to the channels that you set up in the routing matrix.

For example, in Omnisphere this done in the multi tab where each instrument has a different row with a channel setting:

image:omnisphere_multitimbral_channels.png

As you now play multiple simultaneous notes on the Eigenharp with that AudioUnit or VST instrument active, you'll see audio coming out of each part with different VU meter levels, if your plugin supports this visualization.

For example, this is what it looks like in Omnisphere:

image:omnisphere_levels.png

Finally, be careful about audio clipping when using multiple active instruments in your plugin. Patches are usually designed to be played as a single instrument and the levels can be quite high. It's prudent to reduce the level of each part by about 6db if your plugin supports that.

For example, this is where this is done in Omnisphere:

image:omnisphere_level_reduction.png

Multi-timbral MIDI expression:

You're now ready to leverage the expressiveness of the Eigenharp by having EigenD send out different MIDI CC messages to the notes that are split out over MIDI channels.

For example, we're going to make the yaw of each key send out modulation wheel messages, which is usually already set up to do something interesting in factory presets of plugins. In the 'MIDI CC Messages' tab of the routing matrix, click on the intersection of '3: Yaw' and '1: CC Modulation Wheel' and click on 'Per-note' in the 'Control scope' section of the popup that appears. This will send a different MIDI CC message for each note on the appropriate MIDI channel.

In the example below we also fine-tuned the bounds of the data to be interesting for this particular mapping:

image:routingmatrix_pernote.png

Any MIDI CC message can be sent out in this fashion. Apart from the mod wheel message, no instrument parameters are usually bound to a CC message, however most plugins have a feature called 'MIDI Learn' where you can click on a particular control of the synth and send out a MIDI CC message at the same time. It will then know that you want to change that particular parameter with the message you sent.

For example, in Omnisphere this is accessed through a right-click pop-up menu:

image:omnisphere_midilearn1.png image:omnisphere_midilearn2.png

By using MIDI learn and different mappings in the routing matrix, you're able to access most features of your synth from the keys of the Eigenharp. Just be careful that when your plugin is listening to a message to learn, you disable the others, otherwise it might receive the wrong message and not learn what you wanted it to. You can easily temporarily disable any mapping in the routing matrix by clicking 'Enabled' in the popup. The intersection will turn gray to indicate that the mapping is inactive. Afterwards it can be re-enabled by clicking 'Enabled' in the pop-up again.

For example, below the previous mapping was disabled this way:

image:routingmatrix_disable.png

Note that when using MIDI learn, you have to do this for each MIDI channel and thus for each part inside the multi. A typical way of achieving this is by holding down as many keys as you're using MIDI channels to send information on each channel, keep pressing on the keys while doing the MIDI learn for the same control on each instrument part in your plugin.

Some plugins handle this natively, for example by using 'Clone Part 1 MIDI Learns' in the 'MIDI Learn and Automation' utility section of Omnisphere, any MIDI learns that were done for part 1 will be automatically cloned the other parts in your multi:

image:omnisphere_clonemidilearns.png

Check your plugin's manual to see if a similar feature is available for yours, it makes setting up multi-timbral MIDI learns much more convenient.

Multi-timbral plugin parameter expression:

Most plugins only support 7-bit MIDI messages, meaning that only a range of 128 values are available for any given MIDI CC. This is quite coarse-grained and depending on your taste, you might find that you want to leverage the finer-grained expression that comes from the Eigenharp.

Every plugin supports a feature that's called 'host automation parameters'. This is typically used to record and playback automation curves with Digital Audio Workstations. Think of these as being very similar to the MIDI CC messages you configured before, but instead of having to go over the dated MIDI protocol, it allows a plugin host like EigenD to directly set a value for each parameter, in full resolution. Plugins that are capable of multi-timbral configurations usually also allow you to configure what each host automation parameter controls.

Since these parameters aren't tied to MIDI, EigenD uses a idiomatic approach to ensure that each parameter is used by the right multi-timbral part. When you create a 'plugin parameter' mapping in the routing matrix and set it to 'per-note', EigenD will automatically reserve the next parameters downwards for the different MIDI channels and hence for the different multi-timbral parts. So for instance, if you selected eight different MIDI channels for poly mode, the seven plugin parameters below the one you configured will be reserved for the other channels of your multi-timbral instrument.

For example, Omnisphere is set up by default to use the first eight parameters for the volume levels of the parts in a multi. We're now going to configure the pressure signal to change the volume of each part independently as you press on the different keys. In the 'Plugin Parameters' section of the routing matrix, click on the intersection of '1: Pressure' and '0: 1Level' and click on 'Per-note' in the 'Control scope' section of the popup that appears. You'll now be changing plugin parameter 0 with pressure for keys that are using MIDI channel 1, it will also reserve the next plugin parameters downwards for the other MIDI channels. Note that EigenD keeps track of the keys, the MIDI channels and the parameters. You just have to ensure that the instrument part that is listening to a particular MIDI channel, is also responding to the appropriate parameter number for its control.

In the example below we also fine-tuned the bounds so that the levels don't go to their maximum as we fully press down:

image:routingmatrix_pernote_parameters.png

Most plugins will visually update the GUI controls as host automation parameters are changed. So in our example, we'll see the volume faders independently move left and right in Omnisphere as we press on the different keys:

image:omnisphere_parameters_active.png

Configuring host automation parameters to be adjacent across the different instrument parts can be a bit tedious to set up. However, once it's done you'll be rewarded with the best possible expressiveness that can be obtained from your AudioUnit or VST plugins.

Step-by-step video tutorials:

We've recorded detailed video tutorials for some popular software instruments, you can watch them by following the links below: