7 releases

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

#530 in Parser implementations

Download history 1/week @ 2024-12-03 11/week @ 2024-12-10 1/week @ 2024-12-17 108/week @ 2025-02-11

108 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.3.1"

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
  • Throw more parse errors
  • Displays: MixerSettings, EffectsSettings, Instrument, MidiSettings, MidiMapping

Changelog

0.3.1

  • Fixing visibility of Eq types (was private in 0.3)
  • FmAlgo content is now publicly visible
  • Each instrument filter type can now be accessed through the filter_types method
  • Parameters and modulation destination constants is now public.

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

~310–780KB
~17K SLoC