Article History

100% RazerBlue6

Trilo Tracker


  1. Specifications
  2. Tools
  3. File Formats & Playback
  4. Miscellaneous
  5. List of Effects
// marks to be deleted, # marks to be changed

Trilo Tracker is a native music tracker for MSX systems* that utilizes the AY/YM PSG and Konami's SCC. Trilo Tracker is created by Trilobyte Soft.

This article covers a small technical specification of sound chips, available tools that help compose for the format tracker, ways to reliably play back files as well as mentioning some related tools and other useful links.

*See specification paragraph for more information about system requirements


Sound Capabilities
Trilo Tracker uses the AY/YM PSG and Konami's SCC for sound.

The AY/YM is the same soundchip used the ZX Spectrum, Atari ST, Pentagon 128k and countless other PCs at the time. This chip has three (3) independent audio oscillators (channels) for square-wave tones, a pseudo-random noise generator that can be mixed and assigned to play on either of the three channels, as well as a hardware envelope generator that can be manipulated to also play saw-wave or triangle-wave tones (though this is hard to do in Trilo Tracker).

Konami's SCC (Sound Creative Chip) is a five (5) channel wavetable synthesis chip. The wavetables contain 32 bytes of 8 bit data to make up user-defined waveforms. The SCC has two known variants; the normal 'SCC' and the 'SCC+'. This difference is that channels 4 and 5 on the normal SCC share waveform data; on the SCC+ these channels can have their waveforms set independently.

MSX System Requirements
Trilo Tracker needs to be run on MSX systems that are conform the MSX2+ or MSX Turbo-R standards and since Trilo Tracker requires MSX-DOS to be run, the systems need to have atleast 128kB of RAM. The more RAM is available, the more usable patterns there will be available.


Since Trilo Tracker is a native tracker, you will be needing either MSX hardware or MSX emulators. This section covers which emulators to use and how to set them up correctly.

OpenMSX is the recommended emulator to emulate MSX systems as its performance and user experience is much better relative to other emulators. It emulates almost all systems and extensions and is very customizable. OpenMSX is open source and available for Windows, MacOSX, Android (ARM) and OpenDingus.
OpenMSX also comes with 'Catapult', which is a GUI to set up OpenMSX components and change settings more easily.
You can download OpenMSX on its website

# ...

Since we at butt recommend OpenMSX for MSX emulation, we only really explain how to setup Trilo Tracker with this emulator (might change in the future).

Follow these steps to setup Trilo Tracker with OpenMSX:
1. Download OpenMSX (preferably the 'zip', a.k.a. the portable version).

2. Extract / install the content to whatever directory you like.

3. Download this Trilo Tracker 0.9.2 OMSX package (coming soon)

4. Extract the following content in the correct folders:
– 'share' --> merge this folder with the 'share' folder in the directory where you extracted / installed OpenMSX
– 'TT_0.9.2.dsk' and 'settings.xml' --> you can put these anywhere you like.
– 'Trilo_Utils' --> You should put these in a folder where your Trilo Tracker related files are going to be.

5. Open Catapult (in "/catapult/bin/"), it may be handy to create a shortcut for this application as you're going to need it every time you want to launch Trilo Tracker.

6. When you open Catapult, it will check available extensions and machines, let this do its job. If it doesn't, go to File --> 'Test MSX Hardware'

7. Go to Settings --> 'load openMSX settings...' and select the 'settings.xml'.

8. In the MSX type dropdown menu, select the 'Panasonic FS-A1GT'.

9. In the extensions list, click/highlight on the following:
– 'Panasonic FS-FD1A'
– 'ram1mb'
– 'scc+'
– 'slotexpander'

10. In the disk drive area, select the following:
– 'Disk A' --> click on 'Disk A' and select "Browse for disk folder (DirAsDisk)", and select a directory which will contain Trilo Tracker related files or folders. This will be the 'C:' / 'D:' drive within Trilo Tracker.
– 'Disk B' --> click on 'Disk B' and select "Browse for disk image" and select 'TT_0.9.2.dsk'.

