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
//! # mseq_core
//!
//! Core framework for building custom MIDI sequencers.
//!
//! `mseq_core` provides the foundational traits and utilities needed to implement
//! your own MIDI sequencer, with a focus on portability and modularity.
//!
//! This crate is built with `#![no_std]`, making it suitable for embedded platforms
//! as well as standard operating systems.
//!
//! ## Getting Started
//!
//! To create a custom sequencer, you typically:
//!
//! - Implement the [`Conductor`] trait to define your sequencer's control logic.
//! - Define one or more tracks by either:
//! - Implementing the [`Track`] trait for custom behavior.
//! - Instantiating [`DeteTrack`] for deterministic, looping patterns.
//!
//! ## Platform Support
//!
//! - For OS-based systems, use the [`mseq`](https://crates.io/crates/mseq) crate — a reference implementation of `mseq_core` for standard platforms.
//! - For embedded development (e.g., STM32F4), see the [`mseq_embedded`](https://github.com/MF-Room/mseq_embedded) repository, which provides an STM32-specific integration of `mseq_core`.
//!
//! ## Crate Features
//!
//! - No `std` dependency (`#![no_std]` compatible).
//! - Modular and extensible design.
//! - Reusable across multiple platforms.
extern crate alloc;
pub use Conductor;
pub use *;
pub use *;
pub use *;
pub use MidiOut;
pub use Note;
pub use *;