n00bstar's Klystrack Super Special Edition Super Klystrack Edition Deluxe, Super.

Head over to the files section to download a repackage of the latest stable version of Klystrack for Windows. Details are on that page so I won't bother to list them here.

Have fun!



We now have a forum!

What's the point? Well, right now the only place where people discuss about this software is on CMO and the entire discussion is held into a single, incredibly long thread. Anything from people reporting bugs to people asking questions on how to use klystrack in bunched up in that messy thread. After reading the bug reports on GitHub, I saw a request for a klystrack forum and thought it would be a great idea to put one in place. Since klystrack doesn't really have a real home on the interweb right now, I though I'd add it here.

Will people use it? Well that depends on YOU, the klystrack user. Even if you just drop by to say hello, your involvement is one more step towards creating a community around the software.

It's not the most beautiful forum interface in the world, but it's free and it does what it needs to do. You can access it by clicking on the aptly named Forum button up there.

And since there's now an actual place to have discussions, I've disabled comments on everything else in here so that everything ends up in the forums instead.

Have fun!


Klystrack Tutorial 9 - Command Column

A big part of tracking is the command column. Every time you're trying to achieve something more than triggering a note, there's a fair chance you'll need to use the command column to do it. In fact, it's such an important part of tracking, that I should've written about it before. But there's so many commands to write about, the lazy part of me (read: all of me) didn't really want to sit down and do it. But in my last tutorial, fantastic moron that I am, I painted myself in a corner by promising I would write about commands next. Ugh. So here goes... sit down, get comfy, cause this one is going to be long. Also note that I will be attacking these commands in alphabetical order, so they are not going to be well categorized in terms of what they actually do. 

a note about duplicate commands
A fair number of commands in Klystrack can be applied in more than one way. For example changing the volume of an instrument can be done in a few place: the volumn column (no really...), the command column, the instrument's program, etc. There is no single best way to go about it and in most cases it doesn't matter where/how you apply a command as the result will be the same. Sometimes however, you'll come across a situation where you need/want to apply more than one command simultaneously. In those cases, the general rule of thumb is: if it can be done somewhere other than the command column, then do it there and keep the command column free. For example: you want to change the volume, apply legato, and slide the pitch up at the same time. The only way to do all that on the same row is to apply the volume command in the volume column, use the control bits to apply legato, and put your pitch up effect in the command column.

how are commands applied to a sound
Commands are applied once per ticks so they will act differently depending on the song's speed. If you compose a song at speed 6 with three metric tons of pitch bend commands (1xx/2xx) and then you decide to change the speed to 4, you will need to adjust your pitch bends if you want them to bend by the exact same amount. Some commands remain unaffected by this because it doesn't matter how many times they are applied. The volume (Cxx) for example. Whether you apply it once or three thousand times, it won't make a difference. It'll set the volume at whatever value you put and that's the end of it. 

Pitch Bend (1xx / 2xx)
Two of the most common and useful commands at your disposal. You'll often see them referred to as "portamento" but that is not technically correct, albeit close enough. The 1xx command will bend the pitch up by the value indicated by xx. The 2xx is basically the same thing, but bending the pitch down. It is generally recommended to avoid using the pitch bend command in order to reach a specific pitch. It's not that its impossible to achieve, it's just that it takes a fair bit of fiddling around with values to get the precise pitch you're looking for, and furthermore...there's another command that's made to do just that. Legal values range from 00 to FF. 

Portamento (3xx)
This is actually the real portamento, but remember that this is tracking we're talking about, where everything has the wrong name and doesn't make sense, so you'll often see this referred to as slide. This command will make the pitch slide between the previous note, and the new one, whether its sliding up or down in pitch. Let's say you have a C note playing, and you want to bend up to a G. You will need to use the 3xx command on your G note. This will make the C note gradually slide up to the G. How fast it will slide is indicated by the value in xx. You only need to put the command once for the effect to apply, but if you're looking to get creative, you can put more than one 3xx command back to back with different sliding speeds.

Vibrato (4xy)
This is a fairly straightforward command. For every row where you have a 4xy command, your sound will have vibrato applied to it. If you use 400, you will basically be using the instrument's vibrato settings. It's the same thing as setting the vibrato Control Bit on. But if you'd like to have more control over the vibrato, know that x is the speed of the vibrato, and y is the depth. Legal values are from 0 to F for each parameter.

Pulse Width Modification (7xx / 8xx / 9xx)
You will use this command in the instrument's Program way more than you'll use it directly in a pattern, but it's still available in both places. 7xx will move the Pulse's width down (away from a pure square wave). 8xx will move the Pulse's width up (towards a pure square wave) and 9xx will let you set it to any specific value indicated by xx.

Fade Volume (Axy)
This command, quite obviously, fades the volume of an instrument either up or down. The x parameter is the Fade In value, and the y parameter is the Fade Out value. Obviously they are not meant to be used simultaneously, although nothing is stopping you from doing something as pointless as fading a sound in and out by the same amount. Values range from 0 to F for both parameters.

Set Waveform (Bxx)
This nifty little command lets you change which oscillators are on or off in your instrument. Used creatively, this command can really bring an instrument to life, or create weird new textures for instruments. The xx parameter is a bitfield and can be a bit confusing to newcomers. B01 is the Noise oscillator, B02 is the Pulse oscillator, B04 is the Triangle oscillator and so on. If you want to have all three turned on, you would use B07 (01+02+04). I use this command all the time for my snare, letting me have a tonal transient, and then switch to a noise tail.

Set Volume (Cxx)
That's pretty self explanatory. This command will set the volume of your instrument to whatever value you indicate in XX. Legal values range from 00 to FF. This command acts differently whether your instrument has the Relative option turned on or off. If it's off, then this command will simply set the volume at whatever value you put in. Remember that the default volume for an instrument is 80, halfway between 00 and FF. So if you want to have 50% volume, you need to check what the instrument's volume is. If it's 80, then half would be 40. If you have the Relative option set to on, then the effective range of the command is 00 to 80, with 80 representing the "full volume" of the instrument. So for example 20 would always be a quarter of the volume of your instrument, no matter what its volume parameter is set to. Very useful to have your instrument set to Relative.

Loop Pattern (Dxx)
Pointless command, a vestigial organ from olden days gone by, tracking's very own coccyx. It was mostly used to create multiple songs inside the same music file, or to keep the pattern data to a minimum to keep the file size as tiny as possible. In an age where your damn phone has 64gb of storage, this command has lost all purpose, besides perhaps to show off how technical you can get. It was included in Klystrack for questions of backwards compatibility when importing old xm/mod files.

Fine Pitch Bend (E1x / E2x)
These two commands work exactly like 1xx and 2xx, but with even more precision. You will rarely need that much precision in a pitch bend effect, at least for musical purposes. But it can definitely come in handy for special situations where a super slow bend is called for.

Retrigger (E9x)
This command basically lets you put in more notes than what the pattern can normally handle. It will retrigger the note a number of times equal to the x value. Very useful on percussions to create flam effects.

Fine Volume Fade (EAx / EBx)
Unlike the Fine Pitch Bend, this one actually comes in handy very often. The normal volume fade command (Axy) has only 16 possible values in any direction. This makes A01 and A10 a bit coarse. Sometimes you want to fade your volume slower than what a series of A01 would give. Of course you could space out your A01 commands a bit, but this will result in a 'staircase' effect. For long smooth fades, EAx (fade out) and EBx (fade in) is the only way to go.

Note Cut (ECx)
This commands cuts the sounds after a number of ticks equal to the value indicated by x. For example if your song is set to speed 4, then you have 4 ticks per row. If you want a note to be half the length of a row, you would use EC2 on it.

Note Delay (EDx)
This one delays the start of your note by the number of ticks indicated by x. This basically let's you place note "between rows." If your song is at speed 6, then it has 6 ticks per row. If you want to place a note halfway between two rows, you'd use ED3 on it. This command is super useful to 'humanize' your song. For example, if you have a C chord spread over three channels (C on 1, E on 2, and G on 3) you could add ED1 to the E note, and ED2 to the G note to simulate the looseness of an actual human playing a chord on a keyboard. It can be used to simulate guitar strumming too. Play with it, you'll see what I mean.

Set Speed (Fxy)
Unless you have a tempo change in your song, you will rarely be using this command. It would make much more sense to set the song's speed settings to whatever you need. But, if you do need to use it, you need to understand that contrary to a LOT of trackers out there, Klystrack has TWO speed settings: one for even-numbered rows, and one for odd-numbered rows. Sounds weird? It really is. The intention was to give you the ability to have "built-in" shuffle without having to do it by hand, but it really only works if you are at speed 6/6 and you have your beats set every four rows. In just about 100% of all cases, ever, you won't be using different settings. The x parameter is for even rows, and the y parameter is for odd rows. Note that if you put a value on y and leave x to 0, it will use the y value for both....one more proof that nobody in their right mind wants to have tempo changes per row.

