Humster Music Library
Humster is the starting point for a Rust library that explores building a modern music toolkit capable of working with both MIDI files and raw audio signals. The long-term goal is to make it easy to prototype ideas such as algorithmic composition, live performance tools, and audio analysis within the same crate.
Vision
- Unified pipeline – Parse MIDI sequences and stream audio buffers through a consistent set of traits so creative tools can mix symbolic and audio data.
- Extensible – Encourage experimentation with pluggable processors (effects, transformations, analyzers) that can be chained together.
Installation
Add humster to your Cargo.toml:
[]
= "0.0.2"
Or use cargo add:
Example
use ;
;
This sketch keeps the API surface small while proving out key ideas:
- One crate manages both MIDI and signal data.
- Processors can be reused between offline rendering and realtime contexts.
- Users can chain processors to build complex pipelines.
Current Status
The repository is currently under development.
Roadmap Ideas
- Integrate a MIDI parser (e.g.,
midly) and wrap it in ergonomic types. - Add basic DSP utilities for resampling, filtering, and FFT analysis.
- Provide bidirectional conversions between MIDI tracks and synthesized audio.
- Expose bindings for live control (e.g., MIDI controller input, OSC).
- Ship a command-line tool that uses the library to batch process files.
Contributions, feature ideas, and experiments are welcome—this README will evolve as the implementation takes shape.