m8-files 0.3.0

Parse the Dirtywave M8's file formats
Documentation

m8-files

Crates.io Docs.rs CI

Reads Dirtwave M8 files into Rust structs.

Big thanks to m8-js who did all the real dirty work.

Usage

Add to your Cargo.toml:

m8-files = "0.2"

Or

$ cargo add play-files

Load an example song:

$ cargo run --example read_song -- examples/songs/DEFAULT.m8s

TODO

  • Add song groove, scale, note_preview
  • Add settings: output/speaker volume
  • Support writes?
  • Throw more parse errors
  • Interpret FXCommand based on Instrument
  • Displays: MixerSettings, EffectsSettings, Instrument, MidiSettings, MidiMapping

Changelog

0.3

  • v4 reading
  • v4 overwriting, you can load, modify elements and rewrite the same song.
    • Does not work with song other than v4/v4.1
  • Added EQ with plotting
  • Mapped all FX instruction depending on the names
  • Mapped enums to many instrument parameters with human readable information

0.2

  • Add V3 support
  • Fix instrument alignment issues