Camelot Supercharges MIDI Processing

Camelot 2.1 Supercharges MIDI Processing

Camelot Supercharges MIDI Processing

Camelot Supercharges MIDI Processing 1024 576 Audio Modeling

Camelot Supercharges MIDI Processing


While much attention has been focused on the new audio input features in Camelot 2.1, this new version adds considerable heft to the program’s MIDI processing, as well, particularly in providing new ways of converting or remapping MIDI data. Some of these capabilities are creative in nature, while others are aimed at strengthening Camelot’s ability to integrate different hardware and software that may use MIDI data in slightly (or very) different ways.


Camelot is meant to be the center of your music technology when you perform, and these new features add more power to your ability to control all of your virtual and physical instruments in coordinated fashion, using your set of physical controls. In this article, we are going to take a deep dive into this highly potent set of MIDI processing functions.


Some Basics


As with the audio input features, the new MIDI features reside in the Audio & MIDI Settings of items or the MIDI Settings of layers. Clicking on an item or layer brings up its settings, but you often need to click the legend at the bottom of the window to get to the MIDI settings. In Audio & MIDI Settings, you will want to click the MIDI Transformers tab to access these new features.


Figure 1 – The MIDI Transformers are accessed through this screen.


Each of these new MIDI features needs to be made active before it can be used, which is accomplished very simply by clicking the Enabled switch at the top of the screen for the feature.


Once you have spent the time to set up filters or a remapping curve, you can preserve your work by saving it as a preset. The “three dots” button to the right of the Enabled switch at the top of each feature’s window will drop down a menu that will allow you to save or export a preset. As one would expect, the same menu allows you to load or import a preset.


Figure 2 – The Presets drop down menu


Message Transformer


Message Transformers convert incoming MIDI Control Change, Channel Pressure (often referred to as mono aftertouch), Pitch Bend, or Key Switch messages into different Control Change, Channel Pressure, or Pitch Bend messages.


Figure 3 – In this example, Control Change 7 (volume) is being converted to be CC 11 (Expression), and CC 2 is converted to CC3. The button at the bottom adds additional transformers.

(To be clear, there is no such thing as a MIDI Key Switch message; key switching is simply a system in which designated MIDI note messages – usually from the lowest octaves on the keyboard, which are rarely used to play notes – are interpreted to invoke specific instrument articulations on sampled instruments.)


This is very useful when, for instance, you need a foot controller to generate Expression messages (CC11) for a SWAM instrument, but your foot controller is hard-wired to generate MIDI volume (CC7). A MIDI message transformer can easily convert CC7 messages to be CC11 messages. Conversely, perhaps you want to control the brightness of a sound on both a SWAM instrument that uses Expression (CC11), and another synth that uses CC74 (Sound Brightness). Your controller can send out CC11, and a MIDI message transformer on the synth item can convert those messages to CC74 messages.


To get to the message transformers, go to Audio & MIDI Settings and click the MIDI Transformers tab. Click the Message Transformer item and then the Enabled button to activate the feature. Any number of transformations can be defined. Simply click the Add New Message Transformer button at the bottom, then click each field in the entry that appears to define the input and output messages.




The MIDI Filter blocks specified MIDI messages. As with MIDI message transformers, you have to click the appropriate item (Filters) in the Audio & MIDI Settings list, then enable the feature.


Figure 4 – Here, Active Sense, Transport, and Program Change messages are being filtered out. Note the Enabled switch at the top.

After that, simply click the message type you want to block. A handful of the most commonly encountered Control Change messages are called out specifically, but the Custom Control Change item allows you to select exactly which CC messages will be blocked and which allowed through.


It may be easier just to show Camelot which messages to block, which you can do by clicking the Learn button at the bottom of the window, then sending the message you want blocked to Camelot (usually by operating a control). Camelot will identify the message and block it. The Invert Filter button flips all of your message selections, so that all of the messages selected for blocking now become the only messages that are not blocked, while the messages allowed through before become blocked.


Remapping Table


MIDI messages such as velocity and Control Change use values that, by default, are generated using a linear curve, that is, the output value is always the same as the input value, so setting a control halfway through its travel produces a value in the middle of the available range of values. But sound parameters sometimes respond more musically when message values are generated using an exponential curve, or an “S” curve, or something in between. In this case, setting a control halfway through its travel may result in a message with a value above or below the middle of the available range. The same input results in a different output value when an exponential curve is used than when a linear curve is used.


Figure 5 – The only difference between these two remapping tables is that Bipolar has been enabled for the table on the right, yet they produce very different output values for an input value around the middle of the range (along the X axis).

