SoftStep Tutorial #8: Rhythm Module

Compatibility note: This tutorial is for SoftStep LE or SoftStep Pro. If you have SoftStep Basic, then you can not create all the modules, but you can load the pre built tutorial file, and follow along with that.

This tutorial is about the Rhythm module, Sequencer modules, and some more exploring of the Fill utility.

First, get a Rhythm module from the Clocks submenu.

As soon as you create the module, it starts up. Leave it for a moment and create a Voice module. Set Note to 0, Transp to 60, and connect the Voice module's clock input to the Rhythm-1. You should hear a note whenever the moving yellow indicator of the Rhythm module crosses the first, bright red spot. Notice the blue indicator on the right end also highlights when the note fires.

Click on the top row of red "buttons," turning them on and off, and hearing the changes. Double click on the gray area, and the length of the cycle expands to where you clicked. Click on the 2nd green button, just under the first that is already bright green. This activates the 2nd row of buttons. Click on some of them; double click in places to change the cycle length. Click on more of the green buttons to enable more rhythm button rows. Play with it.

Separating the Rhythm Lines

Get a Mask module from the Logic submenu. Connect the Voice module's clock input to the Mask-1 output. Sound will stop. Connect the Mask module's input to the Rhythm-1 output. Get sound back by clicking on some of the Mask module's red bit mask buttons. Notice that the far right bit, labeled 0, corresponds to the rhythm being generated in the top row of the Rhythm module's buttons; the #1 bitmask to the 2nd row of rhythm buttons, and so on.

With all the Rhythm module's (green) row enable buttons turned on (bright green), the bit mask buttons in the Mask module act identically to the green enable buttons in selecting different rows of rhythms. So why bother with the Mask module? Because the Mask module enables you to separate the Rhythm modules' row outputs.

Creating Stereo

Create another Voice module. Again, set Note to 0, Transp to 60; set Pan to 127, and set Pan on the first Voice to 0. Also create a second Mask module. Connect the 2nd set of modules as the first (Rhythm > Mask > Voice), and click on different Mask module button combinations. You should be getting some nifty rhythm combinations coming from both speakers and the center (when both fire at once). Play with this for a while. Try out different instrument sounds by changing the ProgChg inputs to the Voice modules.

Creating Pitch Changes

Now for some pitch changes. Select a Run128 module from the Runs submenu. Select a Counter module from the Clocks submenu. Connect the clock input of the Counter module to the Rhythm-1 output. You should see the Counter's output box counting up as the Rhythm module fires its gates.

Connect the Note input of both Voice modules to the Run128-1 output, and the Run128 module's input to the Counter-1 output. You should see the Run128's stage number readout (just below the output indicator) incrementing - but you should hear no change in pitch because the Run128 is empty (all stages set to 0).

Using the Fill Utility

Click on the Fill button of the Run128 module. The Fill utility pops up.

Set the Scale knob to 24 - two octaves. Now click on the Rand button in the Source group. You should hear random pitches. Select a scale from the Quantize group, then click on Quant in the Modify group. You should hear more or less the same random pitches, but now forced to the scale you have chosen.

For something a little less random, try holding down the keyboard shift key, and slowly moving the mouse cursor across the green graphics display. Click on Quant and it conforms to the scale you selected. Click on Undo, then select another scale and then Quant again - you should hear the new scale. Click on Scat in the Modify group, and the values move to random positions. Try it again. Undo a couple times and get the non random pattern back. Click on Revers, Try Invert, then Quant. Play around with it until you get a pattern you more or less like, and then click on Exit.

Creating a 2nd Pitch Line

Now create another Run128 and Counter module combination, and connect the Run128-2 module's stage select input to the Counter-2 output. Connect the Counter-2 clock input to the Mask-2 input, and go back and change the Counter-1 input to connect with the Mask-1 output. Change the Voice-2 Note connection to connect with the Run128-2 output.

Your connections should now be:

Voice-1: (Rhythm > Mask-1 > Voice-1 clock input) and (Mask-1 > Counter-1 > Run128-1 > Voice-1 Note input)

Voice-2: (Rhythm > Mask-2 > Voice-2 clock input) and (Mask-2 > Counter-2 > Run128-2 > Voice-2 Note input)

Voice-2 will go back to a monotone, but Voice-1 should continue to play the pitches from the Run128-1 step sequencer.

Once this is set up, click on the Fill button on the Run128-2 step sequencer. It should appear empty. Click on Undo in the Source group, and Run128-2 will load with the same values you put in Run128-1. But since the two are stepping at different rates the pitches will tend to chase one another. Exit the Fill utility.

So now you should have a nice, rhythmic riff going. It would be cool to be able to shift, or transpose, all the pitches up and down from time to time. Since the Voice modules have a transpose input that is currently set to a static 60, maybe that's the place to focus on now.

Creating a Transpose Sequence

Go to the Sliders submenu and get a Slide8 module. Connect the Transp input of both Voice modules to the Slide8-1 output. Your sound will drop down to a muffled thumping.

Instead of using the Fill utility, we will set the stages of the Slide8 the old fashioned way. First, boost the range by setting the Range knob to 84.

Click and drag on the first slider. You will hear a pitch change. Adjust the slider to something you like, then go on to click/drag on the 2nd slider. Notice that the red stage light goes to whichever slider you click on, automatically making that stage the active one, then returns to its previous position when you release the mouse button. Go ahead and set each of the sliders to transpose values you like.

Now we need to automate the transpose sequencing. From the Events submenu, select a Test module.

Connect the top input of the Test module to the output of the Run128-1, and connect the bottom input of the Test module to the output of the Run128-2. Now select GT from the little drop down menu of available tests in the lower right of the module. The module is now testing for the Run128-1 output to be Greater Than the value of the Run128-2 output. When it is, the output of the Test module goes to 127. This gives us the event on which to step the Slide8 module, but it does not give us the stage value to set it to. For that, we need another counter.

Get a 3rd Counter module from the Clocks submenu. Connect its clock input to the output of the Test-1 module. You should see it counting up one every time the Test module fires. Now connect the stage input of the Slide8 to the Clock-3 output. Click on the red button in the Slide8's title bar to put it back on line. The Slide8 module should now step to the next sequential transpose value whenever the Test module detects that the output of Run128-1 is greater than Run128-2.

Saving Snapshots

At this point you have a fairly rich set of parameters you can adjust. Save the setup if you have not done so already, and spend some time creating different sounds. Whenever you get to a sound you like, type a descriptive name into the Snapshot box, and click on the camera icon to save it. Save the file again before you exit to preserve your snapshots.

How it looks:

SoftStep is Copyright © 1999-2004 by John Dunn and Algorithmic Arts. All Rights Reserved.