events_notes/
events_notes.rs1use std::time::Instant;
2
3use midi_toolkit::{events::Event, io::MIDIFile, prelude::*};
4
5pub fn main() {
6 println!("Opening midi...");
7 let file = MIDIFile::open("D:/Midis/tau2.5.9.mid", None).unwrap();
8 println!("Parsing midi...");
9 let now = Instant::now();
10 let mut nc: u64 = 0;
11 let merged = file.iter_all_tracks().merge_all().unwrap_items();
23
24 for e in merged {
25 if let Event::NoteOn(_) = *e {
26 nc += 1
27 }
28 let delta = e.delta;
29 if delta > 184467440737 {
30 dbg!(e);
31 }
32 }
33
34 println!("Finished parsing midi, found {nc} notes");
35 println!("Elapsed {:?}", now.elapsed());
36 println!(
37 "Notes/second {}",
38 (nc as f64 / now.elapsed().as_secs_f64()).round()
39 );
40}