11. Press the 'Start' button to start emulating MSX and you should be good to go.

*** Remarks: ***
* When you download Trilo Tracker disk images from its own site, you start it with ""; they don't contain AUTOEXEC.BAT.
* When OpenMSX opens, it creates a folder in "C:/[user]/my documents/OpenMSX".
If you don't want this there, you can create a symbolic link to the path;
--> Use the Windows batch script I provided in the directory the actual physical folder is going to be,
e.g. "D:\Chiptune\Trilo Tracker\" will make "D:\Chiptune\Trilo Tracker\omsx_userdat\"
You can safely delete the folder/symlinks this script creates if you don't need them anymore.
--> Do it yourself with something like Link Shell Extension if on Windows

File Formats & Playback

The native tracker module file of Trilo Tracker. Amount of patterns that can be played back is dependent of the available RAM from a MSX machine.

You can play back .TMU files in Trilo Tracker itself.
You can record either sound through


Trilo Tracker Help pages

Configuration Menu

Instrument Editor

Macro Layout

Trilo Tracker Manual by Gryzor87
A complete tutorial for making music with Trilo Tracker. It comes with a 32 page manual and two MSX floppys (*.DSK images): 8 full songs and tons of instruments and waveforms (latter two included in 'Trilo Tracker 0.9.2 OMSX package').
Link to the download page

Disk Utility Tools
DSK and XSA Image Utility
This is a DSK and XSA image utility for Linux and Windows by Gatchang. Features:
— Browse / Add file(s) / Delete file(s) / Extract file (double click) from DSK, XSA
— Convert between DSK and XSA
— Directory support
— Windows and Linux binary file
— With source code in Lazarus 1.2.6 and FPC 2.6.4
Link to download page

Disk Explorer
This is a DSK image utility for Windows. Great for drag 'n dropping files to and from .dsk files.
— Browse / Add file(s) / Delete file(s) / Extract file from DSK
— Directory support
— Drag 'n Drop support
Link to download page

List of Effects

Global Commands
0xy - Arpeggio
Cycles between note, note+x halftones, note+y halftones.

1xy - Portamento Up
This will slide up the pitch of the current note being played by the given step size (in xy) each tic. 100 will continue the previous portamento values, even after a new note or effect. The slide will wrap around when it has reached the limit of the tone register. The slide is not delimited.

2xy - Portamento Down
Same as portamento up bit his will slide up the pitch of the current note being played by the given step size (in xy) each tick.

3xy - Tone Portamento
This command is used together with a note, and will bend the current pitch at the given step size ,on each tic, towards the specified note.

4xy - Vibrato
Vibrato with speed x and depth y. This command will oscillate the frequency of the current note with a sine wave. (You can change the vibrato waveform to a triangle wave, a square wave, or a random table by using the E4x command). the depth value ranges from 0 to 7.

5xy - Tone Portamento + Volume Slide
This command is equivalent to Tone-Portamento and Volume Slide. (300 + Axy).

6xy - Vibrato + Volume Slide
This command is equivalent to Vibrato and Volume Slide. (400 + Axy).

9xy - Macro Offset
This command, when used together with a note, will start playing the sample at the position xy (instead of position 0). If xy is 00 (900), the previous value will be used. Be sure not to use xy values outside the instrument macro.

Axy - Volume Slide
Slide up or down the current volume.

D00 - Pattern End
Stops playing the current pattern and continues to the next pattern.

Global - Extended Commands
E0y - Short Arpeggio
y value sets the number of halve tones to alternate every tic (note+0.note+y). Use E00 to continue the sort arpeggio on the next step.

E1y - Fine Slide Up
y value sets the value to slide up. This is only done once. This command is useful on higher notes for portamento or as note detune.

E2y - Fine Slide Down
y value sets the value to slide down. This is only done once. This command is useful on higher notes for portamento or as note detune.

