/ Music Trackers / Introduction to Tracking

This introduction is meant for people who already have a little experience with making music and want to try something new, maybe challenge themselves to work with specific limitations and learn a little bit more about music.

I will be referencing MilkyTracker in this tutorial since it is free and available on many different platforms including Windows, Linux, and Mac. Most of the things that I will explain are not exclusive to MilkyTracker. At the end of this article you will find some links to tracker related articles that I've written, describing the features of some of the more popular trackers in more detail, as well as links to other tracker tutorials.

I also want to get rid of the misconception that trackers are only good for chiptunes, or that the musical quality (not the audio quality) is somehow worsened by using a tracker. The music can only be as good as the person who writes it.


If you have never seen a tracker before the first thing you should know is that the music does not progress from left to right but from top to bottom, almost like when you're playing Guitar Hero. The pattern editor, this is where you will be editing the actual song, consists of a big grid that is separated into channels. You can align your music along these channels by editing each cell in this grid, almost like editing a spreadsheet in Excel.

The data you will need to enter consist of 5 parts:

This is how an entry would look like in the pattern editor:

C-4 01 30 037
^ ^  ^  ^  ^- Effect
| |  |  '- Volume
| |  '- Instrument
| '- Octave
'- Note

An instrument can either consist of one sample or many samples which you can combine i.e. into a drum machine by using the instrument editor.

There are many different effects ranging from volume and pitch slides, arpeggiation, vibrato, tremolo and others. You can view all effects available in MilkyTracker, including examples, in the official manual. The effects may differ depending on the tracker you use so be sure to read the manual of your specific tracker.

Keep in mind that the channels limit the way you can work with sound. If you trigger two samples right after another in the same channel, the first sample is going to stop playing as soon as the second one is triggered. Thus, you need to add more channels depending on the number of samples that have to be played at the same time.

Last but not least, many trackers make use of the hexadecimal system which means that you don't count from 0 to 9 before adding a 10 but from 0 to F.

 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  A,  B,  C,  D,  E,  F,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F,
20, ... and so forth

Don't worry, most of the time you only need to know that the letters A to F are a part of the number.


You basically have three options, you can either download instruments for MilkyTracker, get the samples you need from a sample pack or another module, or you can generate and draw your own samples. For the sake of this tutorial let's go with the last option. When creating sound you will have to choose between 4 basic wave forms that all have specific characteristics. You make use of these characteristics to emulate the sound of real instruments.

The basic wave forms are:

For instance, if you want to create a kick sound you could use a square wave to get a fat, short and low "thump" sound. For snares and hats you could use noise of different lengths, triangle for high-pitched arps or chimes, and so forth.

When it comes to samples there is a lot of room for experimentation. You can mix different wave forms together, play the sample at a different pitch, see how it sounds when it's played backwards, set loop points, etc.

This is very important when you have a bass line, a melody and some other harmonic elements and you want them to sound right when they are played together. The same goes for other samples too.

Sample Length

TL;DR In MilkyTracker, use a sample length of 127. This will give you a low C when you play C-4.

When working with a sample, you have to know at what sample rate the sample was recorded, at what sample rate the sample will be played back by the music program. For instance, when you record a sample at a sample rate of 44100Hz and play it back at 88200Hz, the sample sounds sped up by a factor of two.

It also matters what pitch or frequency the instrument plays in the recording. Every note in music has a certain pitch. The note A-4 has a frequency of 440Hz. The note C-4 has a frequency of about 261Hz. If the sample is played back at double the speed, the pitch of the instrument goes up by an octave. If the sample is played back at half the speed, the pitch of the instrument goes down by an octave.

When you generate a sample you only need to care about the output sample rate and what note the instrument should be tuned to. Let's say the output sample rate is 44100Hz and you want to create a single cycle wave that is tuned to C-4 (261Hz). The easiest thing is to choose a sample length that will result in the correct pitch when played back at the output sample rate. The formula for that is:

Sample Rate / Note Frequency
44100Hz / 261Hz = 168 samples

In MilkyTracker, C-4 has a frequency of 8363Hz. This is by design. You can use this as a base for calculating the sample length:

8363Hz / 261Hz = 32 samples

If you set your sample length to 32, your instrument will play at the correct pitch when you play C-4. However, 32 samples is not a lot of samples to work with. When samples are played at lower speeds, the music program has not enough sample information. This is where sample interpolation comes into play. Sample interpolation will change the properties of your sound.

A good compromise is to pick a sample length of 127 samples. This will play a note with the pitch of about 65Hz when you play C-4:

8363Hz / 127 samples = 65Hz

The note C-2 is roughly at 65Hz, so you will need to tune the instrument up by two octaves, if you want it to be tuned correctly to the notes that you are playing.

If you have a certain memory limit for samples, you can always set an arbitrary sample length and tune the instrument accordingly.

Sample Interpolation

Sample interpolation occurs when the sample is played back at a higher sample rate than it was recorded. Additional samples have to be generated that lie in between the existing audio samples.

No interpolation means that the generated samples are based on the value of the nearest neighbor. This creates a ladder effect which can distort the sound and add undesired frequencies.

Linear interpolation is when you take the previous and the next sample, and calculate a sample that lies on the slope that is created by the two samples.

