Crate a binary file

master
D4VID 3 months ago
parent 3c8256faf7
commit 46c0e16338

1
.gitignore vendored

@ -1 +1,2 @@
/target
*.bin

@ -1,4 +1,4 @@
use std::fs;
use std::{fs, io::{stdout, Write}};
use midly::Smf;
@ -18,17 +18,17 @@ fn main() {
let bytes = fs::read(FILENAME).expect("Failed to read input file!");
let smf = Smf::parse(&bytes).unwrap();
let mut stdout = stdout();
let mut current_on = [false; 32];
let track = &smf.tracks[0];
print!("const DATA: &[u32] = &[");
for (_, event) in track.iter().enumerate() {
// println!("{}", event.delta);
let mut delta = event.delta.as_int();
while delta >= 96 {
delta -= 96;
let word = get_u32(&current_on);
print!("0x{:x},", word);
stdout.write(&word.to_le_bytes()).ok();
}
match event.kind {
midly::TrackEventKind::Midi { channel: _, message } => match message {
@ -44,17 +44,9 @@ fn main() {
current_on[index as usize] = true;
}
}
_ => {
// println!("event {}: {:?}", i, message);
}
_ => {}
},
_ => {
// println!("event {}: {:?}", i, event);
}
_ => {}
}
}
println!("];");
// for (i, track) in smf.tracks.iter().enumerate() {
// println!("track {} has {} events", i, track.len());
// }
}

Loading…
Cancel
Save