private void OpenPianoRoll(OpenFileDialog browseDialog) { MIDIParser midiParse = new MIDIParser(File.ReadAllBytes(browseDialog.FileName)); midiParse.fileName = browseDialog.SafeFileName; midiParse.ParseFile(); NoteParser noteParse = new NoteParser(midiParse); noteParse.ParseEvents(); if (pianoRoll == null) { pianoRoll = new PianoRollView(midiParse, noteParse); cntPianoRoll.DataContext = pianoRoll; } else { pianoRoll.Reset(midiParse, noteParse); } }
public NoteParser(MIDIParser midiParseIn) { midiEvents = midiParseIn.midiEvents; notes = new List <Note>(); }
// Calculates the BPM from a byte array. private float CalculateBPM(byte[] tempoArray) { uint tempo = MIDIParser.FixedLengthArrayToUInt(tempoArray); return(MICROSECONDS_PER_MINUTE / tempo); }