Skip to main content

Crate mkmidilibrary

Crate mkmidilibrary 

Source
Expand description

MKMidiLibrary - A Rust library for music scoring and MIDI

This library provides comprehensive support for:

  • Music representation (notes, chords, durations, pitches)
  • MIDI file I/O (Standard MIDI File format)
  • Real-time MIDI input/output
  • Score-MIDI conversion

§Example

use mkmidilibrary::core::{Note, Pitch, Duration, Chord};
use mkmidilibrary::midi::MidiFile;

// Create a note
let pitch = Pitch::new("C4").unwrap();
let duration = Duration::quarter();
let note = Note::new(pitch, duration);

// Create a chord
let chord = Chord::major_triad(Pitch::new("C4").unwrap());

// Create a new MIDI file
let midi = MidiFile::new();

Re-exports§

pub use core::Chord;
pub use core::Duration;
pub use core::Interval;
pub use core::Note;
pub use core::Pitch;
pub use core::Rest;
pub use midi::MidiEvent;
pub use midi::MidiFile;
pub use midi::MidiMessage;
pub use midi::MidiTrack;
pub use notation::Clef;
pub use notation::Dynamics;
pub use notation::KeySignature;
pub use notation::Tempo;
pub use notation::TimeSignature;
pub use stream::Measure;
pub use stream::Part;
pub use stream::Score;
pub use stream::Stream;
pub use stream::Voice;
pub use realtime::MidiInput;
pub use realtime::MidiOutput;
pub use realtime::MidiPort;
pub use render::RenderConfig;
pub use render::ScoreElement;
pub use render::ScoreRenderer;

Modules§

analysis
Music analysis tools
core
Core music primitives
midi
MIDI file I/O and message types
notation
Musical notation elements
prelude
Prelude module for convenient imports
realtime
Real-time MIDI I/O
render
Score rendering module
stream
Stream hierarchy for music containers