Anyone reading my most recent articles has probably noticed my pull towards the analogization of the digital. These articles revolve around effect plugins that attempt to recreate the nonlinearities of analogue processing after recording.
A huge aspect, however, of the analogue sound comes from the nonlinearity and expression of the sound source. This can be achieved in certain virtual synths and samplers through use of modulation parameters and velocity layering, but can be exploited to a much greater extent with creative MIDI programming if the DAW supports it.
I use Logic, so will use it as the platform for explanation of a way of doing so, but the general idea can be implemented across all DAWs which support similar programming capabilities.
The most basic synth in Logic is the ES M bass synth. It does have filter and volume modulation hard wired to incoming velocity, but other than that it is fairly plain and a great synth to use as an example for this technique.
In the images, immediately below, you can see I have instantiated an instance of the ES M, created a basic MIDI region with varying velocities, sent the signal to two different Logic distortion units and put a few effects on the master to add some cohesion.
Once this is set up, the next step is to go into Logic's Environment by pressing the keys Command-8, create a new monitor, New Menu > Monitor and patch it from the ES M channel to the monitor object by clicking/dragging the small triangle in the upper right of the channel to the monitor.
Press the space bar to play and you will see a number of symbols and numbers populated in the monitor object. These correspond to incoming MIDI data from the region I made on the ES M track.
From left to right they are type (very hard to see), channel, note and velocity outputs. From left to right the type is a black note symbol, the channel is 1, the note is C1 and the velocity varies from 0 to 127.
The next step is to create a new transformer which is done by selecting the New menu and selecting Transformer. Double click the Transformer to open it and you will see basically two rows.
The top row asks what information the Transformer should look for and the bottom row asks what the Transformer should change that information to. In this case I want the top row to look for note events on channel 1. The note and velocity values can remain blank as I do not want to specify either of those right now.
Now I want to figure out what the first distortion unit responds to. Here I have selected the ES M to monitor patch cable, deleted it, run a new patch from the upper right triangle in the first distortion channel to the monitor and turned the treble control of the distortion a little to gain information.
It is sending (again, a very hard to see) fader F value on channel 2 with a parameter value of 14 (the treble control) and the control range varies from 0-127.
The next step is to create a 0 filter as MIDI always sends a note on (1-127) and off (0) signal which if patched through will send the distortion control to 0 at the end of the MIDI note.
The way to do this is fairly simple. Create a new Transformer as described above, set the velocity to 0 (data byte 2) and in the upper menu select filter matching events. Patch the first Transformer into the 0 filter and the 0 filter into the distortion channel. This will now create a modulated distortion treble level based on velocity without sending the distortion control to 0 when the note ends.
Distort & Randomize
It's sounding a bit more wild and interesting so let me do it again. I went ahead and created a second send channel with a different amp emulation and repeated the steps above. I also did some final processing on the output to marry the sends and the dry signal. I then want ahead and added a randomizer to the end of each patch to add more variation to the sound—a new transformer object with the output velocity set to ±10 randomization.
The splitter object in the image is simply a blank transformer which is necessary in order to patch the signal to multiple processors. I find the treble controls in these particular plugins sounds the best in terms of modulation, but obviously you can choose to modulate any control and any number of controls you wish.
Finally, the sound can use some special effects. I have chosen a reverb, but you can do this with any type of effect or any effect chain you feel. I have gone through the steps above to gain the necessary information from the reverb time fader in order to create modulation of that parameter according to velocity—create a larger sound as velocity increases.
I do not, however, want it to be exactly hardwired to incoming velocity as larger velocity values will make it sound far too large. In order to scale the reverb time down when incoming velocity is high, I have chosen the division option for the second data byte and chosen a value that sounded good. This graph represents incoming values along the horizontal axis and what the corresponding output values will be along the vertical axis.
This reverb trick creates a larger sound according to incoming velocity while the treble modulation creates a more distinct and harmonically rich sound according to velocity which mirrors a real world performance on an organic instrument—striking a snare more heavily would produce more harmonics and more room information.
This is something which would not happen in a number of analogue synths let alone plugins and is a great way to subtly increase the performance and sound value of your sound source. It can also be used in combination with analogue synths or sounds if you were to make a blank copy MIDI track, no plugin sound source, which mirrored any incoming analogue sound to create modulated effects.
It is something I use often and hope you
can gain insight and new ideas from it as well.
Subscribe below and we’ll send you a weekly email summary of all new Music & Audio tutorials. Never miss out on learning about the next big thing.Update me weekly
Envato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!Translate this post