mumuse

Crates.iomumuse
lib.rsmumuse
version0.7.0
sourcesrc
created_at2022-01-08 16:35:48.906264
updated_at2022-02-06 13:01:15.076597
descriptionSmall music theory library written in Rust with MIDI capabilities.
homepage
repositoryhttps://github.com/alelouis/mumuse/
max_upload_size
id510342
size1,005,853
Alexis LOUIS (alelouis)

documentation

https://docs.rs/mumuse/latest/mumuse/

README

mumuse

build license doc.rs crates.io rustc

A Rust small music theory library, featuring:

  • Elementary operations with notes and chords
  • Building chords from scales degrees
  • Scale modes
  • Sequence building with streams
  • Midi real time playing of streams

This is still in active development, things will brake.

  let mut stream: Stream = Stream::new();
  let mut conn_out = midi::get_output_connection("Virtual Midi Bus 1".to_string());
  
  // Constructing event stream
  let notes = ["A3", "B3", "C4", "D4", "A3", "B3", "C4", "D4"];
  let mut time = Time::new(1, 4, 1);
  let duration = Duration::new(16, 1); // 16th notes

  for n in notes {
      let note = Note::try_from(n).unwrap();
      stream.add_note(note, time, duration);
      time = time + duration;
  }

  // Real time play of events
  stream.play(&mut conn_out, 120.0, 4); // midi_connection, beat per minute, beats per bar

How to use

Add mumuse lib crate to your Cargo.toml file.

mumuse = "version"

Browse the examples/ folder in order to see capabilities of the library.
Also, you can check the documentation.

Commit count: 100

cargo fmt