Expand description
§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
Conductortrait to define your sequencer’s control logic. - Define one or more tracks by either:
§Platform Support
- For OS-based systems, use the
mseqcrate — a reference implementation ofmseq_corefor standard platforms. - For embedded development (e.g., STM32F4), see the
mseq_embeddedrepository, which provides an STM32-specific integration ofmseq_core.
§Crate Features
- No
stddependency (#![no_std]compatible). - Modular and extensible design.
- Reusable across multiple platforms.
Structs§
- Context
- An object of type
Contextis passed to the user’sConductorat each clock tick via theConductor::updatemethod. It provides a high-level interface to send system MIDI messages and modify system parameters. - Dete
Track - A deterministic track implementation.
- Midi
Controller - Provides a reusable MIDI interface and core logic across different platforms.
- Midi
Note - Note that can be sent through a MIDI message.
Enums§
- Instruction
- Represents instructions that can be interpreted and processed by the
MidiController. - Midi
Message - Represents a parsed MIDI instruction.
- Note
- Represents 1 note of the chromatic scale.
Traits§
- Conductor
- Entry point for user-defined sequencer behavior.
- MidiOut
- This trait is not intended to be implemented by user code.
- Track
- Abstraction for a sequencer track.
Functions§
- param_
value - Performs a linear conversion from
[0.0, 1.0]to [0, 127]. Ifvis smaller than0.0return 0. Ifvis greater than1.0return 127. The main purpose of this function is to be used with MIDI control changes (CC).
Type Aliases§
- Input
Queue - Inputs queue to process.