15 releases

0.3.4 Aug 4, 2022
0.3.3 Jun 30, 2022
0.3.1 Feb 13, 2022
0.3.0 May 12, 2021
0.2.5 Nov 5, 2020

#55 in Audio

Download history 14/week @ 2022-04-22 40/week @ 2022-04-29 90/week @ 2022-05-06 210/week @ 2022-05-13 42/week @ 2022-05-20 78/week @ 2022-05-27 112/week @ 2022-06-03 2/week @ 2022-06-10 4/week @ 2022-06-17 34/week @ 2022-06-24 42/week @ 2022-07-01 33/week @ 2022-07-08 17/week @ 2022-07-15 33/week @ 2022-07-22 31/week @ 2022-07-29 20/week @ 2022-08-05

101 downloads per month
Used in floww

GPL-2.0-or-later

98KB
2.5K SLoC

Apres

A MIDI library
Crates.io Crates.io GitHub

Installation

In Cargo.toml

[dependencies]
apres = "^0.2.6"

Usage Examples

Load a Song

use apres::MIDI;
Create a MIDI from a file
let midi = MIDI::from_path("/path/to/file.mid").ok().unwrap();

Create a new MIDI

use apres::MIDI;
// Create an empty MIDI file.
let midi = MIDI::new();

Creating a song

use apres::MIDI;
use apres::MIDIEvent::{NoteOn, NoteOff};
// Create an empty MIDI file.
let mut midi = MIDI::new();

// Using channel 0, press midi note 64 (Middle E) on the first track (0) at the first position (0 ticks)
midi.insert_event(0, 0, NoteOn(0, 64, 100));

// Still on channel 0, release midi note 64 (Middle E) on the first track (0) one beat later (120 ticks)
midi.push_event(0, 120, NoteOff(0, 64, 100));

// Save it to a file
midi.save("beep.mid");

No runtime deps