Techniques of Chipping
A detailed tutorial on how to create chiptunes


1. Introduction
2. Samples and Mixing
2.1 Samples for Chiptunes
2.2 Chipsounds and their Characteristics
2.3 Drumsamples in Chiptunes
3. Mixing
4. Techniques
4.1 Layering-Techniques (additive synthesis - home-made:)
4.1.1 Detuning
4.1.2 Octave-Doubling
4.1.3 Different Waves
4.1.4 Echo
4.2 Envelope Techniques
4.2.1 About using Envelopes
4.2.2 The "Supersine" Technique
4.2.3 The "Superpad" Technique
4.2.4 Annotations
4.3 Melodies
4.3.1 Lead-Style 1
4.3.2 Lead-Style 2
4.4 Techniques concerning rhythm
4.5 Various Techniques
4.5.1 The SCx-Command
4.5.2 The Jxy-Command
4.5.3 Usage of different waves

1. Introduction

This little tutorial contains lots of hints concerning the creation of chiptunes. The motivation to write this article was that usually, when using tracking software, you have to figure out everything by yourself; you need to experiment a lot and to scrutinize other people's modules in order to find out how they achieved that particular sound you'd like to recreate. This tutorial will hopefully help you to save some time and creating chiptunes a little easier for you.

Please notice that many of the techniques mentioned below are not only applicable to chiptunes but to most any style of tracked music. Since Impulse Tracker is my tracking software of choice, the effects and patterns in this tutorial are in accord with Impulse Tracker standards, but of course you can still read the tutorial since Fast Tracker and most other trackers have exactly the same effects (with the exception of the filter-command Zxx and a couple of envelope features).


Already when choosing the samples for a chiptune the quality of your finished chiptune is set. In spite of the fact that chipsamples are very small, each of them has its own timbre, so select them with care.

There are various possibities of attaining chip samples:

1. Ripping from "normal" wave files
Using a wave editor (e.g. CoolEdit, Goldwave, etc.) you can remove very short snippets from audio files. While doing this, pay attention to always only cutting out one "waveform". (Most sounds possess a characteristical waveform which repeats itself all the time. In the case of naturally created sound that waveform changes all the time, of course, but basic characteristics remain the same.)
While cutting out the waveform, you should also try to make beginning and end of the waveform have the same horizontal value (preferably one of 0).

2. Creating sounds by yourself
With the help of soft synths, self-written software (you can even use QBASIC for that) or an audio editor which allows drawing waveforms "freehand" you can create waveforms suitable for all your chippy needs. Please notice that when you draw them that you should keep them either at the same length or at lengths that are multiples of each other. I.e. you can make sure that all your hand-drawn samples are perfectly tuned by tweaking their length to 8, 16, 32, 64 etc.
Some people even prefer to create chipsounds by typing some words into notepad. You can then open the file as a normal wave file with your tracker.
A thing that you might want to take care of is the DC offset of your chiptune. DC offset is what the 0-crossing of your sample is called (the middle of any wave, horizontally). In some samples, this middle is shifted upwards or downwards, and in general this is said to be detrimental to sound quality. There are various audio editors available which can fix this problem.

2.2 Chipsounds and their Characteristics

Chipsounds that you can easily create using the aforementioned ways are:

Highly versatile, but don't overuse it. Good for subbasses, soft lead sounds or high, shining bells. Looks like the sine function that I am sure you know from maths.

Has got a kind of raspy sound, a good choice for basses. Looks roughly like a saw:

|\  |\  |\  |\  |\  |\  
| \ | \ | \ | \ | \ | \ 
   \|  \|  \|  \|  \|  \|

Comprises features of sine and saw-wave. Looks like this:

  /\    /\    /\     
 /  \  /  \  /  \    
     \/    \/    \/

A good choice for leads and great for detuning.

 ___     ___     ___ 
|   |   |   |   |   |
|   |   |   |   |   |
    |___|   |___|   |___|

A few more words on the waves themselves. I'd like to draw your attention especially to the following: You can not use all chip samples for all the pitches that there are (just as the case with non-chip samples)! Each chip wave has got its individual sound and has to be used accordingly. Here you'll need to experiment from time to time - for example, playing chip waves at unusually high pitches can yield surprising results.

Another thing which is incredibly important is that you should use as many different chipwaves as possible in your chiptune. This is because the same chipwave, played at different pitches at the same time, will naturally interfere with itself and cause unwanted side effects. Additionally, chiptunes are already minimalistic enough, so try to bring some contrast into it by using many different timbres.

2.3 Drum Samples in Chiptunes

In principle, everything is allowed. Of course, a classical chiptune needs short samples with a small file size. In order to create those yourself, just take normal drum samples, cut out parts of them that you think are unnecessary, and lower the sample quality if you like (this will not also make the drums sound like they were created in 1988, it will also remove high pitches which tend to be unneeded in chip drums).

