xmrs 0.9.7

A library to edit SoundTracker data with pleasure
Documentation
# XMrs File format library

A no_std library to edit Sound Tracker data with pleasure.

Because "Representation is the Essence of Programming".

Suppported files:

- IT **Impulse Tracker**
- MOD **Amiga Modules**
- S3M **Scream Tracker III**
- SID **Rob Hubbard C64 files** (WIP).
- XM **FastTracker II**

To edit data, use `Module` struct.

You can serialize `Module` using serde or bincode2 (see `std` feature).

## How to load historical tracker files

Test with `cargo run --no-default-features --features=demo --example xmrs -- --help`, then read 50 lines `examples/xmrs` example.

## About no_std

[micromath](https://crates.io/crates/micromath) is used by default in [no_std](https://docs.rust-embedded.org/book/intro/no-std.html). If you prefer [libm](https://crates.io/crates/libm), use `cargo build --no-default-features --features=libm --release`.

If you want to use import, add `--features=import`.

If you want to optimize for memory or space in the embedded context, don't use the import feature, but prefer to prepare a serialized version with [bincode2](https://crates.io/crates/bincode2) and possibly [flate2-rs](https://crates.io/crates/flate2).

## About std

If you want to use [std](https://doc.rust-lang.org/std/) feature use `cargo build --no-default-features --features=std --release`

If you'd like to post-process in another language (but why use another language when you're lucky enough to have [rust]()!?) don't forget that, after loading, you can serialize in [json](https://crates.io/crates/serde_json) with [serde](https://crates.io/crates/serde).