#module #tracker #mod #xm #s3m

bin+lib xmrs

A library to edit SoundTracker data with pleasure

32 releases

new 0.5.7 Apr 10, 2024
0.4.13 Mar 30, 2024
0.3.3 May 29, 2023
0.2.3 Mar 26, 2023

#226 in Audio

Download history 25/week @ 2023-12-27 51/week @ 2024-01-03 3/week @ 2024-01-31 2/week @ 2024-02-07 3/week @ 2024-02-14 35/week @ 2024-02-21 185/week @ 2024-02-28 162/week @ 2024-03-06 207/week @ 2024-03-13 586/week @ 2024-03-20 666/week @ 2024-03-27 517/week @ 2024-04-03

1,986 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
~66K SLoC