bbx_midi/
lib.rs

1//! # BBX MIDI
2//!
3//! MIDI message parsing and streaming utilities.
4//!
5//! This crate provides:
6//! - [`MidiMessage`] - Parsed MIDI message with helper methods
7//! - [`MidiMessageStatus`] - Message type enumeration
8//! - [`MidiEvent`] - MIDI message with sample-accurate timing for audio processing
9//! - [`buffer`] - Lock-free MIDI buffer for thread-safe communication
10//! - [`stream::MidiInputStream`] - Real-time MIDI input via `midir` (requires `streaming` feature)
11//!
12//! ## Features
13//!
14//! - `streaming` - Enables real-time MIDI input via the `midir` crate
15//!
16//! ## FFI Compatibility
17//!
18//! [`MidiMessage`], [`MidiMessageStatus`], and [`MidiEvent`] use `#[repr(C)]` for C FFI compatibility.
19
20pub mod buffer;
21pub mod message;
22
23#[cfg(feature = "streaming")]
24pub mod stream;
25
26pub use buffer::{MidiBufferConsumer, MidiBufferProducer, midi_buffer};
27pub use message::{MidiEvent, MidiMessage, MidiMessageStatus};