SoftStep Tutorial #4: Building a Percussion Ensemble

This tutorial builds on the previous one, to help you get started generating interesting rhythms and rhythmic tonal patterns with SoftStep. If you have not yet done the earlier part, you should go to Tutorial #3 now.

In Tutorial #3, you fine-tuned the patch you created in Tutorial #2, a Pattern16 sequencer driven by a Stepper module, with the pattern number selected with a Step16 sequencer, so we will continue with that. Load the .ssp file you created from the last tutorial now. Or you can load the prebuilt file from Tutorial #3, which is "tutorial-03.ssp" in the examples directory. It should look something like this:

Most likely you are using a sound card or synthesizer that is compatible with General MIDI. If so, you will have a drum kit on MIDI channel 10; if not you need to set your synth or sampler to use a drum kit, so different notes on the keyboard play different percussion instruments. This tutorial assumes you are using General MIDI or a close cousin.

On the MIDI Voice module there is a blue button in the upper left of the module, just below the "X" delete icon. This sets the MIDI channel and port (MIDI driver) that the Voice sends notes and control messages to. Click on the button to get a little pop up window that shows MIDI channels and ports:

Set the MIDI Channel to 10 now by clicking on the button labeled "10." The window will close and the Voice module should start playing a percussion instrument, most likely a bongo slightly to the right of center (but don't worry if it's something else). Once that is working, get a Number module from the Values submenu and connect the Note input of the MIDI Voice to it. Set the Number to 60 and your bongo should come back. If you have not ever explored the channel 10 drum kit, now is a good time to do it. If your synth or sound card is General MIDI compatible, you should find at least the instruments listed in the table below on the MIDI Note numbers given:

Note# Drum Sound Note# Drum Sound
35 Acoustic Bass Drum 59 Ride Cymbal 2
36 Bass Drum 1 60 Hi Bongo
37 Side Stick 61 Low Bongo
38 Acoustic Snare 62 Mute Hi Conga
39 Hand Clap 63 Open Hi Conga
40 Electric Snare 64 Low Conga
41 Low Floor Tom 65 High Timbale
42 Closed Hi-Hat 66 Low Timbale
43 High Floor Tom 67 High Agogo
44 Pedal Hi-Hat 68 Low Agogo
45 Low Tom 69 Cabasa
46 Open Hi-Hat 70 Maracas
47 Low Mid Tom 71 Short Whistle
48 Hi Mid Tom 72 Long Whistle
49 Crash Cymbal 1 73 Short Guiro
50 High Tom 74 Long Guiro
51 Ride Cymbal 1 75 Claves
52 Chinese Cymbal 76 Hi Wood Block
53 Ride Bell 77 Low Wood Block
54 Tambourine 78 Mute Cuica
55 Splash Cymbal 79 Open Cuica
56 Cowbell 80 Mute Triangle
57 Crash Cymbal 2 81 Open Triangle
58 Vibraslap

Displaying Instrument Names

It is easier to set 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 submenu. If you have run Tutorial #1, you will have used it for Program Change instrument names. Now we will use is in a slightly different context for the Percussion instrument names. Create this module now, and place it near the Number module you just connected to the Voice module Note input. Connect the input of the TNames module to the Number module output. Nothing will happen yet because all the TName labels are blank. Click on the button to the right of the input button in the TNames module to bring up the Page Table Editor. You are going to load a text file that was included with SoftStep, which has the General MIDI percussive instrument names. If your synth is not General MIDI compatible, you will need to create a similar file, that lists the instrument names or your synth.

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: GMPercNames.txt - select that file, and load it. The table should now be filled with instruments names that are the same as those in the table above. Click on the Exit button. Now, as you click through the Note values with the Number module, you will see the name of each percussion instrument selected.

Adding Another Voice

Each MIDI channel allows only one setting for things like Program Number, Pan Position, Modulation, and so on (the particular functions depend on your particular MIDI instrument); but each channel can also have multiple simultaneous Key presses (MIDI Note messages). Exactly how many MIDI Keys you can have going at once is dependent on your synth, but most have more than 8 or so. This is why SoftStep has Voice modules that have a few of the general channel messages (Pan, ModWhl and ProgChg) in addition to the note playing, and it has a KeyOut module that has only the note playing part of the Voice module. The rule for using them is quite simple: Only one Voice module per MIDI channel, but however many KeyOut modules per channel you need (and your synth will support). Usually, you would use the extra KeyOut modules to create chords on a single instrument - but for percussion kits each note is a separate instrument.

Now create a KeyOut module from the MIDI submenu. Set it to MIDI channel 10. Create another Number module and connect the KeyOut Note input to it, same as with the Voice module. Create a TNames module, also connected to the Number module, and load the instrument names into it as before. Also connect the KeyOut Clock input to the Pattern16-1. Fool around with the Number setting to pick a contrasting percussion instrument. Right now they are running in parallel, or course, but that will change soon.

Adding Another Rhythm Line

Create another Pattern16 module and connect it exactly as the first one: Stage input connected to the Stepper-1 and Pattern input connected to the Step16-1. Connect the KeyOut Clock input to the new Pattern16-2, replacing the Pattern16-1 that is there now. Click on a few of the pattern switches and fool around with it a bit.

On the Pattern modules, there is a little unlabeled button on the top line just left of the stage LEDs. This is a simplified copy/paste function that copies and pastes all patterns at once. Use it now to first copy the patterns from the Pattern16-1 module (click on the button) and then paste them into the newly created Pattern16-2 module (Shift-click on the button). This should put your percussion instruments back in parallel again, with both Pattern modules doing exactly the same thing.

Now judiciously change a few pattern buttons in each of the Pattern modules. You should start hearing some cool stuff. Again, take some time to explore the patch you have created so far.

When you are ready, create two more rhythm lines (KeyOut, Number, TNames, and Pattern-16) all connected exactly like the one you just made. This gives you a little 4 voice percussion ensemble. Later we will add a pitched instrument or two, but for now, take the time to see what you can create with just these 4 rhythm lines.

Don't forget to save your work when you are ready to move on to Tutorial #5, as we will once again start the next tutorial with what you have done so far on this one.

How it looks so far:

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