12 – Crossfading Mals & Filters

Since Ed’s Thor Shaper article, I’ve been thinking about how to use this information in real-world examples. One idea is to crossfade the Grain Samples in the Malstrom and another idea is to crossfade all 4 Thor filters to affect one sound source. Lots of fun!

Since Ed’s Thor Shaper article, I’ve been thinking about how to use this information in real-world examples. One thought came from a post I saw on the Props forum. Basically, the issue was that you can’t assign the Malstrom Grains to a Combinator Rotary to effectively switch between the 80+ Grain Samples. It’s pretty easy to assign and switch between Modulator waveforms using a Rotary, but not the actual samples in the Malstrom. So this got me thinking of how you could go about switching between these Samples. And truth be told, there’s probably some really obscure way to do it which uses Thor and some heavy CV connections. But here is something that might just inspire you and be the next best thing.

You can download the project zip file here: crossfading-malstroms-and-filters. This file contains 2 rns files with the Combinator setups explained below. One is a 16-Malstrom crossfader, and the other is a 4-way Thor filter crossfader. I would recommend you download them and open them up as you read. It will make things a little easier that way.

Crossfading 16 Malstrom Grain Samples

In this setup, I’m using 16 Malstrom devices and each device is sent to a Mixer Channel in two 14:2 Mixers. The CV from the various Thors are sent to the Mixer Levels, where the level trim knobs are pushed all the way right, and the Mixer channel Levels are set to zero. If you haven’t already seen Ed’s interesting and enlightening tutorial on the subject, you should read it here: Ed’s Thor Shaper Tutorial. It goes through using the Sine Wave Shaper in Thor to create a 4-way Crossfader. In this way, you can cross-fade between 4 different Malstroms. Each Malstrom’s Oscillator A is set to a different Sample.

Since you have 4 Rotaries, each Rotary is set to 4 Malstrom devices. Giving you a total of 16 different Oscillators. Also, since one or more oscillators will be playing at any one given time, I’ve set up each button on the Combinator to mute the specific series of Oscillators. Button/Rotary 1 affects the first group of 4 (Malstroms 1-4), Button/Rotary 2 affects the second group of 4 (Malstroms 5-8), and so on. Only 10 Malstroms should be applied to a single Mixer because you can only map 10 parameters from any one device to the Combinator, and you need all 10 channel mutes mapped to the various Combinator buttons.

To take this a step further, you could create 6 Combinators, which together would contain the full 82 Oscillator Samples used by the Malstrom. Then you could crossfade between any oscillator you like. The sweet spots for each of the rotaries are as follows:

0 = Oscillator 1 Full Level

42 = Oscillator 2 Full Level

85 = Oscillator 3 Full Level

127 = Oscillator 4 Full Level

Any integer between those values will provide a crossfade between the two Oscillators on either side of the value. This can be seen as a downside or an upside. If you want a pure switch between Oscillator 2 and 4 for example, you can automate the Rotary to go straight from 40 to 85 in your sequencer using a Rotary automation lane. In this sense, you can use the Rotary as a 4-way button switcher between each Oscillator.

On the downside, you couldn’t effectively crossfade between Oscillator 2 and Oscillator 6 (on Rotary 2) the way the current Combinator is set up. But if you Reorganize the way the buttons mute, you could effectively do this. I’m open to anyone who has any other suggestions on how this could be achieved. Another downside is that since a different Malstrom is used for each Oscillator, you’ll have to tweak the settings on each Malstrom to get exactly the sound you want. If you want to keep everything consistent between all Malstroms, you’ll have to do it through automation (the easiest way I think). Simply automate one parameter on the first Malstrom in the sequencer, and copy that automation clip into every other Malstrom’s automation lane. It’s a bit of a pain, but it will keep all Malstroms in line, if that’s what you want.

On the upside, since there are 16 different Malstroms, you can fine tune the sound of each of them separately. If you have all the mutes off, you can effectively crossfade between 4-8 Malstrom sounds/devices at once just by shifting the Rotaries around. This adds some very interesting Sound Layering potential.

As it stands, the first 16 Oscillators from the Malstrom are applied to the 4 Rotaries on the Combinator. As I said, you could build up a stack of 6 Combinators to include all the Malstrom Oscillators. In this way you can build up various sounds and switch between the various Oscillators. Does this help anyone out?

Crossfading all 4 Thor Filters, and then some. . .