3. Mixing

As in any other tune, try to have your chipsounds cover as many pitches as possible, i.e. have a bass line, a high lead, some chords in between, or however you like it, just make sure you create a "full" sound. (I'm not saying that you have to do it this way. But it's just the easiest approach to creating a pleasant mixing.) Some old tracking tutorials say that you should try to use as few channels as possible, or at least try to erase anything remotely unneeded from your track. This might have been true in the days when those tutorials were written, the mixing quality being 8-bit and 22.1 khz.

But these are the days of 32-bit mixing, so you will not have to worry about quality decreases anymore. Moreover, when making "newschool" chiptunes you are more of an engineer actually, having 64 channels at his/her disposal to synthesize the best sounds possible. And notice: Chipsounds are weak, they cannot be played alone. So, try to avoid doing that too often.

4. Techniques

4.1 Layering-techniques

4.1.1 Detuning

The easiest way to make a simple chipwave sound better is playing it on 2 channels at the same time, having the two waves slightly detuned (you will have to figure out yourself how much "slightly" actually means:). Using this technique, you can achieve a very "fat", C64-like bass sound and basically improve any kind of dull-sounding lead.

There are two ways of realizing this technique:

a) Load the sample a second time, and change its playback speed (i.e., change the hertz rate). Then, just have the melody to be detuned run in two channels, using the two detuned waves.

b) Just copy your channel to another channel, and add fine volume slide up/down to one of those channels, like:

       1             2
|C-5 01 64 FF1|C-5 01 64 000|

Please notice that this technique is not as clean as the other one. The moment the wave starts playing, it is not detuned yet. Also, this technique might get you into a mess when using pitch slides (Gxx) (you will have to enter the effect again after this, and also each time the wave is retriggered). One last point against this technique is that you cannot finetune the amount you detune your wave so exactly with it.

4.1.2 Octave-Layering

You can make a wave sound more full by playing it on two different octaves at the same time.

4.1.3 Layering different waves

Have two different chipwaves play exactly the same melody - it can yield interesting results.

4.1.4 Echo

Echoes are one of the most important means of giving chiptunes (and tracked tunes in general) more depth. Use them on especially on leads and wherever they seem to sound well. Echoes are easy to do: Just copy the channel to be echoed into a 2nd channel, shifting the content some lines downward. The contents of this echo-channel need to be less loud, of course - you can decrease this channel's volume either by using the Mxx-command (channel volume, only in Impulse Tracker) or by selecting the whole channel and pressing alternate-j (automatic volume adjustment). To my experience, using the Mxx command has proven to be more precise (after all, there are also volume slides, left completely untouched by the alt-j command), but also more confusing since sometimes one forgets to reset channel volumes. If you're somehow limited in your usage of channels or if you want to save disk space, you might want to put an echo, or even more of them, into the same channel that the lead is being played in.

4.2 Envelope Techniques

Envelopes are - at least for me - an essential tool when creating chiptunes. Do not neglect them!

4.2.1 About using envelopes

Volume envelopes can help you imitate the behaviour of real instruments, for example a piano:


As you see, a piano starts at a high volume which decreases quickly and fades out slowly.

This envelope is fine for background chords:


Starts at a high volume and fades out quickly.

An envelope for a constant background sound:

 _/       \_
/           \

An envelope which slowly fades in and out.

Next time you use a volume slide command, think twice about whether an envelope might have been more helpful!

4.2.2 The "Supersine-Technique"

Ok, I admit it, I coined that term. This technique has been in use for a while by various artists.

It's done like this: Take a sine wave (or a similar-sounding one). Create an instrument for it with an envelope looking like this:

  \            /\
   \*___/\____/  \___/\__*

The * signs stand for loops points. It might look a bit weird here, and you do not need to do it exactly like this, of course. Set "Continue Playing" or "Note Fade" as a Note-Off action, and you're set. You can use this instrument as some kind of background bell. In case you're using Fast Tracker or some other program not supporting advanced note off commands, you can try to emulate them by just using more channels, e.g. like this:

Channel: 1   2   3
        c-4 ... ... 
        ... e-4 ...
        ... ... g-4

4.2.3 The "Superpad-Technique"

This technique was probably invented by Reduz/Fromage, at least I heard someone from Fromage say that :)

It works this way: Create a volume envelope which slowly fades out the sample on note-off, or switch the note-off action to volume fade. Now try something like this:

c-5 01 .. Z50 e-5 01 .. Z52 g-5 01 .. Z54 b-5 01 .. Z56 c-5 01 .. Z58 e-5 01 .. Z5A g-5 01 .. Z5C b-5 01 .. Z5E

This is supposed to emulate a filter-sweeped pad chord.

4.2.4 Annotations

To my experience, you should not work too much with envelopes when making leads. Instead, try to use the techniques described below. (Some people would disagree on this, though. There are quite a few who work with note off to "switch off" their leads).

