SoftStep Tutorials

These tutorials are intended just to get you started. We will cover just the basics of getting up and running. We assume you have some kind of MIDI device available and connected to speakers or headphone. If you are unsure of this, the first thing you should do is play a MIDI file with the default player (e.g. the Windows Media Player) to make sure at least one MIDI device is making sound.

Throughout these tutorials you will see underlined links to the modules and features being discussed. As you run the tutorial, you should click on the link and read a little of the documentation on that particular item, then click on your browser's Back button to return to the tutorial.

Tutorial #1: First Sound

SoftStep requires two modules to create sound. A Voice module that sends MIDI Notes out to the MIDI driver, and something to tell the Voice module to do its thing. This could be any number of modules. We will start with something familiar, a Keyboard.

You will find the Keyboard module in the Modules/Values menu. Create a Keyboard module now. You create a module by clicking on the submenu item with its name. It will appear in the upper left area of the workspace. You can also just left click on the blue workspace background, and the Modules menu will pop up. After you have created it, move the Keyboard module toward the center of the screen. Do this by clicking and dragging on the module's name label in top left part of the module.

Next, create a Voice module. It is in the Modules/MIDI menu.

Pay no attention to what the inputs say in the module images on these pages. They are just example images, and it would be a download burden on you to have multiple copies for each use of them. So the text in the example inputs will usually be out of context with the tutorial. The "How it looks" images are taken from a running example, so those input labels will be correct.

Click on the blue button labeled "Clock" just above the label that says "Note." You will probably hear a single note, but don't worry if you don't. The button label will change to "LEG" for "legato." This sets the Voice to send out a new MIDI note every time the Note input changes.

Plug the Keyboard into the Voice. Do this at the Voice. SoftStep modules are connected at their inputs, by selecting the module name from the list in the pop-up menu that appears whenever you left-click on an input parameter button. Selecting the module name is the same as selecting the module's output, as each module has only one output. To connect the Voice to the Keyboard, click on the button labeled "Note," that is to the right of the checkbox . These buttons are the input parameter buttons. When you click on one, a large pop up menu of names and numbers will appear.

The highlighted item ("mid(64)") is the current connection, in this case the constant value 64. To connect to the Keyboard module, click on "Keybd-1." The connection menu will disappear and the button will now take on the label of the module you just connected. Which in this case is Keybd-1.Click on the keyboard and you should hear the notes playing. You can click on individual notes, or you can hold the mouse button down and strum the keys. Here is how it looks at this point:

If you do not hear some kind of sound when you click on the Keyboard keys, check that your display looks like the one above, with the blue "Clock/LEG" button set to "LEG," and the parameter connection button to the right of the "Note" label now reading "Keybd-1" as it does in the picture.

If there is still no sound, go back and check your MIDI setup. You may need to change MIDI drivers from the Options menu. Keep checking, because if you aren't hearing anything now when you click on or strum on the Keyboard module, something isn't right. Once you can get sound with these two modules connected as shown above, you will be ready to move on.

Step Sequencing

SoftStep is an algorithmic music program, which means you create music by setting up running processes that interact in different ways. The best way is to start simple and gradually add detail. We will start with a Clock and a Voice, and then add a classic Knob Sequencer.

First, erase your current patch by clicking on the New icon on the Tool Bar. You will be asked if you want to save it, and if you do give it any name that makes sense to you and save. The green workspace will now be clear of modules.

Now, get a Clock from the Clocks section in the Modules menu; get a Voice as before from the MIDI section of the Modules menu.

Plug the Clock into the Voice. To connect the Voice Clock input to the Clock output, click on the input parameter button of the Voice module that is to the right of the "Clock/LEG" button (which should be set to "Clock"), just under the note readout labels at the top of the module.

Note that the Clock input is colored yellow while the other connection inputs are green. The yellow color tells you that this input requires a clock type input, which is defined as a value that goes from 0 to non zero. The instant of the transition from 0 to non zero is the beat point of the clock "tick."

When the connection menu pops up, click on "Clock-1," which should be near the upper left corner of the pop up. The menu will close, and the Voice module's Clock input button will now read "Clock-1." The red LED at the top of the module should begin flashing in time with the Clock module LED. You should have sound at this point; most likely a piano monotonously thumping on E above Middle-C, in eighth note time.

All Notes Off

Assuming you are getting sound - you probably want to turn it off now. One fast, easy way to stop MIDI sound is to click on the All Notes Off button on the Tool Bar. This is the button with the red filled circle with the white minus in it, to the right of the tempo bar. It will send an All Notes Off message to all 16 MIDI channels, and then it will inhibit SoftStep from generating further MIDI messages, until the button is un-clicked.

Another way to turn off sound is to click on the module inhibit button of the MIDI Voice module you want to silence. This is the green button in the module's title bar to the left, between the title text and the module delete button. Try releasing the All Notes Off button in the Toolbar, and then clicking on the Voice module's inhibit button. The button should turn red and the sound will stop.

