Fix MIDI Automation interpolation options

This commit is contained in:
Robin Gareus
2017-10-02 19:43:55 +02:00
parent 3f48d00081
commit 86d3735ea8

View File

@@ -1177,10 +1177,18 @@ AutomationLine::view_to_model_coord_y (double& y) const
{
if (alist->default_interpolation () != alist->interpolation()) {
switch (alist->interpolation()) {
case AutomationList::Discrete:
/* toggles and MIDI only -- see is_stepped() */
assert (alist->default_interpolation () == AutomationList::Linear);
break;
case AutomationList::Linear:
y = y * (_desc.upper - _desc.lower) + _desc.lower;
return;
default:
/* types that default to linear, can't be use
* Logarithmic or Exponential interpolation.
* "Curved" is invalid for automation (only x-fads)
*/
assert (0);
break;
}
@@ -1211,10 +1219,18 @@ AutomationLine::model_to_view_coord_y (double& y) const
{
if (alist->default_interpolation () != alist->interpolation()) {
switch (alist->interpolation()) {
case AutomationList::Discrete:
/* toggles and MIDI only -- see is_stepped */
assert (alist->default_interpolation () == AutomationList::Linear);
break;
case AutomationList::Linear:
y = (y - _desc.lower) / (_desc.upper - _desc.lower);
return;
default:
/* types that default to linear, can't be use
* Logarithmic or Exponential interpolation.
* "Curved" is invalid for automation (only x-fads)
*/
assert (0);
break;
}