Set External Arpeggio Note (0xxx / 1xxx)
This was explained in details in my arp tutorial, so you can read all about it over there.

Semitone Pitch Bend (11xx / 12xx)
Think of the normal 1xx and 2xx pitch bend commands and you have the basic idea. These two commands however, will bend the pitch in increments of one semitone. Not the most used commands, but you will eventually come across a situation where you want to bend by a fixed number of semitones and using this will be a lot faster than fiddling with 1xx/2xx until you get the pitch right.

Panning (17xx / 18xx / 19xx)
All three of these commands are basically the exact same thing: they will let you place the sound somewhere in the stereo field. The 18xx command is the basic one, and it will let you pan the instruments from hard left (1800) to hard right (18FF) with the center being at 1880. This gives you 128 discreet positions on each side and it should cover all your panning needs. However if for some obscure reason your song needs even more precision than that, you can use the other two commands. The 17xx command will let you pan from center (1700) to hard left (17FF), while the 18xx command let's you do the same thing on the right. This effectively gives you 256 discreet positions. Why in hell would you ever need such precision is beyond me, but it's available.

Global Volume Fade (1Axy)
There is one universal truth in music: YOU NEVER FADE OUT AT THE END OF THE SONG UNLESS YOU'RE BEING IRONIC. With that said, if irony is beyond your grasp, or if you can't finish your damn songs properly, there's a command that lets you fade the entire song's volume. It works exactly like the Axy command.

Set FX Bus (1Bxx)
This is one of the great underrated and underused commands in Klystrack. This lets you send your instrument's ouput to one of the eight FX units of your choice. It's a super creative command, and when used properly it can result in great effects. For example you could use it on every other snare hit so that one out of two snare has echo, or chorus. You can use it to have different delays on different notes for the same instrument. It's pretty damn fun to play around with, so try it for yourself.

Channel Volume (1Cxx)
This one works pretty much like the standard Cxx volume command, except that it affects the entire channel instead of just one note. I've yet to see a situation where this is useful, but it's there. Anything you can do with this command, you can probably do better manually. But for the lazy composers out there, there ya go buddy.

Global Volume (1Dxx)
Another command that works like Cxx, but this time it affects the whole song's volume. This one is actually way more useful than 1Cxx, but still very situational.

Set Sample Rate (1Exx)
If your instrument is sent to a FX unit with the bit crusher effect turned on, then this command will let you change the sample rate of the crusher on the fly. This opens up a ton of possible textures for your sound and really needs to be explored and tinkered with to be understood well. Note that if any other instrument is played through the same FX unit, their sound will also be affected by the new sample rate.

Set Rate (1Fxx)
This is an extension to the Speed (Fxy) command. It will let you set the Rate parameter to whatever floats your boat. Very useful for precise tempo changes in the middle of a song.

Filter (21xx / 22xx / 29xx / 2Axx / 2Bxx / 2Cxx)
This set of command lets you change an instrument's filter parameters on the go. The 21xx and 22xx commands will sweep the filter cutoff up or down accordingly, by the value indicated in xx. If you need to set your cutoff at a precise number, you can use 29xx. The 2Axx command lets you change the filter's resonance setting while the 2Bxx one lets you change the filter type. The most confusing of all filter commands is 2Cxx, the so called combined filter. From value 00 to 7F, it's a low pass filter, with 00 being completely closed, and 7F being completely open. Starting at 80, it's a high pass filter with 80 being completely open, and FF being completely closed. Having both of these on the same command is actually pretty sweet and lets you do stuff that would otherwise require a fair bit of manual work.

Skip Pattern (2Dxx)
If you've ever worked on music that has measures of different length, then you know how trackers are shit at handling this and not make a complete visual mess of it. This basically let's you end a pattern where you want, and move on to the next one, without suddenly making your sequence unreadable. Quite useful.

Tune Buzz (31xx / 32xx / 39xx / 3Axx / 3Fxx)
If your instrument uses the Buzz option, then these commands will let you change the parameters. The first one (31xx) will let you set the Detune into the positive numbers, while the second one (32xx) lets you tune it down into the negatives. The third command (39xx) lets you set the Fine Tune parameter, while the fourth one (3Axx) lets you set the Semitone value. The last command (3Fxx) changes the shape of the Buzz.

FM Parameters (33xx / 34xx / 35xx)
If your instrument uses FM, this set of command will let you change the parameters. You can change the Modulation with 33xx, the Feedback with 34xx, and the Multiplier with 35xx. These commands are hard to describe in writing and really need to be tinkered with in order to understand how they affect the sound. Go on...tinker.

Set Wavetable Item (3Bxx)
Another great command that goes unused and generally misunderstood. When you are using the wavetable in an instrument, the default is to refer to a specific wavetable item and stick with it. If you have Wave set to 0, then the instrument will use whatever is at position 0 in the wavetable as an oscillator. With this command however, you can change which wavetable item you are playing. This is an extremely creative command, and once again, you need to play around with it to fully grasp how cool it can be.

Absolute Arpeggio Note (4xxx)
This command was once nominated for the Most Pointless Shit In The Universe award. Unfortunately it came in third place, right after Ugg boots and Nicholas Cage. Basically what it does it change the pitch of your sound to whatever absolute note value you put in xxx. Sounds weird or confusing? This is something that people do when you have a limited number of channel and you need to mix instruments together. A kick that morphs into a bass for example. You input your kick, let's say at note C4. Then when the drum part of the instrument is over and its only the tonal bass sound, you can re-pitch it to something more musical. There are better and simpler ways to pull that off with other commands like 11xx or 12xx, or by simply adding more channels.

Wavetable Offset (5xxx)
This lets you offset the start point of a sample. Most commonly used on drum loops to trigger them from specific points in the loop. Back in the old days, this is how we did filter sweeps in a tracker that had no filter option. You'd record a long ass single-note filter sweep, and you'd move the offset to simulate moving the cutoff point.

Set Cutoff Fine (6xxx)
I can't really see  many situation where you'll need that level of precision on the cutoff, but if you ever need 4096 discreet increments instead of 256, this is what you'll be using.

Trigger Release (7Cxx)
This takes your unreleased album and puts it up on Bandcamp....I think. Or maybe it can be used to trigger the Release part of an instrument's envelope. Who knows? It's pretty much the same thing as putting a Note Off command directly in the channel, except that this time you can decide to trigger the release on a specific tick. A Note Off will always trigger the envelope on the first tick, but with this command you can offet that a little. The slower your song, the more useful the command. At speeds of 2 or 3, it becomes such a small difference that you're probably better off with the Note Off command just for clarity's sake when looking at your patterns.

Restart Instrument Program (7D00)
Another very fun and creative command that is rarely used. This command restarts the instrument's Program from the first row, without having to retrigger the instrument itself.

program specific commands
These commands can only be used inside an instrument's Program. Try as you might, you simply cannot input these commands in a pattern.

Goto (FFxx)
Lets you jump directly to a specific row inside the program. For example FF00 would send you back to the first row of the program. This is basically how you create arpeggios, tremolos, or any other kind of 'looping' effect in a instrument's program.

Loop (FD00, FExx)
The first command sets the start point of your loop, while the second one acts as the end point as well as deciding how many times to run the loop. For example, a FE10 command would go back to the previous FD00 ten times before finally moving on to the rest of the program. You can have as many of these loops as you want in a program, provided there's still space to put it. You can also nest loops inside each other. Are you familiar with coding? Then this should be easy for you to manage. If you're not used to nested loops, know that a FExx command will start looking "backwards" into the program until it finds a FD00 command.

Program End (FFFF)
By default, programs will loop. This command makes it possible to stop that. Useful when you have a program that only needs to run once.

....damn that took a long time to write. I hope it's useful to at least a few people.


now with 100% more Japanese!

Did you ever come to this blog thinking "I really wish I spoke english because none of this makes sense to me"?  (let's ignore the fact you couldn't read this question either if it was the case) Well now you can finally read it all....assuming you speak Japanese.

Takashi Kawano has taken upon himself to translate this blog (all of it! no joke!) for our Japanese brothers and sisters! How cool is that?

Give it a look-see here!


klystrack tutorial - melodies and textures

Alright, this time I'm going to write something that's actually fun to write about. Instead of the super technical bullshit of describing precise settings and whatnot, I'm just going to ramble on for a while about various tips, tricks and techniques I've picked up over the years.

