#module #tracker #mod #xm #s3m

bin+lib xmrs

A library to edit SoundTracker data with pleasure

35 releases

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

#84 in Audio

Download history 4/week @ 2024-02-02 1/week @ 2024-02-09 27/week @ 2024-02-16 33/week @ 2024-02-23 184/week @ 2024-03-01 252/week @ 2024-03-08 104/week @ 2024-03-15 809/week @ 2024-03-22 645/week @ 2024-03-29 580/week @ 2024-04-05 105/week @ 2024-04-12 46/week @ 2024-04-19 374/week @ 2024-04-26 192/week @ 2024-05-03

819 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