6 releases

new 0.3.0 Feb 15, 2025
0.2.0 Apr 3, 2023
0.1.3 Feb 25, 2023

#483 in Parser implementations

Download history 10/week @ 2024-12-09 3/week @ 2024-12-16 90/week @ 2025-02-10

90 downloads per month
Used in 2 crates

MIT license

155KB
5K SLoC

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

Dependencies

~300–770KB
~17K SLoC