#module #mod #xm #soundtracker #s3m

no-std xmrs

A library to edit SoundTracker data with pleasure

39 releases

new 0.6.2 Jul 20, 2024
0.6.0 May 29, 2024
0.4.13 Mar 30, 2024
0.3.3 May 29, 2023
0.2.3 Mar 26, 2023

#82 in Audio

Download history 580/week @ 2024-04-05 105/week @ 2024-04-12 46/week @ 2024-04-19 374/week @ 2024-04-26 193/week @ 2024-05-03 380/week @ 2024-05-10 81/week @ 2024-05-17 164/week @ 2024-05-24 68/week @ 2024-05-31 57/week @ 2024-06-07 229/week @ 2024-06-14 38/week @ 2024-06-21 28/week @ 2024-06-28 122/week @ 2024-07-05 24/week @ 2024-07-12 127/week @ 2024-07-19

307 downloads per month
Used in 5 crates (3 directly)

MIT license

93KB
2.5K SLoC

XMrs File format library

A no_std 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.

About no_std

micromath is used by default in no_std. If you prefer libm, use cargo build --no-default-features --features=libm --release.

About std

if you want to use std feature use cargo build --no-default-features --features=std --release

About std demo

if you want to test examples use cargo build --no-default-features --features=std,demo --release

Dependencies

~1–2.2MB
~48K SLoC