The MIDI Remapping Table lets you reshape the curve onto which any CC, Channel Pressure, Aftertouch, velocity (of a note message), or Pitch Bend message is mapped. (The Aftertouch message is generated per note, leading it to be known as “poly aftertouch,” where Channel Pressure is global for an instrument, causing it often to be referred to as “mono aftertouch.”) The output value of any of these messages only matches the input with a linear curve; any other curve shape reinterprets the input values. This is useful in massaging the values to get the change in sound you want for a given action.


For example, the sound you are using for a virtual instrument may not sound good with very low velocity values. To deal with that, you might change the Min Output value in the remapping table, so that even the most softly played notes will play the VI with enough velocity for the note to sound good. Perhaps you play a weighted keyboard controller but want to play a lead sound with a response more like what an unweighted synthesizer keyboard would put out. Another example might be changing the shape of the curve to make a filter cutoff respond the way you want in response to a mod wheel or foot controller. Or perhaps you set the Max Output value lower of a control assigned to the wet/dry mix of a reverb so that the sound never gets too washy, even when the physical control is on full.

Figure 6 – The main Remapping Table screen gives an overview of all of the remapping curves that have been constructed.

Put more generally, remapping is very useful in matching the action of a physical control to the sonic response you want from a parameter.


Once remapping has been enabled at the top of the window, select the Message Type. If you select Control Change, the Message Number setting becomes active, so that you can select the CC number. In Figure 5, CC 3 has been selected.


The graphic just below the Message Number shows the current curve shape. By default, the Bipolar setting is Off. Switching it on divides the range of values in two, so that the specified curve applies from the minimum value to the mid-point value, and then again from the mid-point to the maximum value. This is most useful for parameters like pitch bend, where the center represents a value of zero, or no pitch bend. and you may choose to bend either up or down. However, Bipolar can also be used just to get a more complex curve, as well, as shown in Figure 5.


The next four settings specify the range of values affected: the minimum and maximum input values, and the minimum and maximum output values. The Output Min and Output Max settings determine the smallest and largest values that notes can have, while the Input Min and Input Max settings set the ranges of values affected by the Output Min and Max.


For example, say that Message Type is set to velocity. If Output Min is set to 50 and Input Min is set to 32, then any note played with a value of 32 or less will be given a velocity value of 50. If Output Max is set to 118 and Input Max is set to 100, then every note played with a velocity of 100 or more will end up with a velocity value of 118. Note that changing the min and max settings alters the curve shape, so values between the min and max are also affected.


Finally, the last two settings, Symmetry and Shape, change the shape of the curve. Shape varies from a linear shape at its leftmost point to instantaneous (vertical) at its rightmost point, while Symmetry varies from an exponential curve at its leftmost extreme to a logarithmic curve at its rightmost point. Used in combination, a wide variety of curves, including “S” shapes, can be created.


Remapping curves is a very powerful technique that can allow you to really dial in how a sound changes when you use a control, but applying it to a number of different parameters on several instruments can create a situation that is rather complex to understand and use intuitively in performance, so be careful.


A remapping curve applied to a layer or an item in a particular scene is applied only when that scene in active. However, it is also possible to globally remap data for a given input, that is, to have a remapping always in effect on the input from a specified physical MIDI controller. To do this, click the Settings button in the toolbar at the bottom of the Camelot window, then select the MIDI section and the MIDI Inputs page. Find the controller you want to remap, click the “three dots” menu (“…”), and choose MIDI Input Remappings from the drop-down menu that appears. A remapping you make here will apply regardless of the setlist, song, or scene currently in use.

Figure 7 – A remapping table can be applied directly to a MIDI input to make it active on that input all of the time.


Advanced MIDI channel routing


Advanced MIDI channel routing simplifies using a single physical controller to affect multiple instruments, or even multiple sounds in a fully polyphonic instrument. The idea is quite simple: each MIDI channel coming into Camelot can be assigned to play out over any combination of MIDI channels. A mod wheel coming in on channel 1 can be assigned to play out over channels 1, 3, 6, and 12. When we say “play out,” however, that does not mean it can only be sent out a MIDI interface to play an external instrument, oh, certainly not! It can be sent anywhere in Camelot, to any virtual instrument or effect plugin…as well as to external instruments.


Setting it up is just as simple as it sounds. Enable the feature, click the MIDI input channel you want to remap, then click every output channel to which you want it routed. Click the next input channel you want to remap and do it again, and so on for as many input channels as you need to reroute. That’s all there is to it!


Figure 8 – In this example, MIDI input channel 3 is being routed to channels 3, 4 and 11.


Note to Chord


Once again, the name says it all; this new feature enables you to sound a whole chord by playing a single note. This means that, for example, a guitarist could use a small set of MIDI footpedals to play a chord progression on the fly, rather than using backing tracks.


Figure 9 – Note mappings are shown in the bottom half of this screen, while the top half shows enhancement parameters that apply to all mappings.