making subtle from obvious
As contradictory as it may first appear, making chiptunes in a tracker is all about being subtle. Even if the aesthetics of chip music make it sound "raw" and "simple", the really great songs out there are all great because of the detail work, the fluff that often goes unnoticed until it's removed from the music. Subtlety becomes that much more important when your basic tools and elements are clunky oldschool digital crap. When your palette is so limited, subtle differences become more important. If you have 500 oscillator shapes to choose from, you're going to put a 50/50 Pulse in the same category as a 25/75 Pulse. But when your selection of shapes is cut down to less than 10, then a 50/50 Pulse is one thing, and a 25/75 is something entirely different. Hell, they're two different instruments. They are as different from each other as a guitar is from a piano, for your needs.

In Klystrack, the Pulse wave as 128 discreet increments between 0/100 and 50/50. That means 127 different possible textures that are all different. Sure a Pulse of 7FF is really really similar to a Pulse of 7EF, but what I mean is... there's 128 fucking possibilities, not 3. So even though a Pulse wave is something very very simple, you can get a LOT of mileage out of it if you train your ear for it.

more than the sum of the parts
Something you learn the hard way, over many years, at least in my case, I'd assume, is that the overuse, and general abuse, of commas in a sentence, will piss off most readers. One other thing you learn over many a long year spent making music is that it doesn't fucking matter if your bass/guitar/whatever riff sounds like the universe is exploding in an orgasmic firework of tits and beer. If it turns to mush when you add in the other instruments, or if its punchy character gets lost in the mix, all your hard work to get that one specific instrument sound like the bomb will have been in vain. 

Have you ever listened to an acapella? Or had the chance to listen to a professionally recorded song track by track? If so, then you know how ugly everything sounds when any one track is soloed. One classic example is the guitar solo in Pink Floyd's Time, off of DSotM. This is one of the cleanest ever prod ever on any album ever, ever. But if you watch the making-of documentary, you'll get a part where they solo that solo (hah) and you hear how fucking dirty and trashy the guitar sound is. I mean it's all kinds of distorted with handling noise and fret buzz and families of rats eating at the pickups while the guitar is repeatedly drilled through, underwater, on fire, in New Jersey. Sounds like a retarded three year old (with an extreme talent for melody, and the capacity to lift a heavy mid-60s stratocaster) was playing. Yet when the rest of the song is put back on, the whole thing just kicks your balls in.

Many times you'll need something like...I don't know, strings. You want some string chords, or melody or whatever. You fire up Klystrack and realize that after two weeks of hard work without any sleep, your "strings" still sound like a motherfucking beep in a motherfucking synth (starring Samuel L. Chipson). Well you know what? It will always sound like a beep. Deal with it.

What important is not that this one particular instrument sounds so much like that thing you want it to sound like. You know why? Because, at least as far as I know, people don't listen to your project's original tracks in a studio, they listen to the final mix, on their stupid computer. To them it doesn't matter how much your sound sounds like the sound you want your sound to sound. They want a song. Not data.

As for you, you should not be trying to communicate through sound how clever an instrument is made unless the purpose of your music is actually about technical wizardry (hey... it's valid too). But for more musical purposes, if your idea was to have strings play a particular part, then all you need to do is convey the idea of strings

Well how the jolly fuckpoop do you do that, I hear none of you ask? Easy: as long as it kinda sounds like strings when the rest of the song is playing, you've got strings. You can fiddle around with the subtleties (see previous) of the settings until you get a better sounding instrument, but once the basic set up of the instrument is made, the bulk of the editing should be done while other sounds are playing. It doesn't need to be constant, you can edit, then play, then edit, then play. But you need to check how it fucking sounds with the rest. I personally like to edit the basics of a sound, then make a simple pattern that fits well with the song I'm composing and then loop that pattern over and over. I'll tell solo the instrument I'm editing and start choosing other channels to bring into the mix as I edit my sound. For example:

1) Make basic instrument, create pattern, loop pattern.

2) I'll unmute the drums first. Drums are usually the loud points in a song, so I'll use them to set the general coarse volume of my instrument. If it's glaringly too soft or loud, that's where I fix it.

3) Unmute the bass next. Again I check for volume. I adjust my instrument's volume until it sits well with the bass.

4) Start editing the instrument until the texture sounds kickass with the rest playing.

5) Unmute another channel and go back to number 4 until everything is unmuted.

The same goes for FX editing. Test it against your track, every time! Sure as balls, every single solo instrument in the world sounds better with chorus and reverb and a bit of compression, and maybe a little tape sat here, some quiet slapback, eq the fret buzz out, noise print the shit out of it and use a reducer, aaaaaaaaaaaaaaaaaaaaaand there we are, sounds like a ton of bricks. Treat every track this way and when they're all playing together, you get a bombastic mess of shit that sounds too blown up. Some shit needs to be in mono. Some shit needs to NOT have a five minute delay with infinite feedback and gnomes. So when you add effects to your track, just like when you add instruments to your song, repeatedly check them with the track playing, and do the bulk of your editing there. 

Treat your main melody like a singer
No that doesn't mean to wait until the show is over and then try to have sex with your main melody backstage. It means to put some life into your shit. And I don't mean growing mushrooms on a turd. What was I talking about? 

A good singer doesn't just hit the notes as they are written. Same goes for instruments where the performance is more than just speed and volume. The guitar is similar to a singer in that notes can be bent willy nilly. Good singers, and good guitar players, put feeling into their craft. And as dumb as it sounds, in pure technical empirical data, feeling in music pretty much translates directly to going off key / out of tune. 

So your main melody is, let's say, C E F F G. Pretty boring melody and I'm not convinced you should continue this song, but who am I to judge your art? You want to put more life into it. Some pzaaz, or hutzpah, or other vaguely jewish-sounding words without proper dictionary entries. Some tricks:

1) Bend down at the end of sustained notes. It's that simple. Once in a while you'll have a note in your melody where this little trick will make the notes pop out a little more. At the very end of a note, about 1 to 4 rows depending on your speed, you can add a little 2XX effect to pitch the sound down. You can do subtle pitch bends (210 or 220) to add a touch of guitar-like playing. You can add more pronounced portamentos up to 2FF to make more extreme bends. The subtle stuff works best to conserve the melodic aspect of the song. More extreme version often add a distinct chiptune feel. Try different stuff out. You previous melody could bend down between the two F notes, breaking the repetitiveness of two consecutive notes.

2) Bend up to your note. Directly inspired by vocals and guitars, bending UP to a note is usually a very fast bend from a note that's not too far down. In most cases you'll find that one to three notes down the scale will be just perfect for the effect you're shooting for, or the next note down in a chord. This is done by inputing two notes back to back, and making the second one a legato note with a slide effect. Let's say the last note of your melody, the G, is on row 16, and the key of your song is C. You can slide up from C, D, E or F, up to G and it should sound pretty good. Any more distance than that and the portamento will take longer and might not reach the note in time. Could be cool for effects though! Let's say you choose D, because you want the D. On row 16, instead of having G, you put D. Your G now goes on row 17. And on that G note, you add the L ans S effect in the effect column by tapping the "1" key when the cursor is on the first two digits of the effect column. There ya go.

3) If you listen closely to a vocal performance, or guitar solo, you'll notice that a LOT of the notes in the melody have vibrato added to them. Sometimes subtle, sometimes not so subtle, vibrato adds a little life to otherwise stale and mechanical melodies. There are two basic ways to do vibrato: you either use the vibrato function built into the instrument itself, or you do it all manually in the Command column. If you do it directly from the instrument itself, you'll have a little bit less control over how the vibrato is acting, but it will also be much simpler to use later on. If you do everything manually, you'll get perfect control over everything, but it takes about 800 years to edit it all by hand. The best solution in my opinion is to switch between one and the other according to what the song needs at any given time. I usually reserve the instrument's vibrato for subtle / musical effects, and I keep the manual work for when I need a more extreme or complex vibrato.

4) Let the fucking silence speak a bit. Too many newcomers to music fall into the habit of layering 600 instruments together while they all play 16 notes per beat. This is especially true in electronic music where the "emptiness" between notes can be seen on your screen. Seeing these holes, the amateur musician almost invariably thinks "dammit! must fill everything!" and then ruins a perfectly serviceable song. Don't be afraid to let the song breathe a bit. When a particular part of your song isn't clicking right, sometimes fixing it isn't about adding new stuff, but removing the extra bullshit. In music, less is almost always more. Do you really NEED all those notes? I mean sure you can fit them in, keep them in key, and make something that sounds okay. But was it necessary to convey the idea? Can you achieve the same effect with less? Yes? Then do so.

5) And if you must speak, it's okay to repeat yourself. A lot of people just starting out in music develop the reflex to try and avoid repeating a note twice or more times in a row. The thought process behind it is usually that you don't want the audience to think you couldn't come up with an actual real melody. But that's bullshit. In fact, using the same note over and over again creates tension and anticipation for the next change and can be used to great effect. So y'know... don't be afraid to have C-C-C-C-C-D#-F as a melody if that's what kicks the song into second gear.

