#module #tracker #mod #xm #s3m

bin+lib xmrs

A library to edit SoundTracker data with pleasure

33 releases

new 0.5.8 May 1, 2024
0.4.13 Mar 30, 2024
0.3.3 May 29, 2023
0.2.3 Mar 26, 2023

#83 in Audio

Download history 3/week @ 2024-02-01 2/week @ 2024-02-08 25/week @ 2024-02-15 31/week @ 2024-02-22 182/week @ 2024-02-29 157/week @ 2024-03-07 203/week @ 2024-03-14 727/week @ 2024-03-21 623/week @ 2024-03-28 585/week @ 2024-04-04 201/week @ 2024-04-11 49/week @ 2024-04-18 298/week @ 2024-04-25

1,237 downloads per month
Used in 4 crates (2 directly)

MIT license

93KB
2.5K SLoC

XMrs File format library

A library to edit Sound Tracker data with pleasure.

Because "Representation is the Essence of Programming".

For now MOD Amiga Modules and XM FastTracker II files are supported.

Useful struct parts:

Load MOD file

  1. Deserialize AmigaModule struct using AmigaModule::load(&amiga)
  2. Convert to struct Module using .to_module()

Load XM file

  1. Deserialize XmModule struct using XmModule::load(&XM)
  2. Convert to struct Module using .to_module()

Save XM file

  1. Convert Module to XmModule: XmModule::from_module(&module)
  2. Serialize using XmModule save() fn

Edit data using rustified structs, use Module struct.

Note: You can only save InstrDefault using XM fileformat.

Load XMrs fileformat (deflate then bincode)

let mut mod = Module::load(&data)?;

Save XMrs fileformat (bincode then deflate)

let data = mod.save()?;

data contain a small five bytes header b"XMrs" + version coming from CARGO_PKG_VERSION_MAJOR.

Dependencies

~2.9–4MB
~67K SLoC