A no_std library to edit Sound Tracker data with pleasure.
Because "Representation is the Essence of Programming".
For now MOD Amiga Modules, S3M Scream Tracker III and XM FastTracker II files are supported.
Rob Hubbard C64 SID import is a WIP.
Useful struct parts:
- Module
- Pattern
- Instrument
- InstrDefault for Historical XM Instrument
- InstrEkn for Euclidian Rythm Instrument
- InstrMidi for Midi Instrument
- InstrOpl for Yamaha OPL Instrument
- InstrSid for MOS6581 SID Instrument
- InstrRobSid for historical Rob Hubbard Instrument
To edit data, use Module
struct.
You can serialize Module
using serde bincode (see std
feature).
Use import_mod
feature
- Deserialize
AmigaModule
struct usingAmigaModule::load(&amiga)
- Convert to struct
Module
using.to_module()
Use import_s3m
feature
- Deserialize
S3mModule
struct usingS3mModule::load(&s3m)
- Convert to struct
Module
using.to_module()
Use import_xm
feature
- Deserialize
XmModule
struct usingXmModule::load(&XM)
- Convert to struct
Module
using.to_module()
- Convert
Module
toXmModule
:XmModule::from_module(&module)
- Serialize using
XmModule
save()
fn
Note: You can only save InstrDefault
in XM fileformat.
micromath is used by default in no_std. If you prefer libm, use cargo build --no-default-features --features=libm --release
.
if you want to use std feature use cargo build --no-default-features --features=std --release
if you want to test examples use cargo build --no-default-features --features=std,demo --release