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(feature = "import")]
70/// Import historical files.
71/// Do not use it directly: see Module load* fn impl
72pub mod import;
73
74#[cfg(test)]
75mod tests {
76 #[test]
77 fn it_works() {
78 assert_eq!(42, 42);
79 }
80}