More complex interpolation techniques use more samples and apply different weights to them, thus creating smoother transitions in between them.

As a result of the interpolation and smoothing, a sample can sound muffled or filtered (low-pass). Depending on the style of music you that want to create, this might be a desired effect or not.

For chiptunes I like to use no interpolation. For songs where I use recorded samples I use interpolation. For some songs I might even lower the sample rate of the sample drastically to achieve the filtered effect (downsampling).


You can use envelopes to make your samples more dynamic, by changing properties like volume, panning, and pitch over a certain period of time.

If you are using simple wave forms, envelopes shape the sound so that it resembles a real instrument. If you are using recorded samples, envelopes emphasize or deemphasize certain parts of the sample.

There are four different parts of an instrument envelope:

The attack is the initial part of the envelope that will be triggered when a key is pressed after which the decay follows. The sustain is the amplitude that is held while the key is pressed down. If the key is released, or the tracker encounters an OFF note, the release part is triggered.

For example, if you want your sound to resemble a percussive instrument like a chime, you could use a triangle wave form and an envelope that starts off with the highest amplitude, drops very fast to 30% and slowly decreases to 0%. For a piano you can have an instant attack with a short decay to 75%, a sustain, and a short release to 0%. For pads you can use a very long attack and an equally long decay time.

There are a lot of different and creative ways you can work with envelopes. Most trackers allow you to set arbitrary envelope points that don't follow the ADSR model. You can even set envelope loop points.

In MilkyTracker you can set the envelope in the Instrument Editor, but I've seen some musicians who create envelopes by using the note volume directly, or note effects like Volume Up, Volume Down.


It is important that the overall sound of your track is well-rounded. There are a few basic things to consider.

Audio clipping is when the audio signal becomes so loud that it exceeds the amplitude that can be represented by the chosen audio format. Imagine that the upper and lower bounds for the amplitude of a signal lies between -1.0 and 1.0. An amplitude below -1.0 or above 1.0 cannot be represented anymore. The solution is to clip the signal. However this results in distortion and loss of audio information.

You can avoid audio clipping by making sure that your song is not too loud. Watch out for parts of your song where several instruments are played together at the same time.

To avoid clipping and create a more balanced mix, there are a few approaches.

You should be aware that similar wave forms can interfere with each other in undesirable ways so try to use different kinds of wave forms, played in different pitches, so that your song covers a broad spectrum of frequencies. This is especially important if you are doing a chiptune song with basic waves like sine, square, triangle, etc.

MilkyTracker offers a 3 and a 10 band equalizer which you can apply on your samples if needed. Other trackers come with low-pass and high-pass filters.

Tips & Tricks

Besides the effects that your tracker comes equipped with, like pitch and volume slides, vibrato, arpeggiation, etc. you can also create more advanced effects.

Creating audio effects in trackers is a manual task that can be a little tedious, but the benefit is that you always have full control over the samples and the effect.


Similar to envelopes, automation changes the audio properties of an instrument over a certain period of time. Different to envelopes, the automation is not bound to the instrument and the note on/note off events, but can span multiple notes and even patterns.

Volume automation for instance can be achieved by changing the note volume over time so that it increases or decreases. In most trackers there is a linear volume interpolation tool that generates the appropriate note volumes in between a selected volume range.

Randomizing volume

To make your beat a little more organic you can apply different volumes to your samples i.e. if you have high hats don't play them all at 100% but change it up a little by choosing a range you want the volume to be in and randomize the values.

Some trackers have randomization effects that can be applied to the instrument itself.


Ducking describes the effect when one instrument is lowered in volume when another instrument is played. For instance, whenever the kick drum is played, the bass or melody is lowered in volume, making place for the kick.

You can vary how much the volume of the instrument is lowered and how long it needs to recover to its initial volume. This can happen instantly, or following a linear or exponential curve.

You can achieve this by using volume automation on the instruments, as described a few paragraphs above.


You can emulate an echo or a delay by simply retriggering the instrument or sample. This is a very common technique. You can retrigger the sample with different volume, pitch and panning. The number of delays and the time between them can change. You can also vary the number of channels that yo use for the delay.


The unison effect is achieved by playing the same waveform on multiple channels and detuning or slightly changing the pitch of each voice. This can be used for effect or to avoid situations two notes played by the same waveform overlap each other, as is sometimes the case with chiptunes.


An effect that is commonly seen in techno songs involves playing a sample of a very slow filter sweep with different samples offsets. This creates the illusion that the filter is modulated while the instrument is playing, even tho the tracker has no filter. Of course this can be applied to any kind of sweep.

A different form of modulation is the pulse width modulation. This is more typical for chiptunes. Instead of a regular square wave, some sound chips can output pulse waves whose width can be changed. Changing the pulse width over time creates the modulation effect.

Time Stretching

Another effect that involves changing the sample offset is the time stretch. When you want to play back a sample at a lower speed, you could trigger it with a lower note. However, this also changes the frequency of the sample. If your pattern resolution is high enough, you can retrigger the sample with slowly increasing sample offsets. This will give the illusion that the sample is stretched without changing the frequency. Of course this effect has its limits.


Poisoncut - Cockpit View
Keith303 - Tentacle Observer n1
Strobe - Armored Machine

Further Reading