Well that's it. Those were just random thoughts about music and tracking in general. Next time, we'll take a long look at all the stuff you can use in the Command column.


mid-winter's spring cleaning

Well it had to happen at some point. The blog is changing. I've decided to make myself a more professional looking website to present my music and hunt for freelance work. Meanwhile, I didn't want to just delete this blog and the tutorials on it because they are still quite popular, for some weird reason. 

I've wanted to make a Klystrack resource site for a while now so I decided I would just turn this blog into precisely that. I've removed all the non-Klystrack posts and I will be re-editing the tutorials to better reflect the changes in recent versions. 

Along with that, I have setup a file section where I will be hosting instrument libraries, keymaps and example songs for people to download and abuse of. I don't have much hosting on this here blog, but I should be able to squeeze in a few tracking files.

So bear with me for a bit while I noodle about the site and change stuff.


klystrack tutorial - drums: snares

Today we're going to take a quick look at snares.

If you were to take the three most basic elements of a drum kit, the kick, snare, and hi-hat, you would quickly notice that each of them is playing in a different register. The kick hits in the low-end and the hi-hat is doing its funky thing up there in the high frequencies. While all of this is happening, the snare is played in the mid-range. The mid-range is where most of the music is happening, so snares usually need to be quite loud in order to come through the mix.

Snares are generally a short burst of mid-range rattle. On a traditional kit, this rattle is achieved by having beads or chains, called snares, stretched across the skin of a fairly high-pitched drum. The tighter the skin and chains, the shorter and snappier the snare gets. Loose chains result in a "washy" snare. Electronic snares have traditionally used some kind of noise oscillator to simulate this type of sound.

Most snare sounds are made up of two components, a tonal element, and a noise element. It's not absolutely necessary to have both but it helps a lot. A snare made purely out of noise tends to be a bit thin, and a snare made up of only a tonal element is kind of like a really high pitched tom and only truly works in a fairly minimal and empty mix.

There is no right or wrong here, and you can get almost endlessly creative with your snare sounds as long as you respect two simple concepts. First, it has to be in the mid-range. Low-mid, pure mid, high-mid...that's a matter of choice and should be just fine as long as it fits your mix. Second, the attack should always be short. It should snap into existence and start to fade right away. You can fade a snare in for effect, but that's not to mark the beats, that's just for added flavour.

So then. Let's look at some snares. Oh wait. I realize that in the last tutorials I wasn't as funny as usual, so...this guy walks into a store and asks if they have helicopter flavoured chips. The clerk says no sorry, we only have plain.

Alright, with that out of the way...snares.

the NES snare
Due to the fairly limited number of channels on the NES and the fact that each channel is locked to a specific waveform, synthesized snares on this machine tend to be made with only noise. Very rarely will a composer "waste" space on the pulse or triangle channels to add a tonal element to the snare. This probably explain why most people tend to use the PCM channel to play sampled snares instead. But back in the days, space was at a premium on cartridges and not many developers wasted that storage on samples until very late in the console's life. Pure noise snares tend to be really thin, and the only thing truly separating them from hi-hats is the length. For this reason, a lot of percussion tracks in NES soundtracks were made of only a few quick noise hits (often, only one) that would be played at varying pitches.

From a default instrument, simply lock the pitch anywhere from C5 and up (B6 in the example) and enable only the noise oscillator. Adjust the decay to whatever fits your need (08 in the example) and there you have it, the most basic of all synthesized snare sounds. 

the C64 snare
I remember so many games and demos from the C64 era that had these amazingly aggressive and punchy snares. The best way to describe them is that they initially play the tonal element for a very short time, then switch to pure noise for the fading part. To achieve this, we'll have to make some magic happen the in program editor.

First lock your pitch at G3 and turn on your pulse oscillator and set it to pure square (7FF). Now turn on the Drum option and adjust your envelope to an ATK of 00 and DEC of about 05. And last setting to change is the program's P.PRD speed which should be set to 01. The rest of the sound will all be made in the program editor.

Since the Drum setting is on and we're using a square wave, the first thing that will happen when we trigger a note is a short noise burst (pitched at G3). This happens at the same time as our square wave starts playing. It will start on G3, then pitch down for two ticks at a speed of FF. This is what the first two rows (02FF) of the program do.

On the third tick, we want two things to happen simultaneously. We want to change the pitch up so that our noise element is clear and thin. We do that by entering a high note as if we were programming an arp. I chose 0034 here since it represents B7, the highest possible note. The next thing we want to do is cut the pulse wave off and replace it with the noise oscillator instead. This is achieved by using the Set Waveform command 0B01. This command is a binary command, and the numbers are expressed in hexadecimal. Since I don't feel like explaining it the right way, I'll explain it the dumb way: 0B00 is no oscillator, 0B01 is noise, 0B02 is pulse, 0B04 is triangle and so on with numbers 0B08, 0B10, and 0B20 all representing a specific oscillator. To activate more than one at the same time, you add the numbers. So to play the noise (01) and pulse (02) at the same time you would use the command 0B03. For saw (08) and wave (20) at the same time, the command would be 0B28. The status bar at the bottom will show you which waveform you are turning on so it should be easy to figure it out. So by entering 0B01 on the third row, we're setting the active waveforms to noise only, effectively cutting the pulse off at the same time.

Now that we have these two commands (0034 and 0B01) entered, we select the first one and press space to link them both together so they play on the same tick. The last command we input is FFFF which means the program will simply stop running once it reaches this point. And that's about all there is to making a C64 type snare.

the handclap
While a clap is not really a snare per se, it usually serves the same purpose in a beat, and it's synthesized using pretty much the same techniques. Even if there is no drum skin being hit in an actual handclap, there is still a tonal element to it. You can experiment yourself by changing the 'cup shape' of your hands while clapping. The deeper the cup, the lower the clap sound. The noise element of a clap is usually made by the speed at which the hands are clapped and the room reverberation. So how do we simulate this with something as basic as Klystrack?

Start by locking your pitch at G2. Turn on both the Pulse (7FF) and Noise oscillators, and set your envelope to ATK 00 and DEC 04. Finally, adjust the P.PRD to 01.

In the program editor, skip the first row. This means that for the first tick both the Pulse and Noise will play unmodified at a pitch of G2. The two rows do pretty much the same thing as in the previous example. They will, on the same tick, change the pitch up, and let only the Noise oscillator play. This time I chose a lower pitch (0020) because claps are more meaty so we want to keep the noise's pitch lower than for a snare. Don't forget to link those two rows together, and end your program with an FFFF command.

Now if you play that you'll notice it's still quite similar to a snare. That's where we use the filter to finalize the sound into a clap. Turn on the filter and set it to HP, with a CUT of 70 and a RES of 03. This will cut a part of the low frequencies in the overall sound, and will introduce a peak in the low-mids because of the high resonance setting. And voila, a pretty damn convincing clap sound.

a few extra tips
using the filter
As you have seen with the clap sound, using the filter than totally change the nature of a sound. Using a high resonance HP filter with a low cutoff point will make your snare less bassy, and will add a bit more mid-range crunch to it. This can be used on almost any snare sound to make it pierce better in a thick mix, or if you want to add more separation between a low snare and a high bassdrum and ensure they don't step on each other in the mix.

Another thing I like to do is add subtle filter sweeping to snare sounds. I will usually use an HP filter and sweep it up a little (command 21xx) during the "fade" part of a snare. I use this to thin out my snare and make it seem a little shorter in the mix while retaining the highest frequencies.

two-stage envelopes
While a lot of percussion sounds can be done quite well with a simple attack and decay envelope, you can get much more dynamic results by introducing the sustain phase of the envelope to percussions. The problem however is that normally to use a sustain, you have to also use the release and nobody in their right mind wants to have to trigger the release manually in the pattern data for every single drum sound. It's just a crazy fucking amount of work. You can work around it in two ways.

The most obvious is to use the Trigger Release command in the program editor. Simply enter command FC00 where you want the sound to move from sustain to release. While this is good and it works totally fine, I prefer to fade my sustain manually using 0Axx commands instead.

The big advantage of using two stages in your envelopes is that your decay will take the sound from full volume to the sustain value. By using a sustain value that is lower than full volume, you can use the decay part of the envelope to add a little short punch at the beginning of your sound, making it pierce a little more clearly in a mix. You will lose some overall volume on your instrument, but that can be compensated by moving its general volume above 80.

This can be used to add a sort of fake compression to your sound too. The decay part will represent the sound before the compressor kicks in, and the sustain part will represent the compressed sound. It can also be used for faking gated reverb effects, or add a reverse effect at the end of your snares. Experiment, it's a lot of fun and it adds a lot of personality to your instruments. Look at the example to see how it's done. Notice the sustain volume is set to 08, which is half the full volume.

