mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-24 22:27:36 +01:00
prevent double declicks (click after RecStop)
If there's port-latency > period-size, there is a split cycle with (this_event->action_frame - _transport_frame). Yet Session::check_declick_out() keeps PendingDeclickOut if StopPendingCapture is set. The route declick’ed twice: Once with the period-size and one with the remaining frames, which resulted in a click.
This commit is contained in:
parent
a306968283
commit
6ba555c2f5
2 changed files with 13 additions and 0 deletions
|
|
@ -506,6 +506,7 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
|
|||
framecnt_t _signal_latency_at_amp_position;
|
||||
framecnt_t _initial_delay;
|
||||
framecnt_t _roll_delay;
|
||||
bool _declicked_silent;
|
||||
|
||||
ProcessorList _processors;
|
||||
mutable Glib::Threads::RWLock _processor_lock;
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ Route::Route (Session& sess, string name, Flag flg, DataType default_type)
|
|||
, _signal_latency_at_amp_position (0)
|
||||
, _initial_delay (0)
|
||||
, _roll_delay (0)
|
||||
, _declicked_silent (true)
|
||||
, _flags (flg)
|
||||
, _pending_declick (true)
|
||||
, _meter_point (MeterPostFader)
|
||||
|
|
@ -465,7 +466,18 @@ Route::process_output_buffers (BufferSet& bufs,
|
|||
GLOBAL DECLICK (for transport changes etc.)
|
||||
----------------------------------------------------------------------------------------- */
|
||||
|
||||
if (_declickable && _declicked_silent && declick <= 0) {
|
||||
bufs.silence (nframes, 0);
|
||||
}
|
||||
|
||||
maybe_declick (bufs, nframes, declick);
|
||||
|
||||
if (declick < 0) {
|
||||
_declicked_silent = true;
|
||||
}
|
||||
else if (declick > 0) {
|
||||
_declicked_silent = false;
|
||||
}
|
||||
_pending_declick = 0;
|
||||
|
||||
/* -------------------------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue