1use 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_in_ram("D:/Midis/tau2.5.9.mid", None).unwrap();
8 println!("Parsing midi...");
9 let now = Instant::now();
10 let mut poly: u64 = 0;
11 let merged = file.iter_all_tracks().merge_all().unwrap_items();
12
13 let mut max_poly: u64 = 0;
14
15 for e in merged {
16 match *e {
17 Event::NoteOn(_) => {
18 poly += 1;
19 if poly > max_poly {
20 max_poly = poly;
21 }
22 }
23 Event::NoteOff(_) => poly -= 1,
24 _ => {}
25 }
26 }
27
28 println!("Finished parsing midi, found {max_poly} polyphony");
29 println!("Elapsed {:?}", now.elapsed());
30}