#module #tracker #mod #xm #s3m

bin+lib xmrs

A library to edit SoundTracker data with pleasure

32 releases

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

#228 in Audio

Download history 73/week @ 2023-12-31 3/week @ 2024-01-07 5/week @ 2024-02-04 29/week @ 2024-02-18 104/week @ 2024-02-25 219/week @ 2024-03-03 221/week @ 2024-03-10 385/week @ 2024-03-17 537/week @ 2024-03-24 819/week @ 2024-03-31 379/week @ 2024-04-07 66/week @ 2024-04-14

2,109 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.8–4MB
~65K SLoC