Programming Strategy

To get the most out of your QSR drum synthesizer and to avoid wasted effort, start with a clear Programming Strategy.

Links to topic sections

Why do I need a Programming Strategy?

The QSR has the essential features needed in a high-quality drum synthesizer sound module, but the QSR Reference Manual does not provide clear guidance on their use. With a little trial and error, many drum synthesizer programmers eventually discover techniques that produce good results. But this is inefficient. My personal experience with the QSR is a testament to this fact.

Most of the available documentation for the Alesis QSR addresses the needs of keyboard players. The QSR's architecture, including its use of Effects, Programs, and Mixes, was developed to allow keyboard players to emulate expressive, natural-sounding instruments. While many features were included for drum and percussion synthesis, the documentation does not fully explore the use of those features, forcing drum synthesis users to experiment until they work out the details on their own.

I understand the natural tendency to copy the structure of the QSR's built-in drum Programs. I went down this path when I started working with the QSR. But after experimenting with different ways to program the QSR, I discovered better ways to use the available resources. In this topic, I discuss the lessons I learned and present my new Programming Strategy. Hopefully, the information will benefit others trying to use the QSR as a drum sound module.

The Programming Strategy and guidelines presented here can be adapted to suit your individual needs. You may find other ways to use the resources in the QSR that may be more appropriate in your situation. But I believe you will still benefit from a review of my guidelines before you develop your own strategy.

My Programming Strategy focuses primarily on the drum kit. I do not cover the creation of instrument Programs such as steel drums, marimba, xylophone, or tympani sounds. Instruments like these require specialized editors to manipulate samples used in keyboard mode sound layers.

The Alesis approach

Alesis' drum and percussion Programs loosely comply with the General MIDI standard. In most Alesis drum kit Programs, individual sounds are assigned to the note numbers defined in the General MIDI standard. The built-in drum kit Programs typically cover the General MIDI drum map note number range so that an entire drum kit can be played in Program play mode using a single MIDI channel (channel 10 is the General MIDI drum channel). Mixes are used only for simple layering of sounds.

The Alesis approach allows the use of the QSR with a General MIDI sequencer, but most electronic drummers do not have a need for this. Maintaining General MIDI compatibility forced Alesis to squeeze the full range of drum and percussion sounds into a single Program, which limits the versatility of the QSR. Freeing yourself from General MIDI compatibility opens up many interesting possibilities.

Programming Strategy overview

My programming approach has evolved over time, as I experimented with the QSR's features and discovered its limitations. At first, I tried to cover an entire drum kit plus all the General MIDI percussion sounds in a single program, thinking that General MIDI compatibility would be useful. But I do not use the QSR with a drum sequencer so this was unnecessary. As I started using features like velocity crossfading, sound layering, and stereo samples in my Programs, I quickly ran out of resources. It occurred to me that there might be a better way to approach the problem if I abandoned the General MIDI compatibility requirement.

Unfortunately, I had already created several Programs before I realized that a different approach would better suit my needs. At first, I tried using the Programs I had created, and simply used the Mix play mode to split groups of drum sounds across multiple MIDI channels. By assigning different Programs to each Mix channel, I was able to isolate the sounds and independently adjust their parameters. This worked, but the Programs themselves were not optimized. Only by taking a new approach to the Programming problem was I able to fully leverage the capabilities of the QSR.

Today, I no longer attempt to put all the sounds of a drum kit into a single Program. Instead, I create Programs for individual drum sounds (such as a snare drum) or drum sound groups (like a rack of toms), and use that Program on the appropriate Mix channel. This opens up more resources (such as drum mode sound layer slots) that can be used for layering and other purposes. I now create a single Program, for example, for a kick or snare drum and use that Program on the appropriate Mix channel. While this forces me to use Mix play mode, instead of Program play mode, this gives me the most flexibility and eliminates unnecessary limitations.

Programming Strategy assumptions and guidelines

In this Manual, you will see references to my Programming Strategy. This strategy does not prioritize General MIDI compatibility. However, where practical, I do attempt use the General MIDI standard.

For example, I try to use the note numbers specified in the General MIDI drum map, which allows me to use the built-in Alesis Programs in my Mixes. I also use MIDI channel 10 as my Mix Group master channel. MIDI channel 10 is the drum and percussion channel in the General MIDI standard. A General MIDI sequencer would play the drum Programs assigned to the Mix Group.

The Programming Strategy guidelines are as follows:

  • Do not force adherence to the General MIDI standard.
  • Use General MIDI drum map note numbers when possible.
  • Separate drum sound groups for control on different MIDI channels.
  • Create Programs for individual drums or drum groups instead of complete drum kits.
  • Create Mixes using the MIDI channels and note ranges shown in the table below.
  • Use the Mix Group feature for additional Program layering at the Mix level.
  • Avoid using drum sound groups with overlapping note ranges in the Mix Group.
  • Use the MIDI channel assignments in the table below:
Table 1. MIDI Channel Assignments
MIDI Channel Note Range Drum Sound Group
1   N/A (can be used in Mix Group)
2   N/A (can be used in Mix Group)
3   N/A (can be used in Mix Group)
4   N/A (can be used in Mix Group)
5   N/A (can be used in Mix Group)
6   Effects Program channel
7 F1-D2 toms
8 C1-C1 kick drum
9 D1-D1 snare drum
10   Mix Group master channel
11 F#1-A#1 hi hat
12 D#2-B2 ride cymbals
13 C#2-A2 crash cymbals
14   user defined
15   user defined
16 C-2-G8 percussion