36 releases
0.5.14 | May 14, 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 |
#212 in Audio
1,025 downloads per month
Used in 4 crates
(2 directly)
94KB
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:
- Module
- Pattern
- Instrument
- InstrDefault for Historical XM Instrument
- InstrEkn for Euclidian Rythm Instrument
- InstrMidi for Midi Instrument
- InstrSid for MOS6581 SID Instrument
- InstrRobSid for historical Rob Hubbard Instrument
Load MOD file
- Deserialize
AmigaModule
struct usingAmigaModule::load(&amiga)
- Convert to struct
Module
using.to_module()
Load XM file
- Deserialize
XmModule
struct usingXmModule::load(&XM)
- Convert to struct
Module
using.to_module()
Save XM file
- Convert
Module
toXmModule
:XmModule::from_module(&module)
- 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
~3–4MB
~68K SLoC