E4y - Vibrato Control
y value sets the form used on vibrato (0=sine,1=triangle,2=pulse). This setting will affect all channels.

E50 - Note Link
Links the note next to this command with the previous note. The instrument macro is not restarted.

E6y - Track Detune
y value sets the track detune for all notes played till set differently. Values $0..$7 are positive values and values $8..$F are negative values (-1..-7)

E8y - Global Transpose
y value sets the global transpose for all notes in halve notes. Values $0..$7 are positive (0..7) values and values $8..$F are negative values (-1..-7)

ECy - Note Cut Delay
y value sets the delay in ticks to wait before stopping the current note.

EDy - Note Delay
y value sets the delay in ticks to wait before starting the note.

EFy - Trigger
y value is set in the trigger variable. The trigger can be used to sync programs to the music.

Fxy - Replay Speed / Tempo
Set the speed (values 2-63) to play the music data. The xy value sets the delay in ‘halve’ ticks to wait between each pattern row.

PSG Commands
8xy - PSG HW Envelope Multiplier
This command sets the frequency of the hardware envelope registers. The value of xy is multiplied with 8 to set the frequency value(0-2040). The frequency value sets the speed of the envelope steps. The default frequency is always set to 0. Value set using this command will stay in effect until changed and/or end of playback.
This command only sets the envelope frequency and can be used in any track (even non-PSG tracks). To use the HW envelope playback command EEy is used.

EEy - Envelope
y value sets the envelope shape to use. Value EE0 will continue the current envelope command. Values $1-$f sets the envelope shape. The envelope shape is executed in 15 steps. Step speed depends on the envelope frequency (see command 8xy). Envelope shapes are restart at every EEy command (except EE0). The following envelope shapes are available:
8      \\\\\\\\\\ 1-3,9  \_________  A      \/\/\/\/\/  B      \¯¯¯¯¯¯¯¯¯  C      //////////  D      /¯¯¯¯¯¯¯¯¯   E      /\/\/\/\/\ 4-7,F  /_________ 

SCC Commands
B00 - Reset
Resets the waveform to the waveform related to the current instrument.

B1y - Duty Cycle
Generates a square waveform for the current track. The value ($0 - $f) in y defines the shape (0-50%) of the waveform to generate in steps of 3,125%.

B2y - Waveform Cut
Cuts the current waveform (related to instrument) at position y to 0 (no amplitude). The value in y ($0-$f) defines size of the waveform in steps of 6.5%. The rest is cut to center.

B4y - Waveform Compress
Compresses the current waveform (related to instrument). Parameter y contains the value ($0..$7) of the compression rate in steps of 4%. ($0=4%, $7=32%).

BBy - Set Waveform
Changes the current waveform into the waveform specified in y. Only waveforms $0..$F can be used.

BCy - Set Waveform+16
Changes the current waveform into the waveform+16 specified in y. Only waveforms $0..$F can be used. With this command it is possible to set the upper 16 waveforms.

Cxy - SCC Morph
Waveform morphing will morph between 2 waveforms. The morphing is done in 16 steps using variable intervals. Only 1 morph at the same time is possible. Multiple tracks can use the same morphing waveform by using the 'morph-slave' command. A morph will always complete in the background (except for morph change Cx0 and Cxy). Even after a track stops acting in 'morph-slave' mode. 'Morph-slave' mode is cancelled in a track by a note, rest (-R-), instrument or Bxy effect.

C00 : Set this track to 'morph-slave' mode. Any morph updates are automatically updated in this track.

Cx0 : Start a new morph into waveform x using the current morph waveform values. Only useful after a Cxy command. The current morph speed is maintained (x values between 1-F). Sets track into 'morph-slave' mode.

Cxy : Start a new morph into waveform x (0-F) starting from the original instrument waveform. The update interval, in tics, is set using y (1-F). Sets track into 'morph-slave' mode.