diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index e989671b0b..c50223f5a2 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -758,9 +758,18 @@ Session::process_audition (pframes_t nframes) SessionEvent* ev; boost::shared_ptr r = routes.reader (); - for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { - if (!(*i)->is_auditioner()) { - (*i)->silence (nframes); + boost::shared_ptr graph_chain = _graph_chain; + if (graph_chain) { + /* Ideally we'd use Session::rt_tasklist, since dependency is irrelevant. + * However the RTTaskList process threads have no ProcessThread buffers + * nor a SessioEvent thread_pool. + */ + _process_graph->silence_routes (graph_chain, nframes); + } else { + for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { + if (!(*i)->is_auditioner()) { + (*i)->silence (nframes); + } } }