mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-23 23:17:46 +01:00
align internal sends using delaylines
This commit is contained in:
parent
8ba99446ef
commit
d59eaca690
1 changed files with 10 additions and 0 deletions
|
|
@ -509,6 +509,8 @@ Route::process_output_buffers (BufferSet& bufs,
|
|||
/* set this to be true if the meter will already have been ::run() earlier */
|
||||
bool const meter_already_run = metering_state() == MeteringInput;
|
||||
|
||||
framecnt_t latency = 0;
|
||||
|
||||
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
|
||||
|
||||
if (meter_already_run && boost::dynamic_pointer_cast<PeakMeter> (*i)) {
|
||||
|
|
@ -534,8 +536,16 @@ Route::process_output_buffers (BufferSet& bufs,
|
|||
do we catch route != active somewhere higher?
|
||||
*/
|
||||
|
||||
if (boost::dynamic_pointer_cast<Send>(*i) != 0) {
|
||||
boost::dynamic_pointer_cast<Send>(*i)->set_delay_in(_signal_latency - latency);
|
||||
}
|
||||
|
||||
(*i)->run (bufs, start_frame, end_frame, nframes, *i != _processors.back());
|
||||
bufs.set_count ((*i)->output_streams());
|
||||
|
||||
if ((*i)->active ()) {
|
||||
latency += (*i)->signal_latency ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue