Crate a binary file

master
D4VID 3 months ago
parent 3c8256faf7
commit 46c0e16338

1
.gitignore vendored

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

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