ittech 0.2.0

Impulse Tracker file parser and writer
Documentation
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.

[render example]: https://github.com/ametisf/ittech/blob/main/examples/render.rs
[dump example]: https://github.com/ametisf/ittech/blob/main/examples/dump.rs

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](https://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.

[OpenMPT]: https://github.com/OpenMPT/openmpt
[Schism Tracker]: https://github.com/schismtracker/schismtracker


license
-------

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