Next, let’s take a look at how we can crossfade all of Thor’s filters to affect one synth sound. In this case, it’s fairly simple to set up. First, create a Combinator, and set up Ed’s 3 Sine Shaper Thor’s to handle the CV like the previous example (along with a 14:2 Mixer). Then create a Thor and load up a synth sound. Start off with something simple so that you can really hear the different filters affecting the sound. Then create a Spider Audio CV Merger / Splitter, and send the synth’s Left and Right Audio Outputs to the splitter’s inputs. Create 4 Thors underneath the splitter and send each of the 4 splits to these respective Thor’s Audio Inputs 1 and 2. Finally, send the 4 Thor’s Left and Right Audio Outputs to the first four 14:2 Mixer channels.

The setup with The Sine Shaper CV and Audio outputs from Thor into the Mixer
The setup with The Sine Shaper CV and Audio outputs from Thor into the Mixer
The Thor Synth Audio being split and sent through the 4 Thor Filters
The Thor Synth Audio being split and sent through the 4 Thor Filters

On the front of the Rack, add a Low Pass Ladder Filter in the first Thor’s Filter 3 Slot. The settings for this filter are shown in the image below. In addition, add the following into the Modulation Bus Routing System (MBRS):

Audio In1: 100 > Filt3 L.In

Audio In2: 100 > Filt3 R.In

The Low Pass Ladder Thor Filter settings on the front Panel
The Low Pass Ladder Thor Filter settings on the front Panel

Enter the same settings in the other 3 Thors, but with different filters, so you have the State Variable filter in Thor 2, Comb filter in Thor 3, and Formant filter in Thor 4. While you’re at it, play around with the Global ADSR envelope so that it sounds to your liking for the 4 different filters. It’s ok if these settings are different for each filter. This will just make your sound more interesting. One thing I kept the same across all 4 Thor Filters is the FX section (Delay and Chorus). This way, when the filters are transitioned, the FX remain similar across the board.

Now let’s turn to our Combinator section and do some serious routings in the Mod Matrix. Here’s the settings you will need for each of the Thor Filters (they are the same for all 4, but must be applied to all 4):

Rotary 1 is reserved for the Filter Crossfade, so I’m not going to go over it here. You can see it in the Project File rns.

Rotary 2 > Filter 3 Freq: 0 / 127

Rotary 3 > Filter 3 Res: 0 / 127

Rotary 4 > Filter 3 Global Env Amount: 0 / 127

Button 1 > Delay On: 0 / 1

Button 2 > Delay Sync: 0 / 1

Button 3 > Chorus On: 0 / 1

Button 4 > Filter 3 Global Env Invert: 0 / 1

Mod.W > Filter 3 Drive: 50 / 127

The Combinator Mod Bus Routing settings for each of the Filters
The Combinator Mod Bus Routing settings for each of the Filters

Now, what’s happening is that the Mod Wheel controls the drive amount on each of the Filters, While Rotary 1 cross-fades all the filters. This is the main Rotary, and it has the same sweet spots as the previous Malstrom patch. Rotary 2 and 3 control the Frequency and Resonance of the filters, and Rotary 4 adjusts the Envelope of the filter. Button 4 inverts this envelope. The remaining buttons are left for the Delay, Delay Sync and Chorus. Since all the parameters are the same for all the filters, they all shift together. This can be a positive or a negative. You can’t individually set the filters, but at least they sound pretty good when transitioned. Depending on your ADSR settings for the Global Filter, the Envelope Rotary and Envelope Inversion Button may be different for each filter. But as I said before, this can add some nice variety to the sound.

Use this Combinator as a template for your own sounds. All you have to do is add your own patch into the Thor “Synth” or change the Thor “Synth” to any other Synth or Sampler device if you like. Then you’re in filter crossfading heaven.

A huge thanks to Ed for being the inspiration for these patches. Please let me know what you think and if you can think of any other applications that this crossfading technique can have, by all means share it with us. Until next time, have fun with these.

5 – Create a Grain Sampler

Learn how to create your own homemade grain sampler. This allows you to take a single sample, and affect the playback, sample start position, Repeat length, Grain Length, and Filter Frequency, among other things.

If you’ve ever used the Malstrom in your projects, you’ll undoubtedly see the benefit of grain synthesis. It’s like sound design under a microscope, as you can take a very short piece of sound and chop it up into little bits and start/stop the playback where you like. The fact that you can’t add your own grains into the Malstrom is somewhat disconcerting, but there’s a simple way you can create your own grain sampler, where you can add any sound and use that sound as a grain. This can be very effective in adding some new creative spark to your musical projects. And it opens you up to adding any sound you like and deconstructing it as you see fit. So let’s see how we can do this.

