aether_midi/lib.rs
1//! Aether MIDI Engine
2//!
3//! Handles MIDI input from any connected keyboard or controller.
4//! Converts raw MIDI bytes into typed MidiEvent messages.
5//! Routes events to registered instruments via a lock-free channel.
6//!
7//! Supports:
8//! - Note On / Note Off with velocity
9//! - Pitch Bend (±2 semitones by default, configurable)
10//! - Aftertouch (channel and polyphonic)
11//! - Control Change (CC) — mod wheel, sustain pedal, expression, etc.
12//! - Program Change
13//! - Custom tuning tables (for non-Western instruments)
14
15pub mod engine;
16pub mod event;
17pub mod learn;
18pub mod mpe;
19pub mod router;
20pub mod smf;
21pub mod tuning;
22
23pub use engine::MidiEngine;
24pub use event::{MidiEvent, MidiEventKind};
25pub use learn::{MappingCurve, MidiLearn, MidiMapping};
26pub use mpe::{MpeConfig, MpeEngine, NoteExpression};
27pub use router::MidiRouter;
28pub use smf::{Division, MidiFile, MidiFormat, MidiTrack, TimedMidiEvent};
29pub use tuning::TuningTable;