Step Sequencer Basics

Although the variations are endless, the basic sequencer patch in SoftStep has only 4 elements: The Clock and Voice which you have just created, plus a Counter and a Sequencer.

Create a Knob08 sequencer. If necessary, move it so it is not overlapping the other modules. Connect the MIDI Voice module's Note input (where you had previously connected the Keyboard) to the Knob08-1 sequencer that will now appear in the input pop-up menu. After you make the connection, the Voice module's Note input should read "Knob08-1." Release the inhibit button on the MIDI Voice module if it was on (red), and you should hear a low, thumping sound.

The first knob in the Knob sequencer, with a label of "0," should have a bright red LED indicator above it, and all the other knobs should have a dark LED. This indicates that stage 0 is active, and the value of that stage as set by its knob (which currently should be 0), is the value being sent to the output.

Try changing the value of the stage 0 knob. To do this, place the mouse cursor over the knob, then left click and hold the button down. While continuing to hold the button down, bring the mouse cursor out away from the knob, and then move it in an arc around the knob. You should see the knob move and the output value box of the sequencer - which is just right of the module label - should read the same value as the center knob value label. And you should hear the MIDI Voice module change pitch. To keep a value, simply release the mouse button.

The advantage of using knobs over sliders is that with the knob, you can move the mouse out away from the center of the knob, and thereby change size of the arc the mouse travels around the knob. Thus, by simply moving the mouse further away from the knob as you adjust its value, you control the amount of fine tuning you need.

Setting Sequencer Stage Values

Normally sequencers change stages by connecting the stage control parameter (the only parameter button on the module) to a Counter module or some other module that supplies a value to the sequencer stage control input. We will do this later, but first we need to set the values of each of the stage knobs.

You can set the stage knobs simply by placing the mouse cursor over the knob you want to change, and click-and-drag in an arc around the knob, as you did for the first knob. As you click on a knob to adjust it, the red LED indicator changes to that knob, and you will hear the changes as you make them. When you release the mouse button, the sequencer will return to the stage it is set to by its Stage parameter input.

Once you have some values set, you can "play" the knobs by simply clicking on the different knobs. This is handy for listening and adjusting, going quickly from one knob to another. Use the little blue button labeled "L" to lock the knobs so clicking on them with the mouse will not change their values.

Stepping the Sequencer

Create a Counter module (find it in the Clocks submenu), and connect its Clock input to the Clock-1.

The Counter module's yellow Clock input is labeled "Clk." When connected, you should see the number in the output box incrementing from 0 to 127 as the clock ticks, and then rolling over to 0 and repeating the count.

Now connect the Knob08 stage input to the Counter by clicking on the Stage connection button in the Knob08, and selecting "Counter-1" from the pop up connection menu.

You should see the sequencer stepping 0, 1, 2, ...7 and repeating, and you should hear the pattern you put into the sequencer stages.

Parameter Value Controls

Often you will want to change the MIDI instrument that is playing. Do this at the Prog (Program Change) input to the Voice module. You could just select the number of the MIDI Program Change you want, but this becomes tedious if you want to listen to several instruments. A better way is to connect one of the Values Menu modules interface modules. Try the Number module for now. Connect it (it shows up in the connection menu as "#-1") to the Prog input of the Voice module. Then click on the increment/decrement controls as the module is playing. You should hear different instruments playing.

One handy feature of the Value controls is that you can label most of them to remind you later, when you have forgotten, what their intended purpose is. With thoughtful placement and labeling of controls, your SoftStep patch will become nearly self documenting. To label the Number control, right click on the arrow part. A little pop up window should appear. Write something like "Program Change" into the text box, and click on the OK button. Now, when you move your cursor over the arrow area of the Number control, your label will pop up as a Tool Tip.

Get a Value knob from the same Values menu, and connect it to the Velocity input of the Voice. This gives you a volume control on most synths and sound cards. Right click on it, and a label window will pop up. Label it "Velocity Amount."

Next, get a Note module from the same Values menu. Connect it to the duration ("Dur") input of the Clock module, and try different settings.

Finally, get a Button from the Values menu, and connect to the Rev (reverse) input of the Counter. This should make your sequence go backwards when the button is pressed, and forward when it is released. Label the button "Reverse Sequence."

Displaying Instrument Names

It is easier to select instruments when you can see their names displayed as you make your selections. SoftStep has a label display module that is especially useful for this, the TNames module in the Display menu.

Create this module now, and place it near the Number module you previously had connected to the ProgChg input of the Voice module. Connect the input of the TNames module to the Number module output. Nothing will happen yet because all the TNames labels are blank. Click on the blue button to the right of the green connection input button in the TNames module to bring up the Page Table Editor. You are going to load a text file which will provide instrument names.

Most likely you are using a sound card or synthesizer that is compatible with General MIDI. If so, the Program Change (ProgChg) numbers are standardized to call up specific instruments, and there are files provided with SoftStep that lists these instrument. If your synth is not General MIDI compatible, you will need to create a file that lists the instrument names for your synth in order to have them displayed in SoftStep.

