ittech

Impulse Tracker module file parser and writer. Currently still a work in progress, the parser is already practically usable however the API is still unstable and may change often. Writer is not implemented yet.

The [render example] can be already used to play IT module files, however the example itself implements no effects so most tracks will probably sound really bad. The [dump example] is useful for demonstrating the current parsing capabilities of the library.

You can run the examples using cargo:

shell cargo run --example dump -- module_file.it cargo run --example render -- module_file.it out.wav

The render example might be a bit slow in debug mode, the renderer is very primitive and unoptimized.

documentation

Documentation can be seen at docs.rs/ittech.

One of the main focuses of the library is to document the file format as best as possible and to point out differences in the multitude of implementations there are. The implementations which are mainly being used as a reference are [OpenMPT] and [Schism Tracker]. Schism Tracker aims to be a faithful reimplementation of the original Impulse Tracker whereas OpenMPT does much more. If you want to dive into the codebase the Schism Tracker source is much more readable since it only supports one module format, OpenMPT however in our opinion produces better sound quality.

license

This software is licensed under the terms of GPLv3 or later.