CLI tool for compressing samples in Impulse Tracker song files
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

ITQ tool

Squish the file size of Impulse Tracker (IT) mods by converting the samples to Ogg Vorbis format.

The majority of the code is a fork of libmodplug — only the encoding component and frontend tool were added.

What 4

I needed to ship mods with very large samples, and uncompressed WAVs take up a fair bucket.

How 4

$ mkdir build
$ cd build
$ cmake ..
$ make

File format

The file format of an ITQ file is almost exactly the same as that of an IT file. The sample header section has two added fields:

DWORD nbytes;     // Number of bytes in compressed sample
CHAR samplecodec; // OGG Vorbis, FLAC, etc.

The sample data sections, which usually contain raw audio, contain their respective encoded streams. The nbytes field was added because their offsets in the file are impossible to know otherwise.

The samplecodec field indicates the codec used. Only Vorbis is supported at this time, but this field affords future additions.

Shopping list

  • Encode .it into .itq
  • Decode .itq into .it
  • Vorbis quality option
  • Output filename option

Subjectively relevant links


All code in the modplug directory is public domain (see modplug/COPYING).

The ITQ frontend tool and modifications to libmodplug are public domain.

libvorbis and libogg use the BSD license.