Click on the Load button, on the bottom edge of the Page Table Editor. A standard Open File dialog box will pop up. It will be set to Files of type: Table Files (*.tbl) - this is not what you want. Change it (by clicking on the drop down arrow) to Files of type: Text Files (*.txt). If you are in the default examples directory, you will now see the text files. One of them will be: GMInstNames.txt - select that file, and load it. The table should now be filled with instruments names starting with "Acou Grand Piano" in slot 0, and ending with "Gun Shot" in slot 127. Click on the Exit button. Now, as you click through the Program Changes selections with the Number module, you will see the name of each instrument selected.

Toolbar Run/Stop

The Run/Stop button on the Toolbar is like all controls in SoftStep: it doesn't do much until you connect it to something. Although it is entirely up to you, generally the Run/Stop is used to start and stop Clock and Counter modules as well as setting whatever initial startup conditions you want to define.

The output to the Run/Start is always available in the parameter input pop-up menu. It is toward the end of the menu, following the list of numbers, labeled "~ Run" and "~ Stop" The two connections are opposite of each other: Run is On (127) when the Run/Stop button is depressed and Off (0) when it is released; while Stop is Off when the button is depressed, and On when it is released.

Click on the Hold input of the Clock-1 module, then select "~ Stop" from the pop-up menu. The Clock should stop, and sound stops. But the sequencer is left at whatever stage it stopped in, so clicking on Run/Stop again will start with that stage. Now click on the Reset input of the Counter module, and again connect the "~ Stop" output. Now when you click on Run/Stop the sequence will stop and reset; and when it runs it will start at the beginning of the sequence.

Documenting with the Info Box

Chances are pretty good if you come across this patch in a few weeks, you will start by wondering why it isn't playing. What you really need is some kind of message to yourself that you are using the Run/Stop button, and you will need to click on it to play the patch. This is the job of the Info Box.

Create an Info Box by selecting it from the Display menu. It will be empty and small. Expand it a bit by clicking on the upper right corner and dragging the mouse up and right. Now move it just under the Run/Stop button and type the message to yourself: "Press the Run button above to play."

Introduction to the Fill Utility

All of SoftStep's sequencers are connected by the Fill utility pop-up, which is accessed by the Fill button found in every sequencer module. In the Knob-08, this is the little blue button labeled "F." For this tutorial, we will set the Knob08 sequencer stage values to a C-minor scale in just a few mouse clicks, and then with a couple more clicks, move the values to different stage positions without changing their values.

Start your patch running, so you hear the pitch changes as the sequencer steps through its stages. Now click on the Knob08 Fill button. The Fill utility pops up with a green graph area in the display that represents the values currently in the sequencer. These are like sliders, and you can change their values with the mouse button.

To change a single stage value, left click and drag the stage slider up or down. If the sequencer is playing, you will hear the results of the change. To change several sliders at a time, right click and "draw" on the graphic area.

Click on the Count button, upper left in the first, "Source" group. You will get an ascending ramp starting with whatever value was in the first (0th) stage. If you want to return to the previous values, click on Undo in the lower right of the Source group.

Transposing a Sequence

To transpose all the values in a sequence, use the Add button, which is the upper left button in the Modify area. Put the cursor over the button without clicking and a tool tip box will say: "Add LOW to all values." All the command buttons have similar tool tip information, mostly about how to use the Start, End, Low and High values as set by the knobs in the center of the screen.

Set the Low knob to 12, then click the Add button. You should hear the sequence that is playing shift up an octave. To transpose down, use the Sub button.

Forcing a Scale

Next, go to the Quantize panel toward the middle right, and click on the Minor option button. This will force each of the stage values to its nearest Minor scale pitch. Nothing happens, though, until you click on the Quant button. This will set the sequence to the C-Minor scale.

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 Knob08 module to random stages without changing the values. Each time you click on Scat, you get a different pattern, but always with the same pitch values. When you have had enough, click on the Exit button at the lower right of the Fill utility.

Saving Snapshots

Fool around with the controls you just created, and when you get to something you like, click on the Snapshot button, which is the camera icon on the Tool Bar. Do this several times. You can give each Snapshot a name if you like, or you can just use the default name - each Snapshot is automatically given a sequential number by SoftStep, so they are always uniquely named. If you want to change a Snapshot later, either to rename it or to make changes to your patch, use the update button to the right of the camera.

After you have saved several Snapshots, try going back to them by choosing them from the Snapshot drop down menu. Notice that all the settings that were in effect when you clicked the Snapshot are restored when you select it from the drop down menu.

Saving Your Work

This might be a good time to save what you have done so far. Click on the file save icon on the Task Bar, or select Files/Save from the menu. A standard Windows file save dialog box pops up, and you give it a name and save it in the usual way.

How it looks:

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