end transmission
There we have it. A quick and dirty guide to basic snare sounds, hope you found it informative. And if not, then you can just eat a bag of dicks. Next tutorials, the hi-hats. Suggestions, comments and death threats in the little box thing at the bottom.


klystrack tutorial - drums: bassdrums

I have been thinking of writing instrument tutorials for a bit now. It was also suggested by my good buddy and mega rockstar pixel pusher god-tier artist ilkke to write some drum sound tutorials. I wasn't too sure of how to approach this at first. For a while I considered just creating half a shit ton of instruments and releasing them as a pack for people to use, but then I thought it would kind of defeat the purpose of what I'm trying to do here, which is to teach people how to do things themselves.

After trying a few times to write something intelligible, I quickly realized that blogging is very much a one-way monologue type thing and I have no idea where you guys are starting from. Have you programmed instruments before? Have you ever used a synth? Do you have knowledge of basic synthesis? Do you look in the tissue after you blow your nose? Where the fuck do I start? 

So eventually I decided on this format you're about to read. I will discuss what makes up a particular type of sound, then give a few variations on each sound and explain how I am programming it. These should serve as example for you to base your own instruments from and hopefully they help you understand how a particular sound is achieved. Most of the options I use will not be explained as they've all been discussed in the first instrument tutorial. 

I am going to try to be as clear and basic as I can be but if there are words that are unclear to you, or concepts that escape you, you are responsible for educating yourselves on the matter. Google that shit, bro. Deal? Good. Then we can start.

a few quick tips
1) Never edit instruments using headphones. There are three reasons for this. Since headphones are very close to your ears and give you complete stereo separation, you are more than likely to undermix three things when working with them: bass, chorus, echo. It is a good idea to revisit a song's mix in headphones once it's been mixed properly for speakers, but it's not a good place to start to edit instruments.

2) Name your instruments properly. It's a step a lot of people don't bother with when they are just doodling quick sketches for songs, but when that sketch hits the three minutes mark and you have 25 instruments in the bank, you don't want to have them named stupid shit like "burger ninja condom". It only takes you a few second to give it a proper name like "Short PWM Lead + Chorus" and it will save you lots of time later on.

3) Less is more. You should always try to avoid giving an instrument a volume above 80. These instruments will pile up in a mix and can quickly result in distortion. Furthermore, if an instrument is already set to max (FF) volume and you need to make it even louder...there's no more place for it. So whenever possible, consider bringing the rest of the instruments down instead of boosting one too high.

4) Since drum tracks are made up of multiple sounds, it's useful to have them in the first few instrument slots so you can quickly switch between each with the numpad when editing patterns. It's less important with bass/lead instruments because you usually just select them once, then edit your pattern without switching instrument again. I personally always use the same format where my instrument slots, starting from 00 are: bassdrum, snare, closed hat, open hat, tom, etc etc. 

5) Always create instruments from scratch. Yeah ok... that one is a bit subjective but still. Since chiptunes don't have such a huge array of sound textures available to begin with, they already all sound quite similar to one another. Avoid re-using the same old bassdrum in every song or you will make this problem even worse. Plus, this forces you to get to know your synth engine better, be able to get more juice out of a few simple oscillators and eventually develop your own sound. 

the bassdrum
Definitely one of the most important element of a good rhythm track is the bassdrum, or kick as some people like to call them. While there are many different flavours of bassdrums, they're all based around a few key concepts. The first and most of obvious, given the name, is that they play in the low register. There is a sweet spot you are trying to get to where the kick sits comfortably on the low end of your track, not too high, not too low. Go too high and it doesn't accentuate the beats, go too low and it muddies up the mix and gets lost in the rumble.

The second element is that they almost invariably always start with a short, high pitched snap. On a real drum kit, this is the moment where the beater hits the skin. This snap is also a valuable tool to make your bassdrum pierce clearly through the mix while not eating too much outside of its register. There are many ways to achieve this. It can be a pitch effect, or a short burst of white noise for example. There are no rules to how you achieve that snap, but it should be short. If it's too long you'll lose the punch effect you're looking for.

The third and final element almost all bassdrums share is that once the snap is over, they settle into a descending (in pitch) tone that is more often than not outside of the usable note range. Unless you're going for a very specific type of bassdrum that ends in a sustained, pitchable note, you will want it to be atonal so as not to create weird melodic dissonance in your song. 

Now let's take a look at a few types of kicks.

the C64 kick
I call this one the C64 kick because...well because. It's a very simple kick that sounds like a lot like what you'd find in an old C64 game soundtrack. I am using a full square wave (7FF) because it has a lot of punch, and stays very bright all the way through. Like all my kicks, I lock the pitch so what every note triggers the exact same kick to make sure that entering notes of a different pitch in the patterns won't result in the kick getting pitched as well. The Drum setting is used because that gives it a short burst of white noise at the start. I use and envelope with an ATK of 00 to make sure it doesn't fade in even by the slightest bit, and a Decay of 05 to keep short and sweet. The only other thing involved here is in the Program where I use a portamento down effect (02FF) followed by a GoTo (FF00) command that loops the program back to the first row, making it pitch down by FF on every tick. Quick, dirty and simple. 

the fake 909
Okay so this doesn't nearly have the character and punch of a real 909, but it's still a fairly acceptable clone. For this one, I am again locking the pitch to C4 but this time I turn off the Drum setting because I don't want the white noise snap. I use a triangle wave instead of the pulse since it has a much more subdued sound. The envelope still has an ATK of 00 to make sure it snaps instead of fading in, and this time I use a slightly longer Decay of 07. The Program is very similar to the previous kick but since I wanted it to pitch down faster that a single 02FF command would, I used to 02AF commands and linked them together (press space) to play at the same time.

the fake 808
The 808 is another classic kick and this one requires that we look outside the oscillators for a sound source. Go into the wave editor, select wave 00 and then press the Generate A button at the bottom. Now we have a basic sine wave to work with. Back in the instrument editor, simply turn on Wave 00 and turn off every other oscillator. You will want to leave the envelope's ATK to 00 to get that nice little snap at the start, and Decay is really up to you. The 808 was capable of making short kicks, but it is mostly well known for it's long deep kicks, so in this example I am using a Decay of 0B. Lock the pitch of the instrument to something around G4. Now in the program editor, set the P.PRD setting to 01 because we want to have the program play as fast as possible. Here I am using four consecutive 02FF commands linked together, which means the pitch will go down by FF four times in a single tick. Then I used a 0210 portamento command on row 04 and then use a GoTo command to loop back to that row. What this will do is play the first four rows in a single tick for a quick pitch down effect, then loop row 04 for a slower pitch effect. 

end transmission
So there you have it, basic bassdrum sounds. There are tons of ways you can improve/expand upon these concepts of course, but it's up to you to fuck around with the options and come up with your own sounds. In the next few tutorials I'll be discussing other sounds like snares and hihats, more advanced envelopes done manually in the Program, and give you a few techniques on making convincing drum tracks. Stay tuned.


klystrack tutorial - arpeggios

If there is one sound that defines what chip music is all about more than any other, it's the arpeggio. An arpeggio is simply a group of notes that are played one after the other. Now I know that sounds awfully generic a description, and that it could apply to any series of note, but there are a few things that make an arpeggio different from, let's say, a solo. 