4.3 Melodies

In today's music, melodies are still (imho!) the most important element of music, and that's why you will want to make your lead as expressive and virtuous as possible.

4.3.1 Rhythmic Leads

If you want to make a very rhythmic lead, use an abundance of note-off or volume commands, e.g. like this:

C-5 01 .. ...
^^^ .. .. ...
D-5 01 .. ...
... .. .. ...  
^^^ .. .. ... (instead of a note cut, you could also have entered a
... .. .. ...  very low volume, which would have made your lead a bit
E-5 .. .. ...  softer though)

4.3.2 Lyrical Leads

If you want your lead more to sound like a human voice singing or in general something softer, you will have to use various effects:

Gxx - Tone Portamento (Slide to Pitch) with speed xx.
This effect slides the pitch to the note you designated with a speed of xx. Try using small values for xx if you want those wonderful slow oldschool pitch slides.

Hxy - Vibrato with Speed x and Depth y
An important way to accent your leads. Use them in places where the tone has been playing relatively long already or if a dramatical part is just ahead. Another fun thing you can try is just having the effect on your sample all the time (you can either do this manually or select it in the sample screen)

Uxy - Same as Hxy, but weaker. It is especially of use if you want to do chiptunes in an old format (e.g. MOD) where only "Amiga pitch slides" are supported. I do not want to into detail here, but Amiga pitch slides are not too sensitive, so you'll need Uxy probably.

Kxy - Want to fade out your lead and have some vibrato on it at the same time? This is how. Works like Dxy, except that it executes Hxy with the values from the last Hxy command that was set.

Exx/Fxx - Portamento (pitch slide) Up/Down
You can do various things with this, and sometimes you will need to experiment. However there is one trick which is easy to apply:
In some places, just before a lead place a new tone, enter some Exx commands with a relatively high value for xx. Even if you might not be able to imagine what this sounds like, it yields quite a cool effects, especially with echoes, and you should really try it out. Just because it fits in with this effect, here is another trick that you can do using fast slides down:

C-7 01 .. E40
^^^ .. .. ...

Try this is out with an appropriate waveform, and it'll sound like a drum.

4.4 Rhythm Techniques

Give your track a funky swing rhythm by changing the speed all the time, like this:

1   A07
2   ...
3   A04
4   ...
1   A07
2   ...
3   A04
4   ...

(Axx is the Frames per Row Command and determines how many internal steps (frames) the tracking program makes per row, and hence determines the speed. Theoretically you could also use Txx, but Axx is firstly more practical as it clearly shows number relations (e.g. 8 - 4 is your typical triolic swing rhythm, while finding the accompanying value for TA8 might prove a bit difficult) and because you should reserve the Txx commands in order to have tempo slow downs while still keeping the swing rhythm.

Here's another weird way to emulate a constant triolic swing (A08 A04 A08 etc.) in your tunes: Use 96 rows per pattern while still staying in 4/4. You can try this out, and maybe you'll find it more convenient than using the other technique (but I bet many of you won't:).

4.5 Various Techniques

4.5.1 The SCx-Command

This is an important command for rhythmic accentuation. It cuts a note after x frames. I like using it on fast passages in leads. 4.5.2 The Jxy-Command

This is THE chip effect if there is one. It creates the characteristic gargling sound that we all know so well from the C64. This effects plays the note specified, and then rapidly plays the notes x halftones and y halftones above. In practice, a C-major chord using Jxy might look like this:

C-5 01 .. J47
... .. D1 J00
... .. D1 J00
... .. D1 J00

If you think chords are too complicated, you can just play a tone one octave higher, like this:

C-5 01 .. J0C

And here is something I was told recently: You can use J13 to make a flute-like effect (it is a kind of ornament). At first I could hardly imagine what this would sound like, but I really can just recommend to you to try this out.

4.5.3 Using different wave forms

In order to achieve an interesting sound, it is important to use different wave forms. But this does not only count for different instruments. For instance, you might want to create a lead that uses different wave forms (of course they have to be similar in some way). For example, you might do this:

C-5 01 .. ...
^^^ .. .. ...
E-5 02 .. ...
^^^ .. .. ...
G-5 03 .. ...
^^^ .. .. ...

I admit this is not exactly a good lead, but might fit as a background filler for your tune.

If you want some example tunes for what I just described, get yourself Virt's "FX EP" as an example for skilled usage of different waves on one lead. Another example for how powerful using different waves forms can be is Nagz's tune "Chinqua" which -in some places- has got 2 leads that use different waveforms and sort of compete with each other.

This tutorial ends at this place, but this does not mean that there aren't more techniques of chip-tracking to be explored. Finally, I'd like to mention some people who contributed to this tutorial by pointing things out to me that were still missing: Lithis, Aymes, Distance and Ice Raven.