Once the feature has been enabled, there are three options found above the note maps. When enabled, Latch Mode acts sort of like a sustain pedal. When you play a note that has been mapped to a chord, it will cause the chord to latch and continue playing until the next note is played. Note that if you play the same note twice, the first time causes the chord to play, and the second time stops it; it does not play the same chord a second time.


Velocity Humanize randomizes note velocities to add variation. A random number that does not exceed the specified percentage of the velocity as played is added to or subtracted from the velocity. For example, if a note is played with a velocity of 110 and Velocity Humanize is set to 10 percent, then the velocity will end up being some randomly chosen value between 99 (110 minus 10 percent) and 121 (110 plus 10 percent). For most purposes, small values of Velocity Humanize will be most useful, but, of course, nothing stops you from using a large value if it sounds good.


Strumming Time introduces a small delay between playing each note of the specified chord, to simulate a chord being strummed on a stringed instrument like a guitar or mandolin, or even “rolled” (arpeggiated) on a keyboard.


Finally, we get to the maps! Click on an entry in the Trigger Note column to set which note will sound a chord when it is played. You can click on the note to set it, or click the Learn button and play the note on a MIDI device you have selected as a MIDI Input in the Settings screen.


Figure 10 – This screen shows the second mapping seen in Fig 9, which is G3 being mapped to a G minor 7 chord.

When the input note is set, click the Back button in the upper left, and then click in the Output Notes area and specify the chord notes you want to sound, either by clicking the notes on the keyboard illustration shown, or clicking the Learn button on your MIDI controller and playing them. It doesn’t matter if you play the notes one at a time or all at once. The selected notes will be shown on the keyboard diagram.


You can have as many note mappings as you like. To add additional mappings, simply click the Add New Note Mapping button at the bottom of the main Note to Chord screen.


Musical Scale


Musical Scale forces notes that are played to be in a specified scale. If you specify a C Major scale, no note you play will produce an F#, because it is not in the C Major scale. This means that notes that are in the specified scale are unchanged, while notes not in the scale are changed, most often to the next lowest note that is in the scale. So, in our C Major example, playing an F# will sound an F natural, which is in the C Major scale.


Figure 11 – Musical Scale allows you to specify a chord scale, including its starting note, and even transpose it.


After enabling the feature, choose one of the two dozen available scale types. All of the common church modes are included, which means that Major and Ionian are actually the same thing, as are Minor and Aeolian. If you know your modes, there’s a lot you can do. The Scale Root sets the note from which the scale starts, so, if you set up for a C Major scale and then play an F Major scale, what you will hear will be an F Lydian scale, just as if you had set the feature for an F Lydian scale in the first place.



Figure 12 – The scales available range from the ordinary to the exotic.


Scale Shift is a transpose feature. In our now well-worn C Major example, a scale shift of +3 shifts everything up a minor third to Eb Major. If you then play a C Major scale, what you will hear will be a C Minor scale.


Note Range Min and Max designate the range of notes that will sound, regardless of where they are played. If you set Note Range Min to C2 and Note Range Max to B2 and then play from C4 to C5, you will hear C2 to B2, and then the C5 will again sound C2, starting the specified range over again.



The Item Humanizer panel contains parameters that define the amounts of randomization that will be applied to MIDI Note On and Pitch Bend events to “loosen up” performances. When using multiple instances of SWAM instruments to create a section, Item Humanizer settings are particularly useful in making each instance sound like a different player.


Figure 13 – The Humanizer introduces variation to simulate the slight imperfections found in the playing of even the best musicians.

Average Delay – This is a base amount of delay added to Note On, Note Off, and Pitch Bend events. Average Delay works in conjunction with Note Timing Rate to determine the actual amount of delay applied to any Note or Pitch Bend message. The available range is 0-100 milliseconds.

Note Timing Rate – This sets a range of randomization that is applied to scale the Average Delay time before the resulting value is applied to Note and Pitch Bend messages. Each Note On event causes a Note Timing Rate percentage within the specified range to be chosen and applied, either as a positive value (increasing delay time) or a negative value (decreasing delay time).

Velocity Rate – This sets a range of randomization that is applied to scale the velocity value of a Note event. A Velocity Rate percentage within the specified range is chosen and applied for each Note event, either as a positive value (increasing the velocity value) or a negative value (decreasing the velocity value).


Pitch Rate – This parameter is intended to provide random detuning for monophonic instruments, for example, to help make multiple instances of a SWAM instrument sound more like a section. It sets a range of randomization that is applied to scale Pitch Bend messages that are sent to the hardware instrument. Each Note On event causes a value to be chosen and applied, either as a positive value (increasing the pitch) or a negative value (decreasing the pitch) to all Pitch Bend messages until the next Note On triggers a new value. Small values of Pitch Rate are the most effective for realism.



SWAM for iPhone is out now