what's an arpeggio?
The first defining element of an arpeggio (here after simply called arp because I'm lazy) is that it is a broken down chord which has its notes played one after the other. There are many ways to play these notes. You can play them in order from low to high, high to low, or mix those two modes and go up then down, or down then up. You can even have your own personalized order for those notes to play in. Since any three notes will form at least part of a chord, there really are almost no limitations to what notes you can use to form an arp.

The second defining element of an arp is that is it usually repeated more than once in order to establish the chord it is based on. This is not a requirement per se, but it is extremely common. Take for example that German dude's moonlight-related sonata-type diddy. What you hear at the beginning is an arp. It is a deconstructed Dm (D minor) chord with the notes being played repeatedly from lowest to highest.

An arp can also be spread across octaves by chaining the same sequence of notes at a higher or lower octave, creating longer arps with more movement to them. There are endless ways to be creative with arps since there are really not many rules holding the concept together. You could for example have a Dm arp that plays up the three notes in the middle octave once, then repeats the same notes in an up/down pattern an octave higher after that. 

The important thing to remember is that an arp is used to establish a chord without playing all the notes together at the same time. Other than that, you're pretty much free to go crazy with it. Some of the more classically trained individuals out there might argue, but fuck them.

the chip arp
The birthplace of the chiptune arpeggio is the Commodore 64 and its "invention" is usually credited to mega monster chip god Martin Galway with the score to Kong Strikes Back!. Since that old piece of crap (the C64, not Martin) had only three notes of polyphony, people found creative ways to cram more music in those measly three channels. 

On a piano, when you hold the sustain pedal and finger an arp, each new note rings with the others thus easily establishing the chord. On the C64 however, each new note would cut off the previous one. It would still establish the chord, but in a much weaker way when these notes were played slowly. 

The solution was speed. By playing arps incredibly fast, it gave the impression of all three notes being played simultaneously, but they still used up only one channel instead of three. It also had this very electronic texture to it, texture we all know and love now as one of the main chip music element. 

Another important element of chip arps is that it is also often used to establish intervals rather than chords by using less than three notes. More on that later.

how it works
Most chip music software use a system of 'ticks' to control its timing. A single tick being the smallest possible time element. A single row of a pattern is usually three to six ticks long depending on your project settings. Some software use a different timing system but the effect is virtually the same. 

When playing an chip arp, each note of the chord will be played for a set number of ticks. Since there are many of them per pattern row, it then becomes possible to play most, or all of a chord's arpeggiated notes on a single row. Typical settings for chip arps use 1 to 3 ticks per note. You can of course use more, but the more ticks per note, the slower the arp is. If played too slow, you start losing the distinctive chiptune sound and you enter the more traditional, classical arpeggio. In Klystrack, the speed of your arps is determined by the P. PRD setting in the instrument's program, which is essentially the number of ticks per note. 

There are two basic methods for creating arps for chip music. The first one is to include the arp's notes directly in the instrument, which is called a static arp. The second method, dynamic arps, decides which notes are part of the arp on the fly with pattern effects. Both methods have their pros and cons.

how to create static arps
Basic saw wave settings.
Static arps are created by entering the arp data directly into an instrument. Their main advantages is that they can easily be used on any note thus transposing the entire chord to a new root, as well as not having to enter any pattern commands when using them, thus freeing up the pattern command column for something else like filter sweeps, portamentos and whatnot.

The main disadvantage is that for complex chord progressions with inverted chords, you tend to eat up a lot of instrument space quickly since you need an entire new instrument to make a different chord, or variation/inversion of a chord.

In the following example we'll create arps for the two most common chords in music, the major and the minor chords. Let's start with the major.

Start by selecting an empty instrument and going in the editor. Give the instrument a name, like "Major Arp" or "Monkey Ninja". You can select whatever you want in terms of oscillators and envelopes, but for the purpose of this example we will use a plain saw wave with everything else left to default settings.

A major chord, broken down.
The next step is to enter the actual chord recipe in the program editor. Since we're making a major chord arp first, we need to know exactly what are the notes for that chord. Fortunately, you're sitting in front of the internet right now so you shouldn't have too much trouble finding that information. A quick Google search will tell you that the intervals, in semi tones, for a major chord is 0 (the root), 4 (the third) and 7 (the fifth).

Now click the program editor and input these numbers on the last digit of each row. You will see that Klystrack will tell you what actual note this interval represents based on your instrument's base note. Since the default is C, you will get C, E and G in the program.

The last step is to make everything loop neatly. For that we will used the Goto command. This command has two components, the command itself, and the destination. For example FF00 will make the program jump back to row 00, and FF09 would make the program jump to row 09. Since we want this arp to repeat from the beginning each time, we will use FF00. This will make the program play the first three rows sequentially, then loop back to row 00. 

Playing a C note with this instrument will then give you a C major arp. Since chord triads always use the same intervals no matter where they start from, if you play a D note with this instrument you will get a D  major chord and so on. So from this point on, whenever you need a particular major chord in your song, you can use that instrument and just enter the root note of the chord you want to play and voila.

Same concept, but for a minor chord.
Now select a new instrument, and repeat the process for a minor chord. The only difference is that the minor chord uses a flattened (one semitone down) third. So if the major was 0-4-7, then the minor is simply 0-3-7.  Go ahead and input this in the program editor and you will get a minor arp. As with the previous instrument, whenever you need a minor chord, all you need to do is select your "Minor Arp" instrument and enter the root note of the chord you're looking for in the pattern. 

And there you have it. With these two instruments you should be able to easily recreate just about 90% of all the music in the last 50 years...really.

Now for your homework, go on the intertubes to find more triad recipes like these and just keep repeating the same basic process. There are quite a few other triads available, like augmented and diminished chords.

how to create dynamic arps
Dynamic arps have no fixed notes. The first note in the arp will be whatever note you enter in the pattern, and the other two are assigned on the fly during playback with pattern commands. The two main advantage of dynamic arps is that you only need to use up one instrument to create many types of chords, and they make it really easy to invert triads for better voicing.

The biggest disadvantage is that there is only two dynamic notes you can assign so in most cases you're limited to triads. You can go beyond triads but you will need to create new instruments for each variation. 

Notice the EXT notes.
Let's start from the same point as we did for static arps and create a new instrument from a basic saw wave, leaving everything else on default settings. Now instead of entering the specific intervals for each note of the chord, we will change the last two notes of the triad to floating notes that we can then change directly from the patterns. This is done with the 00F0 and 00F1 commands. Start by entering 0000 on the first row, which will be the note on which the arp starts from, and then enter 00F0 and 00F1 on the next two rows. You will notice that instead of actual notes being identified on the side, you get EXT0 and EXT1, which mean external data (patter commands) will be used to determine the note to play on that row of the program. As with the static arps, make sure to include an FF00 command at the end to make it loop neatly. 

So how do you use those? Well let's say you wanted to make this instrument play a C major chord. First start by entering a C note in your pattern, then move to the pattern command column next to that note and use the command 0047. Remember this 4-7 from the last example? This will use the note you just entered as starting point (row 00 of the program) and then play a 4 semitone interval for EXT1 (row 01) and a 7 semitone interval for EXT2 (row 02), essentially giving you the same results as the major static arp we created earlier. This makes it really easy for you to change the nature of the chord by simply entering new numbers in the pattern command column of your patterns.

C what I did there?
The example to the left shows you how to trigger different C arpeggios from a single instrument by simply changing the 00xx command. Since the first row of your instrument program (0000) will basically play the note you enter in the pattern, it's possible to transpose these chords anywhere you want just as you can with static arps. If you were to replace the C note in this example for F, then you'd effectively be playing F, Fm, Faug and Fdim. Note that once you enter a 00xx command in a channel, this command remains valid until it is replaced by another one. This means you do not need to enter the command every time you trigger a note. The arp will play whatever 00xx was last used in that channel.

The other, and biggest advantage of dynamic arps is the possibility to easily invert chords for better voicing. In the example on the right, what you see are three different ways to play a C major arp. The first one is the traditional way to play the chord. It will start on a C, then play four semitones up (E), and then seven semitones up (G). 

The other two are simply inverted variations of the C chord. Take the G for example. Since it is accompanied by the numbers 5 and 9, the arp will start on a G, then play five semitones up (C), and then play 9 semitones up (E).  If you take one that starts on an E, you will see that it ends up playing E, G and then C. In all three cases the notes being played are the same, C-E-G, but in a different order. This is called inverting a chord and we'll get back to it a bit later.

fitting complex chords in triads
Complex chords are chords that use more than three notes. Obviously some aren't very complex, simply adding a fourth note to the mix, but it can quickly get out of hand, especially if you let a jazz fan near your piano. As a rule of thumb, you should always keep jazzmen out of your house. They will crash on your couch for weeks and eat all the damn food. They also smell vaguely of boiled cabbbage.

But still here you are with this nice chord progression you're trying to render with chiptune arps and the last chord of that progression is one of those pesky dom7th chords. How do you make a four note arp? Well the easy way out is obviously just to add another row to your program and enter the note there. Problem solved right?

Well yes and no. It's certainly a valid way of doing things and if this fits your particular needs then you're all done here. But it doesn't always sound right however. Since these arps are played really fast, adding an extra note in the sequence changes the texture of the "chip sound". You will find that four note arps do not sound as "fast" as three note arps simply because it takes a wee bit more time to loop back to the first note. 

Fortunately there's an easy-ish solution for fitting complex chords in three little notes. And yes, the solution is a stupid as you think it is: remove some notes. But won't that change the nature of the chord? In a way it will, and in a way it won't. Let's take one of the more common complex chord, the C dom7th, also called C7 for friends and family. This is primarily a C major chord, with an added flat 7th. In this case, the A#. So what we want to preserve even though we're removing notes is those three elements: we're playing a C, it's major, and it's got a flat 7th to it.

The easiest note to remove is almost always the root, C in this case. In most cases, this note is already being played somewhere else by another instrument, most likely the bass. So it's pretty safe to remove it since there are other tonal elements in the song supporting the fact that the chord is a C. You're left with E-G-A#. technically, this is an Edim chord. But as long as the rest of your song doesn't strongly suggest you are currently in E, and rather implies your're in C, then the overall texture of the song will be a C7. A major chord is also much stronger than a diminshed chord (which is really one of the weakest chords) so it doesn't take much to convince the listener you're in fact, playing a C.

The second easiest note you can remove from a chord is the dominant fifth, in this case, the G. The dominant's job is kind of to reinforce the root. If you remove the fifth, you're left with C-E-A#. These three notes together do not form another chord simply because there's not enough space between A# and C. So even if there's no G at all anywhere in the rest of your music, you're pretty much assured that the idea of the C7 is getting across just fine. And since the chord establishes itself without the help of other instrument, your bass line doesn't really need to establish the root and is free to wiggle about and do more interesting stuff.

The last note you can remove from that chord is the third, in this case the E. The third is really what gives your chord its minor or major character. If you remove it, you're left with a power chord (root + fifth). Since we're trying to preserve the original chord as much as possible, this note should be the last one you consider removing. But it can still be done. The remaining notes, C-G-A# still do not form a new chord because of the interval between A# and C being too small so in a way you still retain that C7 flavour, albeit without the major gravy on top. The moments when it's safe to remove the third from chord and keep that major tint to it is when the rest of your chord progression implies that this C chord would be major. So if you're in the key of C major, then removing the third can be done with relatively little impact on the chord itself.

So you could write a C7 arp (the static kind) by playing a C in the pattern, and have the instrument play either of those interval combination: 4-7-10, 0-4-10, and 0-7-10. You're left with a three note arp that won't sound too different from your basic triads in terms of texture and speed.

For even more complex chords, five notes and up, fitting them into a three note arp can be a little more challenging. You will need to look at what else is playing in your song that will imply that the notes you remove are still somehow being played. This can be as direct as having another instrument playing that note, to something as subtle as having your chord progression imply the missing information is still there. Fun times ahead.

voicing your arps
Chords can be inverted. What that means is that it doesn't really matter on which note you start, as long as you play all the correct notes, your chord will come across. They don't even need to be next to one another, you can spread them across the octaves if you want. Of course too much distance between the notes will sound a bit meh, but it will still technically be the correct chord.

I'm a god damn comedian.
Let's take the C major chord, again, as example. The natural chord is played C, then E, then G. From lowest to highest note. If you take your C note and put it an octave higher instead, you still get a C major chord, but this time it starts on a G, and ends on a C, giving it a different flavour while still remaining a C major. This is called the first inversion. Now start from that, and move the E an octave higher. Still a C major chord since it's all the same notes again, but this time you're in second inversion. With this technique, it's possible to shift your chords up or down in pitch while keeping the chord intact. 

It's when you start applying this to chord progressions that you really start to understand what voicing is all about. Let's take an easy chord progression and play with it a bit. We'll start from the classic 1-4-5 progression in C major. This progression is simply three major chords one after the other: C major, F major, and G major. This is how you'd play the progression using only natural shapes.

While this works just fine. There's no escaping the fact that the progression keeps going up in pitch. It also sounds quite elementary, a bit as if you'd be playing something out of your first few lessons of piano. What if we'd rather have a descending pitch for this progression instead? Well in that case we could do something like this instead.

Same basic chord progression, but now with a descending pitch. Another way to play the same progression would be keeping all the notes from every chord as close as you can to one another. This gives your progression a very "open chords on a guitar" type of feel since that's pretty much how open chords work on a guitar, none of them seemingly higher or lower than the other, but all distinctively different. You could then use something like this too keep them all close to one another.

There are tons of ways to voice your chords together like this. None of them are wrong as long as you play the correct notes for each chord. Mastering this technique is essential if you want to feel in control of your music, being able to give it movement in any direction you desire. Just remember that any chord can be inverted in any which way you want, as long as the notes remain the same. Complex chords offer you even more ways to invert, twist and mangle your progressions, make sure to explore and have fun with them.

intervallic and single shot arps
There are two more ways in which chiptune arps are usually used. The first one, the intervallic arp is composed of only two notes. Being only two notes, it doe not form a complete chord. The most common of these is clearly the octave jump and it's been heard in thousands of songs. This is a simple two note arp that will have its second note placed at an interval of 12 semitones. This gives your instrument the classic "chip tune arp" flavour, but keeps it centered on a single note, thus making it possible to use it easily for melodies and solos. You can explore different intervals of course. Another common interval for example is the fifth (7 semitones).

Intervallic octave jump
Single shot, note the goto command.

The second method is the single shot arp. This is basically just about any arp that will play only once and then remain on the last note. Two commonly used arps for single shots are the two notes octave jump (12-0) and the three notes double octave jump (0-12-0). This gives your instrument a quick short burst of chiptune arp sound, but then stabilizes into a single tone. It is important to ensure that your arp does not loop when making a single shot arp instrument. In Klystrack you can either check the No Program Restart box at the top of the program editor, or you can manually make it go in an infinite loop that will not repeat the arp.

So you see, there's a lot to do with arps. This by no means represents the be all end all guide to everything you can do with them, but it should get you well on your way. And hopefully, you learned something new today and got a bit more music theory in you at the same time. Now go, young grasshopper, and explore. There's nothing like trial and error.


klystrack tutorial - config options

Some would say I should have started with this tutorial first, but some should learn to keep quiet about such things, 'tis what I say. No but seriously, I know it's a little late to deal with those but I figured most people would either have already done that, or they have gotten used to the way klystrack is set up by default.

While I know that Klystrack follows much of the modern tracker standards, I'm an old man and I was raised around coal-powered computers. Because of that, I just couldn't deal with a lot of the default configuration. I will not go over every single option in the menus and all the things you can do to customize Klystrack to suit your own needs, but I will go over those that might be ambiguous as well as show you how I personally have it set up. 

Now, if you click the shiny Menu button, or right-click anywhere in the software you will bring up the menu bar. If you wonder why it's on the right click, then you probably were not born in the Amiga days. Do yourself a favor and get into the Amiga. Right meow. AMIGA FTW.

Ok partisan bullshit aside, once you have the menu bar displayed, you'll want to head to the Prefs menu. This is where the basic customization begins and we shall go over each options, or at least those I understand. 

Theme is where you select what Klystrack looks like. For this series of tutorials, all screenshot were taken under the Blacklyst theme because those colors fit best with the colors of my blog, but normally when I'm composing I favor the Golden Brown theme. This is just a matter of personal preference of course but I find that Golden Brown and Blacklyst offer you the best clarity and are not too aggressive on the eyes.

Keymap is where you select how certain functions are mapped to the keyboard. By default, you'll have a choice beween Default for those used to modern trackers, AZERTY for some of our European friends and FT2 which basically just adds changing channels with the TAB key to the default layout. There is a way to configure your own personalized keymap but I will come back to that later as I go over my own custom layout.

Pixel Size will change the display size basically. Klystrack was meant to feel and look oldschool and to be able to adapt to a variety of screen resolutions. On most modern computers (and by modern I mean, built after the cold war) you will probably want to use 2x2 pixel size. It will give you a "320x200" type of look which is exactly what tracking is all about. AMIGA FOR THE W--- sorry. You will probably find 1x1 too small, and 3x3/4x4 way the hell too huge. Again, personal choice...but everybody I know, their moms, and the various horses they rode in on all use 2x2 because it's what the cool cats do.

Full Screen is self explanatory enough. Suffice to say, I never work in full screen because I hate to alt-tab from a full screen program and since I use two screens, I don't want my mouse cursor be to locked to a single screen. I just maximize the window size on whatever screen I am using and it works just fine.

MIDI contains all the MIDI options. If you don't know what MIDI is, then you probably don't need it so skip ahead. If however you were planning on using it, well skip ahead anyways because it's kind of not working too great at the moment. As of this writing (v1.6.0 r1219) the MIDI support is quite buggy and can sadly not be used to do anything worthwhile. It hurts if you, like me, are using a 5000$ Nord Stage as a controller. Eighty-eight weighted keys of wasted potential....*cry*

Keyjazz is an option that you can only really appreciate in the Instrument Editor screen. At any moment, on any screen, using the letter keys on your keyboard will trigger notes, which is useful for jamming melodies on the fly, or testing out changes you make to an insutrment's settings. Normally each new note you trigger this way will cut whatever note was playing before. However, if you have Keyjazz turned on and you are in the Instrument Editor screen, then you will have polyphony. Each note will use a separate voice and you'll be able to hear chords. I am sure there's a limit to the number of notes that can be played simultaneously but whatever it is, it's high enough that you probably don't need to worry about running out. If you are dealing with infinite sustain instruments, this option will kind of get in your way because notes will not fade out or be cut by new ones. In such cases, press the spacebar to stop all sounds.

Follow Song Position will make your patterns scroll across the screen when you press play. I have no idea why anyone would want this off as it's confusing as all hell, but if you have masochist tendencies, give it a try. Otherwise be sane, and leave it on.

Animate Cursor will make your edit cursor glide from one place to another. For example pressing Enter when you are in the pattern editor will transport you to the sequence editor. With this option on, you will see the cursor move from one place to the other. With the option off, the cursor will jump right to its destination.

Hide Zeroes will simply hide all the pattern effect data that is empty (0000). Oldschool trackers used to always display the zeroes, but everything looks so much cleaner when you are not shown this pointless information. I recommend turning this on at all times.

Protracker Style Delete is one of the most useful option that is strangely not turned on by default. When it's turned on and you are editing a pattern, pressing the delete key will simply delete whatever data there is at your edit cursor's position as if it was entering an "empty note". If it's turned off, it will delete whatever data is at your edit cursor's position, and move everything that is underneath one row up. This will mess up your pattern big time, especially if you're just punching in data. I strongly suggest you turn this on, leave it on, and go around town to convince all the neighbors to also have it on at all times.

Toggle Edit On Stop is my fault. I kind of told the dev that some weirdos, like me, prefer to use the spacebar to stop the song instead of reaching way the hell up to the F8 key. But since the spacebar is also the key to toggle edit mode on and off, it used to do both. Stop the song, and toggle the edit. This drove me nuts and I suggested to Kometbomb that the edit toggle should be an option. So there it is now. The way it works now is simple, but apparently complicated to explain. With the option off, pressing Play will turn off the edit mode while the song plays. If you then press the spacebar, then the song will stop without turning the edit mode back on. You will have to press the spacebar one more time to toggle editing. When the option is turned on, then pressing the spacebar while the song plays will stop the song and also toggle the edit both right back on.

Center Pattern Editor is a mystery to me. I can't tell what it does, whether it's turned on or off. If you figure it out, feel free to point at me and laugh.

Decimal Numbers is for people like me who can barely manage hexadecimal without breaking a limb. It won't change everything to decimal as a lot of tracker functions are based around hexadecimal, but it will at least make the position row of every pattern display in decimal, as well as the position indicator in the sequence editor. I always have it on because that's what I am used to and it enables me to quickly locate the quarter-pattern position (16), the half point (32) and the three-quarters point (48) in my 64 row patterns. This is a personal setting, but years of counting beats in normal-people number left me unable to use hexadecimal for this.

Default Pattern Length has two settings, a toggle option called Same as Step and a selection of four default pattern lengths. As stated in my first tutorial, I recommend using 64 row patterns all the time. Unless you need shorter patterns for different time signatures, there is almost no reason to use other lengths. If you have the Same as Step option toggled on, then at any time in your editing, if you change the Step setting on the main screen, the next pattern you create will be create at that length. So for the best of both worlds I recommend putting Same as Step to on, and setting the default size to 64. What this will do is set up Klystrack to 64 row patterns by default all the time, with the option of changing it on-the-fly with the Step setting. Remember to set your Step back to 40 (64 rows) when you're done though.

Reverb Length in Ticks is the option you toggle if you want the delay taps in the FX section to be displayed in ticks instead of milliseconds. I use milliseconds because it's how I learned to use time-based effects, but I realize ticks might be more appropriate for some people. Your call, it doesn't affect anything except the display of the data.

AHX Style Sequence Edit is another useful option is strangely turned off by default. This option affects how pattern numbers are entered in the Sequence Editor. When the option is off, a single key is all that is needed to enter a pattern number. For example keys 0-9 and A-F will enter pattern numbers 00 to 0F. To enter patterns numbers above that, stick to the alphabet. G will input 10, H is 11 and so on. This is a quicker method of entering the pattern numbers but it breaks when you reach pattern 23, entered with the Z key. If you want to use patterns above that you'll have no more keys to enter the numbers. Oh noes! This is where AHX Style Sequence Edit comes in handy. Instead of having a single key to enter a pattern number, you will only have to use keys 0-9 and A-F but you will need to enter both digits manually in the sequence editor. To punch in pattern number 53 for example, you need to put a 5 in the first column, and a 3 in the second. A little more time consuming, but infinitely more practical. If you're anything like me, breaking past pattern 23 happens on every single song so there's no point in ever having this option off.

Disable Nostalgy will simple disable the "decrunching" visual effect visible when you first start Klystrack. Granted it's only three seconds of your time, and yes the first time I saw it I smiled and nodded in approval. But by now it's lost its novelty effect and I just turn it off because I want to get to the music right away.

You can edit your own keymaps and store them in a simple text file with the extension .key in the KEY folder. What this file does is not define a keyboard layout, it remaps the default keys to new places. So for example if you want your Play key (default F5) to be the Z key, you will have to create a line like this in the .key file:

K_Z = K_F5

This means that KEY Z is now replacing KEY F5. Now, what about keys that use modifiers such as shift, ctrl or alt? Let's say you want to remap the Play (F5) function to left-ctrl-w for some obscure reason. Then the line you need to input is:


Additionally, you can define keys according to what screen you're on, or what section of a screen your on. You do this by indicating the place where the key remapping is to take effect. If you like to use the TAB key to move your edit cursor to the next channel (default is ctrl-right) for example, you need these two lines:


The sections which are available to you are as follows:

[global] for keys that work in every screen.
[pattern] for when you're in the pattern editor
[sequence] for when you're in the sequence editor
[screenname] for keys to be mapped only in a certain screen, like instrument, or wave.

Lines that start with a # are not processed and can be used to leave notes in the text file for ulterior reference. For a list of all the valid key definitions you can use to edit your own keymap, please consult this link.

Now here's a copy of my own keymap, annotated with the reasons why I put these keys in these places.

# n00bstar's convoluted keymap
# inspired by protracker and fasttracker
Nowadays it's common to have the F5-F8 keys used for such functions as play/stop, but for me these functions will forever be associated with alt and ctrl. Why? Well because that's the way Protracker set up the standard years ago, and even when I switched over to Fast Tracker 2 later on, these keys were still the default. To me they are a natural choice because since you will be using the arrows keys a whole damn lot while composing, your thumb will naturally rests above the ctrl key, making it an obvious choice for the Play From Cursor function, which plays the song starting at the beginning of the pattern you're at. If I want to loop the current pattern I'm editing, then its the alt key, just a centimeter or two away. And when I want to play the song from the top, I use left-alt + right-ctrl. It might seem awkward at first, but when you get used to it its really much more comfortable.

K_F5 = K_F2
K_F6 = K_F4
Since I got rid of all the play functions associated with the F keys, I remapped them so I can access every editor screen with out having to use the shift key. F2 is my main editor, F3 is the instruments (as it is by default), F4 opens the FX editor, F5 opens the full screen pattern editor, F6 is the full screen sequence editor and finally F7 is the wave editor. No more shift key for this fella, no sir.

#tab move
#tab move
Again, this is an old Protracker/FastTracker standard. I like to be able to use the TAB key to move a full channel to the right, and Shift-TAB to move a full channel to the left in both my pattern editor, and sequence editor.

mix rate and buffer
In your Documents and Settings folder (well.. at least in Windows, I wouldn't know for Macs because I don't use Macs because they suck and if you disagree then you are retarded and deserve death) you will find a file called .klystrack. This is a standard text file you can edit in Notepad and you will notice it contains pretty much all of the options we've just went over and what they're set to. There is however two extra lines in that file which you cannot configure from the software itself, the mix rate and the mix buffer. 

The mix rate is the default sample rate at which Klystrack will be mixing its sounds at. By default it is set to 44100, which gives you a resolution of 44.1khz, the "CD quality" standard. There are no real reasons to go above or below this sample rate and there's even a fair chance of making Klystrack crash if you set it at nonsensical numbers. But you know, if you want to play around with it...there it is.

The second line is the mix buffer. By default this is set to 2048 samples, which means that every sound that Klystrack makes is delayed by 2048 samples before being actually output to the speaker. The default value is just fine and you should not feel too much of a delay between then moment when you press a key and the moment when the sound is played. I use 1024 because years of using professional equipment and ASIO drivers have made me very sensitive to latency. Anything lower than that, you risk running into overheads, which will translate if aggressive glitches in your output. This is however very dependent on the computer you are using so feel free to experiment. The worst that can happen is your computer will explode and you will die a horrible fiery death.

Every time you use the file requester in Klystrack, you will notice a little heart icon that is grayed out. If you click it, it will light up, marking the current folder you're in as a favorite. You can then press the favorite button at the bottom of the file requester to recall a list of all your favorite folders. If you're an organization whore like me and you've got everything neatly stored in 800 carefully named folders, this will make your life much easier. These folders are saved in the .klystrackfavorites file located in your Documents and Settings folder (again... fuck you Mac users nobody cares about you, you fucking hipster).

There it is folks. Next time I promise we'll get into fun stuff. No more of that user-manual crap!