The files used for this project can be downloaded here: grain-samplers. It includes 4 Combinators that are set to play a clip of random notes on the sequencer. To try each one out, you’ll have to mute all the other Combinators via the Main mixer channel. I’m sure this is self-evident, but it never hurts to explain it here. As always, this is open source so feel free to use it in your own projects. Just please provide a link back here or a credit or kudos of some kind. After all, I do this for free. 🙂

Creating the Basic Grain Sampler

  1. Start by creating a Combinator, and in the Combinator create an NN19, Subtractor, and Matrix in that order. 
  2. The NN19 is what we will use to contain the sample or “Grain Table.” This is our sound generating device. So starting there, initialize the device so we have a base from which to start. Bring the Polyphony down to “1,” and set the Spread Mode to “jump.” Finally, change the Pitch Bend  Range to “0.” Don’t worry, I’ll explain why we made all these settings after we’ve set everything up.
  3. Load up your favorite sample into the NN19. You only need one. Alternately, you can wait until the end of the setup to load your favorite sample. If you load the sample at the end of this procedure you can then test out the various samples and play around with them at will using the Combinator rotaries that are going to be setup in just a minute. But for now, just have something loaded so you hear some sounds.
  4. Moving to the Subtractor, bring the polyphony down to “1,” and change the Pitch Bend Range to “0.” More importantly, change the Mod Envelope settings to the following: A=0, D=0, S=127, R=0.
  5. On the Matrix, change the number of steps to “1,” and raise the gate to 127 on the first step.
  6. Turning to the back of the rack, there’s really very little to cable. First, cable a CV connection between the “Mod Env”  in the Modulation Ouptut section of the Subtractor to the Level input on the NN19. Also, raise the pot next to this input to 127. Second, cable a CV connection from the LFO1 on the Subtractor to the Gate input on the NN19. Third, cable a CV connection from the Gate CV on the Matrix to the Subtractor’s Sequencer Control Gate input.
  7. The basic cabling for our Grain Sampler
    The basic cabling for our Grain Sampler
  8. Now comes the fun part: Programming the Combinator. Flip the rack around to the front and show the Combi’s programmer. Here are the settings that we have to make:

For the NN19 (Grain Sampler):

Rotary 1 > Sample Start: 0 / 127

Rotary 3 > Amp Env Attack: 0 / 75

Rotary 4 > Amp Env Release: 0 / 90

Button 2 > Filter Res: 0 / 90

Button 2 > Filter Freq: 127 / 90

Button 2 > Filter Mode: 3 / 1

Button 3 > Osc Kbd Track: 0 / 1

Button 4 > Stereo Spread: 0 / 127

Pitch.B > Osc Env Amount: -63 / 63

Mod.W > LFO Amount: 0 / 127

For the Subtractor (LFO):

Rotary 2 > LFO1 Rate: 40 / 127

Button 1 > LFO1 Wave: 0 / 2

The modulation for the NN19 Sampler (Left) and the Subtractor (Right)
The modulation for the NN19 Sampler (Left) and the Subtractor (Right)

Here is an example of the various things you can do with a basic grain sample:
[ti_audio media=”277″ repeat=”1″]

Explanation of the Functionality

Now for some explanation. The NN19 acts as the grain sampler and the heart of everything. This is why it’s so heavily programmed. The amplitude is controlled by the Subtractor because we set up the Mod Envelope’s Sustain to 127, and cabled the cv from the mod envelope to the level input. And the mod envelope of the subtractor remains “on” because we are sending a gate signal from the matrix. This is simple and effective, and makes our grain sampler very “light weight” by only containing 3 devices.

But don’t let this simple setup fool you. The way we programmed everything gives you a very wide degree of control over the sound — and that sound can be any sample you choose to load into the NN19. Let’s take a peek at what’s going on at the front of the Combinator.

Pitch Wheel: This is set to control the oscillator envelope amount from the NN19.  This is probably one of the coolest and freakiest uses of the Pitch Wheel you could have, and is great for mangling sounds into weird and wonderful effects. 

Mod Wheel: This is set to control the LFO amount on the NN19, for more strangeness, giving the sound a warped and warbled effect.

Rotary 1: Controls the Grain Index, much like the Malstrom’s “Index” function operates. What this is doing is controlling the start position of the sample on the NN19

Rotary 2: This controls the rate of the LFO from the Subtractor, or the speed of the grain playback. All the way left and you get a very slow speed, but turn up the knob and it can get extremely fast.

