SoftStep Tutorial #7: Bouncing Ball

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.

Now for a little fun. This tutorial will show you how to use the bouncing ball module to create unusual rhythms First step: get the Ball module from the Clocks section in the Modules menu.

Move the module by clicking on its background, and dragging it to where ever you want. Stretch the module by dragging any of its corners or borders. As you change size the ball bounces differently. Change the speed of the ball by clicking on the little button in the upper left corner. There are 12 speeds, and you just keep clicking until you get the one you want.

Next, get a Voice module from the MIDI section.

Connect the Voice Clock input to the Ball-1 module. You should hear a note every time the ball hits the side of the module. Try moving the edges of the Ball module around, and changing the ball's speed.

Separating the Rhythm Lines

Next, we are going to separate the hits of the 4 walls. This will allow setting up different voices, different pan positions, etc., for any combination of the 4 walls. The technique we use here will also be useful for separating rhythm lines from the Rhythm module.

The next module we need is the Mask module from the Logic group. Select the module and put it anywhere in the workspace.

Connect the Mask input to the Ball-1, and the Voice Clock input to the Mask-1 (replacing the Ball-1 input that you made earlier). You should hear...silence.

Click on the rightmost red button, numbered 0. It will turn bright red. Now you should hear a blip when the ball hits the right side of the module. Try clicking the other buttons in the 0-3 range, one at a time and in combinations. Each of the buttons lets through a hit on one of the 4 walls of the Ball module. If you want to know the why of this, read about the Mask module.

Creating Stereo

Create another Voice module and another Mask module, and set them up the same as the first, with the Voice-2 Clock input connected to Mask-2, and Mask-2 input connected to Ball-1. Set the Pan inputs so the first voice is mid left (48), and the 2nd voice is mid right (96). Set the bit mask switches of the two Mask modules to whatever combination you like. You should have stereo blips. Play with it a bit.

Creating Pitches

For pitches you could put in a Random module as in the 1st tutorial, but since this is a tutorial, we will do something different. We will map the 4 walls to specific pitches, using one of the Sequencer modules as a mapping function rather than the more typical sequencing function.

From the Sliders submenu, select a Slide8 module.

That's a Slide12 in the image, not a Slide8, but you get the idea. Connect the Slide8 input to Ball-1.

Hmm. The Slide8 is mostly stuck on stage 0, with just flickers to other stages. This does not look very useful. What is happening is that mostly the output from the Ball module is 0; only when it hits a wall does it go to some number. What we need is some way to make the Ball output stay at the value of the wall it hit, until it hits another wall - rather than blipping the number and jumping back to 0.

Sample & Hold

Go to the Events submenu, and select the Sample module. Connect both of its inputs to the Ball-1. The output of the Sample module should now show the numbers 1 - 8, changing only when the ball hits a wall.

What is happening is when the ball hits a wall, its value at the bottom input of the Sample module is being sampled by a gate trigger from same ball value at the top input, with the top input is seeing it as a 0 to non-zero transition, a "gate," which tells the module to go look at its bottom (value) input, sample it, and hold on to it until it gets another 0-NZ transition in its gate input. Since the ball is going from 0 to some value, and that "some value" is the value we want to capture, it all works out.

So now connect the Slide-8 input to the Sample module. But wait! The Sample module is producing the values 1-8, and the Slide-8 module wants values of 0-7. As a practical matter, you could just plug it in and deal with the shifted positions. That is, 1-8 gets rolled over so that 1 is the second slider bar, and 8 is the first. Easy enough to deal with, but since this is a tutorial, we will do it right.

From the Math submenu, select a Minus module. Connect the top input of the Minus module to the Sample-1 output, and set the bottom input of Minus to 1. Now we have 0-7. Connect the Slide-8 input to the Minus-1 output. The Slider stages lights should be bouncing between the 0, 1, 3, and 7 stages of the Slider, with occasional hits of in-between values when it does a double wall hit.

Connect the two Voice modules's Note inputs to the Slide8 module, and set both Transp inputs to 60 or so. Fool around with the slider settings - this should give you pitch changes. If you are not getting pitch changes at this point, review what you have done so far.

Legato Mode

To get a slightly different flavor from the Voice module, check the legato button, the blue button just to the left of the Clock input. The label should read "Clock," when you click on it the label should change to "LEG" (legato). The action of the Voice module changes from generating a note whenever it gets a clock, to ignoring the clock and generating a note when the note value changes. This will give longer-sounding notes, and duplicate notes are combined into a single note.

Introduction to the Fill Utility

Finally, for a quick glimpse of the power of the Fill utility. We will set the Slide-8 module to a C-minor scale in just a few mouse clicks, and then with a couple more clicks, move the scale values to different positions without changing their values.

First, get things set up and running as described above, so you can clearly hear a change when you move one of the Slide8 stage sliders.

Next, click on the Slide8 Fill button. The Fill utility pops up showing 8 graphical bars in the display that represents the values currently in the Slide8. Remember, the image below is just an example image, and not the same as what you will get with the Slide8.

On the Quantize panel toward the middle right, and click on the Minor option button. These options are the same as the Quant module options in the previous tutorial. Now click on the Make button, which will make a generic minor key scale. The graphics display shows a staircase now, with the scale steps in ascending order.

Finally, mix the notes up a bit by clicking on Scat (Scatter), in the center of the Modify group. This will move the values in the Step-8 module to random stages without changing the values. Click it a few more times, until you are satisfied with the pattern.

Exit the Fill utility and save your work. Try different settings, not forgetting to take Snapshots of the ones you like. Remember to save again if you want to retain the Snapshots.

How it looks:

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