internal unsafe List <MidiInEvent> GetMidiEvents(uint nframes) { List <MidiInEvent> midiEvents = new List <MidiInEvent> (); IntPtr portBuffer = (IntPtr)PortApi.GetBuffer(_port, nframes); uint eventCount = MidiApi.GetEventCount(portBuffer); for (uint i = 0; i < eventCount; i++) { UnsafeStructs.jack_midi_event_t inEvent; MidiApi.GetEvent(&inEvent, portBuffer, i); midiEvents.Add(new MidiInEvent(inEvent)); } return(midiEvents); }