Rotary 3: Controls the Amp Envelope Attack of the NN19. All the way left gives you fast attack, and all the way right gives you a slow attack.

Rotary 4: Controls the Amp Envelope Release of the NN19. All the way left gives you a short release, and all the way right gives you a long release.

As for the buttons, they are all set up to provide some further sound morphing capabilities.

Button 1:  Switches the LFO Type on the Subtractor. You can program this button to switch between any 2 of the 6 LFOs available on the Subtractor, depending which ones you like best.

Button 2: Controls the Filter mode of the NN19. When off, it uses the default LP12 settings, with a fully open frequency and no resonance. Turn it on, and it turns into a HP filter with the frequency somewhat open, and the resonance dialed up high.

Button 3: This is a very important button in my estimation. It controls the Keyboard Tracking of the Grain Sampler’s Oscillator. This is going to largely depend on how you want the notes in your sequencer to be played by the Grain Sampler. If you look at the project files included here, you’ll see I placed a bunch of random 1/32 notes in a clip on the sequencer. The notes are all different pitches between C2 and C4. If you leave the Key Track button off, the pitch of the notes do not affect the sound. The sound remains constant. If you turn the Key Track button on, then the pitch of the sequencer notes affect the Grain Sampler’s oscillator, and have an affect on the pitch heard. To me, this gives you a great deal of control over how you play your sequencer clips. All with a simple switch.

Button 4: This controls the Stereo Spread of the Sample playback. With this button turned off, there is no spread. With it turned on, full spread is applied across the entire stereo field. Also, since “jump” was selected on the NN19’s Spread mode, it will jump back in a random fashion between the left and right fields.

Exploring Alternate Grain Sampler Ideas

Now that we have the basic grain sampler idea laid out, there’s a few variation Combinators that are included in the project file which you can explore in greater detail. I’ll lay out some of the highlights here.

Mal Grain Sampler: This Combinator inserts a Malstrom and uses it’s “A Curve” in place of the Subtractor’s LFO. It’s then tied to the Rotary 3 on the Combi, so you can use any one of the 31 Curves to affect the gate of the Grain Sampler. The “B Curve” is also plotted to the Oscillator Pitch on the Grain Sampler, and is also plotted to the Rotary 3 on the Combinator. Button 1 on the Combinator turns the B Curve on or off. This means that when you press button 1, it creates all kinds of weird sound morphing (or pitch morphing) to the sample, based on the position of the Rotary 3 knob.

Thor Grain Sampler: This Combinator uses the Thor’s LFO in place of the Subtractor. This isn’t that big of a deal or much of a change. But what’s nice about the Thor is that you can map the Thor’s Sequencer Curve 1 to affect the Oscillator Pitch of the Grain Sampler. Turning on Button 1 on the Combinator starts Thor’s sequencer to Run and provides some Pitch shifting to the sample. The added benefit of using the Thor is that you’re not limited to using the Global parameters. Since the Thor Gate is always on, you should be able to utilize any of the Thor parameters to affect your sample sound. You just need to program them in the Modulation Bus Routing System (MBRS).

Triple Thor Grain Sampler: This Combinator layers 3 Grain Samplers together, all playing different samples. The curves on the 3 Thor’s are all different, and the Mode of the step sequencers in them are set to play randomly. This creates a lot of pitch variation when you press button 1 on the Combinator. Instead of Rotary 3 and 4 affecting the Attack and Decay of the Grain Samplers, I set them to control the level of Sample B and C respectively through a line mixer at the top of the Combi stack. This way, the sample you add into the “Sample A” NN19 is always playing at full level, while Sample B and C’s levels can be adjusted (I didn’t want to give up the functionality on either of the first two rotaries, so that’s why Sample A is always at full level. However, you can create a sequencer track for the Line mixer and adjust the level via automation in the sequencer if you like). Try adjusting the programmer settings on the first two rotaries if you want to have the various samplers playing at differing speeds and at different index points. This can create some pretty elaborate sound designs.

As a final tip, you can try automating the Rotaries for any of the Combinators to randomize things. I would also suggest you read a great article by Lewis72 on the art of Granular Synthesis on his blog. He also created a very nice grain sampler which you can download for free. If you find any other ideas out there on the web on the art of Grain Sampling within Reason and Record, please feel free to post them here in a comment. And if you find these useful or create something interesting with them, please let me know. I’d love to hear how you can use these in your own work. All my best!