mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 16:24:57 +01:00
A few fixes to interpolation of MIDI controller data. Don't interpolate
when writing these data back to a source, otherwise surprising new interpolated points appear in MIDI automation. Similarly don't interpolate when reading the model during MIDI stretch. Fix handling of interpolation state; controllers that have been set by the user to use a different interpolation style are noted in the <Source> tag of the session file and this state is sprayed around to MidiModel and the GUI as necessary. git-svn-id: svn://localhost/ardour2/branches/3.0@7409 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
b75977920e
commit
593b421180
22 changed files with 285 additions and 96 deletions
|
|
@ -954,10 +954,11 @@ ControlList::rt_safe_earliest_event(double start, double end, double& x, double&
|
|||
bool
|
||||
ControlList::rt_safe_earliest_event_unlocked(double start, double end, double& x, double& y, bool inclusive) const
|
||||
{
|
||||
if (_interpolation == Discrete)
|
||||
if (_interpolation == Discrete) {
|
||||
return rt_safe_earliest_event_discrete_unlocked(start, end, x, y, inclusive);
|
||||
else
|
||||
} else {
|
||||
return rt_safe_earliest_event_linear_unlocked(start, end, x, y, inclusive);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1356,5 +1357,16 @@ ControlList::move_ranges (const list< RangeMove<double> >& movements)
|
|||
maybe_signal_changed ();
|
||||
}
|
||||
|
||||
void
|
||||
ControlList::set_interpolation (InterpolationStyle s)
|
||||
{
|
||||
if (_interpolation == s) {
|
||||
return;
|
||||
}
|
||||
|
||||
_interpolation = s;
|
||||
InterpolationChanged (s); /* EMIT SIGNAL */
|
||||
}
|
||||
|
||||
} // namespace Evoral
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue