mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-21 14:16:31 +01:00
This went unnoticed because: VCA gain automation was always applied (regardless of automation state) but when it was not playing master_ratio() factored it out again (per block).
This commit is contained in:
parent
b34f2e2c38
commit
fdb3df7786
1 changed files with 5 additions and 2 deletions
|
|
@ -128,7 +128,8 @@ bool
|
||||||
SlavableAutomationControl::masters_curve_multiply (framepos_t start, framepos_t end, float* vec, framecnt_t veclen) const
|
SlavableAutomationControl::masters_curve_multiply (framepos_t start, framepos_t end, float* vec, framecnt_t veclen) const
|
||||||
{
|
{
|
||||||
gain_t* scratch = _session.scratch_automation_buffer ();
|
gain_t* scratch = _session.scratch_automation_buffer ();
|
||||||
bool rv = list()->curve().rt_safe_get_vector (start, end, scratch, veclen);
|
bool from_list = _list && boost::dynamic_pointer_cast<AutomationList>(_list)->automation_playback();
|
||||||
|
bool rv = from_list && list()->curve().rt_safe_get_vector (start, end, scratch, veclen);
|
||||||
if (rv) {
|
if (rv) {
|
||||||
for (framecnt_t i = 0; i < veclen; ++i) {
|
for (framecnt_t i = 0; i < veclen; ++i) {
|
||||||
vec[i] *= scratch[i];
|
vec[i] *= scratch[i];
|
||||||
|
|
@ -145,7 +146,9 @@ SlavableAutomationControl::masters_curve_multiply (framepos_t start, framepos_t
|
||||||
= boost::dynamic_pointer_cast<SlavableAutomationControl>(mr->second.master());
|
= boost::dynamic_pointer_cast<SlavableAutomationControl>(mr->second.master());
|
||||||
assert (sc);
|
assert (sc);
|
||||||
rv |= sc->masters_curve_multiply (start, end, vec, veclen);
|
rv |= sc->masters_curve_multiply (start, end, vec, veclen);
|
||||||
apply_gain_to_buffer (vec, veclen, mr->second.master_ratio ());
|
if (mr->second.val_master () != 0) {
|
||||||
|
apply_gain_to_buffer (vec, veclen, 1.f / mr->second.val_master ());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue