Sevish

Making microtonal music with tracker software

A tracker is a type of music sequencer that was popular in earlier days of computer music and the tracker scene is still very much alive today. Some trackers even support microtonal scales, allowing you to compose with xenharmonic, alternative tonal systems, and I wanted to share some of those here.

Post updated on 2021-10-13

Famitracker

Sintel has made a very handy tool that converts Scala files into detune settings for 0CC Famitracker.

OpenMPT (Open ModPluG Tracker)

Open ModPlug Tracker is a completely free music tracker for Windows. It can also be microtuned, so that you can compose music that explores tonal systems made before and after the reign of 12-tone equal temperament (from here on referred to as ‘The Dark Ages’).

OpenMPT

OpenMPT can be microtuned by way of Scala files or TUN file import. (Learn how to produce those .tun files, or download some ready made tuning packs). You an also input notes directly, though they must be in the form of decimals. Once a tuning is imported into OpenMPT, you can edit it within the Tuning Properties screen.

OpenMPT microtonal tuning

One awesome feature is that OpenMPT will name the notes of your tuning with letters A-Z from the alphabet. This way, if you have more or less than 12 notes per octave then you can easily recognise your pitches. A5 is one octave above A4, X5 is one octave above X4 etc. It’s as easy as that. (DAW engineers take note, this is essential for microtonalists! We don’t need to see 12-TET note names when we’re using microtonal scales).

If you need even more control over your note pitches, it’s possible to fine-tune the frequency of each individual note.

Note that if you’re using VSTs within OpenMPT, the microtuning feature won’t work for those. Stick to the sampled instruments and your OpenMPT tunings will work just fine.

Little Sound Dj

LSDj (Little Sound Dj) is a music tracker made for the original Game Boy, utilizing the Game Boy’s sound capabilities. It will run on real hardware via a flash cart, or you can run it in an emulator. I run it on an emulator on my smartphone. It’s a great way to kill some time on the bus/train/toilet.

LSDJ

By default, the frequency tables inside the ROM file are tuned to 12-tone equal temperament. But with the aid of a super helpful Perl script by abrasive, the frequency tables in LSDj can be fully microtuned to any tuning system you want. Even non-equal, non-just and non-octave scales are possible – it’s very flexible!

To do this, first of course you’ll need a copy of LSDj, then head to the Microtuning HOWTO page on LSDj’s wiki and download lsdj_tune1.4.

Note, the compiled .exe for lsdj_tune1.4 may give you the following message:

&Config::AUTOLOAD failed on Config::launcher at PERL2EXE_STORAGE/Config.pm line 72.

So it’s best to install Perl on your system and run the Perl script itself. For me, this works just fine. But note that you need to use the command line in order to run the script.

With all that set up, your best bet is to move LSDj and the tuning script into the same directory, then make a .bat file to set up your tuning command. I prefer using a .bat instead of writing directly in the command line, because I can save my command, edit it and repeat it later when I want to change the tuning.

When you run the command, you’ll end up with a patched version of the original ROM, so for each tuning you wish to use, you’ll get a new ROM. My Game Boy folder has several of them for various tunings.

Similarly to OpenMPT, with lsdj_tune you can set the note names of your tuning. This way when you make music in LSDj you won’t be encumbered with 12-TET note names from The Dark Ages. Here’s a really simple example using 5-EDO and the note names U V X Y Z:

perl lsdj_tune1.4.perl --cents 0,240,480,720,960,1200 --base A5 440 --names U,V,X,Y,Z --rom lsdj.gb --out lsdj_5edo.gb

Note: the names parameter doesn’t work in ET mode so here I have specified 5-EDO explicitly using cents.

Then load up your new patched LSDj ROM and enjoy! — 2 pulse channels, 1 PCM channel and 1 noise channel is way more exciting with microtones.

LSDJ-5edo

Renoise

Renoise instruments can be retuned by using a neat scl to xrni tool.

First you’ll need to download some Scala files (or make your own). Then install the tool by downloading it and dragging it on to your Renoise window. Within Renoise, make sure that your instrument is selected, and then run the tool. You’ll be able to load up one of your Scala tuning files and it will be applied to the instrument.

GoatTracker 2

Update (December 2020): Ahornberg mentioned in the comments that GoatTracker 2 supports microtonal tuning via scala files (.scl). It also allows for customizable note names.

Using trackers that contain no microtuning functions

Many other trackers have no microtuning function built in, but you can still edit the pitch of each individual note. This can be done by using edit mode and assigning the same sample to different notes of the keyboard, each with some detuning.

Of course this is laborious work, so you might prefer one of the above options. Nevertheless this hasn’t held some people back. Here’s the proof, a tasty jam in just intonation using MilkyTracker:

Deflemask

Deflemask is another tracker that doesn’t have any built in support for microtuning. But my tuning tool Scale Workshop can generate a list of the fine tune parameters for any tuning you want to throw at it. Just load up your scale in Scale Workshop and then Export > Download Deflemask ‘fine tune’ reference (.txt). Then input the values from the text file into Deflemask as needed.

Other trackers

If there are more trackers that support microtonal scales then I would love to hear about them.

Important links

Further reading


4 thoughts on “Making microtonal music with tracker software”

  1. sleepside

    Hardware tracker option: the Dirtywave M8 allows user-defined scales of up to 12 notes, with arbitrary tuning offsets. Multiple scales can be used within a project, so careful planning can allow even >12 note microtonal scales.

    Reply

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*