From 42a23312a0621b762c6a0d138915ba02065db241 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 24 Sep 2010 14:05:20 +0000 Subject: Slightly hacky but functional fix for large quantities of MIDI output when interpolating sharp changes in controller value. Fixes #3476. git-svn-id: svn://localhost/ardour2/branches/3.0@7840 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/evoral/src/Sequence.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'libs/evoral') diff --git a/libs/evoral/src/Sequence.cpp b/libs/evoral/src/Sequence.cpp index 36758c3274..b6a7dceca1 100644 --- a/libs/evoral/src/Sequence.cpp +++ b/libs/evoral/src/Sequence.cpp @@ -39,6 +39,16 @@ using namespace std; using namespace PBD; +/** Minimum time between MIDI outputs from a single controller, + expressed in beats. This is to limit the rate at which MIDI messages + are generated, particularly for quickly-changing controllers which + are being interpolated. + + XXX: This is a hack. The time should probably be expressed in + seconds rather than beats, and should be configurable etc. etc. +*/ +static double const time_between_controller_outputs = 1.0 / 256; + namespace Evoral { // Read iterator (const_iterator) @@ -253,9 +263,9 @@ Sequence