diff options
Diffstat (limited to 'src/midifile.rs')
-rw-r--r-- | src/midifile.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/midifile.rs b/src/midifile.rs index 00e20f5..8210f70 100644 --- a/src/midifile.rs +++ b/src/midifile.rs @@ -137,6 +137,24 @@ fn write_track<W>(f: &mut W, trk: &MidiTrack) -> io::Result<()> where W: Write Ok(()) } +pub fn lint_tempo(trk: &MidiTrack) -> MidiTrack +{ + trk.iter().fold((f64::NAN, Vec::new()), |(last, mut t), e| { + match e.e + { + MidiEvent::MetaTempo(x) => { + if x != last + { + t.push(e.clone()); + (x, t) + } + else { (last , t) } + }, + _ => { t.push(e.clone()); (last, t) } + } + }).1 +} + pub fn lint_track(trk: &MidiTrack) -> bool { let mut ret = true; |