1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! Core data model — format-agnostic.
//!
//! Self-sufficient for a modern DAW editor that never imports historical
//! tracker files — including the chip-synthesis instrument types
//! ([`crate::core::instr_opl`], [`crate::core::instr_sid`],
//! [`crate::core::instr_robsid`]), which are authoring
//! primitives rather than import artifacts. Format-tied items (importers,
//! presets, period helper) live under [`crate::tracker`].
//!
//! ## Module groups
//!
//! - **Patterns & events**: [`crate::core::cell`], [`crate::core::cell_note`],
//! [`crate::core::pitch`], [`crate::core::effect`]
//! - **Sound shaping**: [`crate::core::envelope`], [`crate::core::vibrato`],
//! [`crate::core::waveform`], [`crate::core::sample`]
//! - **Voice & instruments**: [`crate::core::voice_setup`],
//! [`crate::core::keyboard`], [`crate::core::instrument_behavior`],
//! [`crate::core::instrument`], [`crate::core::instr_default`],
//! [`crate::core::instr_midi`]; chip-synthesis voices
//! [`crate::core::instr_opl`], [`crate::core::instr_sid`] and
//! [`crate::core::instr_robsid`] — all three **always compiled**; it is their
//! render engines (`generators::opl`, `generators::sid`)
//! that gate on `synth_opl` / `synth_sid`
//! - **Top-level container**: [`crate::core::module`],
//! [`crate::core::compatibility`]
//! - **DAW timeline**: [`crate::core::daw`] (clips, tracks, automation,
//! timeline map, Euclidean)
//! - **Primitives**: [`crate::core::duration`], [`crate::core::xorshift`],
//! [`crate::core::fixed`]
/// Yamaha OPL2/OPL3 FM voice — a pure data type (register layout, integer
/// only, no `oplon` dependency), compiled in **every** build so
/// [`InstrumentType`](instrument::InstrumentType)'s variant set is stable
/// regardless of features. Its render engine `generators::opl` is
/// what gates on `synth_opl`.
/// Rob Hubbard-style SID instrument, layered on [`crate::core::instr_sid`].
/// A data type, always compiled (see [`instr_opl`]).
/// MOS6581/8580 SID voice — a data type, always compiled (see [`instr_opl`]);
/// its render engine `generators::sid` gates on `synth_sid`.