xmrs/lib.rs
1#![forbid(unsafe_code)]
2#![allow(dead_code)]
3
4//!
5//! XMrs is a Safe SoundTracker Library
6//!
7//! ```
8//! Module+--->Instrument+--->InstrDefault+--->Sample (Loop, Sustain Loop)
9//! | | +--->Envelope (Pitch, Volume, Panning)
10//! | | +--->Vibrato
11//! | | +--->InstrMidi
12//! | +--->InstrEkn (Euclidian Rythm Instrument)
13//! | +--->InstrMidi
14//! | +--->InstrOpl (Yamaha OPL)
15//! | +--->InstrSid (MOS6581 SID Voices)
16//! | +-+->InstrRobSid+--->InstrSid
17//! +--->Pattern--->Row--->TrackUnit+--->TrackEffect
18//! +--->GlobalEffect
19//! ```
20//!
21//! You can load historical IT, S3M, SID, MOD, XM files using `import` (see `README.md`)
22//!
23//! You can serialize your work using serde
24//!
25
26#![cfg_attr(not(feature = "std"), no_std)]
27
28extern crate alloc;
29
30/// All effects
31pub mod effect;
32/// Envelope with Steroid
33pub mod envelope;
34/// Instrument handling samples
35pub mod instr_default;
36/// Euclidian Rythm Instrument
37pub mod instr_ekn;
38/// Midi Instrument
39pub mod instr_midi;
40/// Yamaha OPL Instrument
41pub mod instr_opl;
42/// Rob Hubbard Instrument
43pub mod instr_robsid;
44/// MOS6581 SID Instrument
45pub mod instr_sid;
46/// Instrument with Steroid
47pub mod instrument;
48/// SoundTracker Module with Steroid
49pub mod module;
50/// Period Helper
51pub mod period_helper;
52pub(crate) mod period_helper_cache;
53/// A typical Note
54pub mod pitch;
55/// Sample with Steroid
56pub mod sample;
57/// A slot
58pub mod track_unit;
59/// Vibrato with Steroid
60pub mod vibrato;
61/// All Waveform type
62pub mod waveform;
63/// A simple way for random values
64pub mod xorshift;
65
66/// The Xmrs Prelude
67pub mod prelude;
68
69#[cfg(any(
70 feature = "import",
71 feature = "import_amiga",
72 feature = "import_it",
73 feature = "import_s3m",
74 feature = "import_sid",
75 feature = "import_xm",
76))]
77/// Import historical files.
78/// Do not use it directly: see Module load* fn impl
79pub mod import;
80
81#[cfg(test)]
82mod tests {
83 #[test]
84 fn it_works() {
85 assert_eq!(42, 42);
86 }
87}