reimplement RTMidiBuffer using a highly optimized data structure

Multimedia / Ardour - Paul Davis [linuxaudiosystems.com] - 2 November 2019 22:32 EDT

Reduces load time of Glass MIDI piece with 48k note events by about 35%. Improves data locality. Omits size for all 3 byte or less MIDI events, uses implicit size. No limit on size of sysex.

Relies on the fact that the data structure is always filled linearly in time, and never modified.

088e4bca5a reimplement RTMidiBuffer using a highly optimized data structure
libs/ardour/ardour/rt_midibuffer.h | 32 ++++++-
libs/ardour/disk_reader.cc | 1 +
libs/ardour/rt_midibuffer.cc | 176 +++++++++++++++++++++++++++++--------
3 files changed, 169 insertions(+), 40 deletions(-)

  • Share