m8-files

Crates.iom8-files
lib.rsm8-files
version0.3.1
created_at2023-02-24 00:54:10.041485+00
updated_at2025-02-21 01:27:32.27737+00
descriptionParse the Dirtywave M8's file formats
homepagehttps://github.com/AlexCharlton/m8-files
repositoryhttps://github.com/AlexCharlton/m8-files
max_upload_size
id793213
size941,471
Alex Charlton (AlexCharlton)

documentation

https://docs.rs/m8-files

README

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
Commit count: 42

cargo fmt