rem: if (AUDIO_IO_DEVICE::is_realtime_object((*outputs_repp)[n]) != true) {
add: if (is_realtime_object((*outputs_repp)[n]) != true) {
context: void ECA_ENGINE::multitrack_start(void) {  // --  // prefill rt-output buffers before actually startin them  ecadebug->msg(ECA_DEBUG::system_objects, "(eca-engine) multitrack sync (" + kvu_numtostr(prefill_threshold_rep) + " loops)");  for(int n = 0; n < prefill_threshold_rep; n++) {      multitrack_sync();  }  DBC_CHECK(realtime_inputs_rep.size() > 0);  DBC_CHECK(realtime_outputs_rep.size() > 0);  // ---  // Start rt-inputs  for (unsigned int adev_sizet = 0; adev_sizet != realtime_inputs_rep.size(); adev_sizet++)    realtime_inputs_rep[adev_sizet]->start();  // --  // store time stamp when rt-inputs were started  gettimeofday(&impl_repp->multitrack_input_stamp_rep, NULL);    // --  // start rt-outputs  for (unsigned int adev_sizet = 0; adev_sizet != realtime_outputs_rep.size(); adev_sizet++)    realtime_outputs_rep[adev_sizet]->start();   struct timeval now;  gettimeofday(&now, NULL);  double time = now.tv_sec * 1000000.0 + now.tv_usec -    impl_repp->multitrack_input_stamp_rep.tv_sec * 1000000.0 - impl_repp->multitrack_input_stamp_rep.tv_usec;  long int sync_fix = static_cast<long>(time * csetup_repp->sample_rate() / 1000000.0);  std::cerr << "(eca-engine) sync fix is " << time << " usecs." << endl;  //  sync_fix -= prefill_threshold_rep * buffersize_rep;    // sync_fix = total_samples_recorded -   //            processed_recorded_samples,   //            calculated when playback_samples==0 (just started)  // ==> result: first byte written to non-rt outputs   //             was recorded exactly at 'now - sync_fix'    // this would be a serious problem  if (sync_fix < 0) {    std::cerr << "(eca-engine) Negative multitrack-sync "               << sync_fix               << "; problems with hardware? " << std::endl;  }  else if (sync_fix > 0) {    // write 'syncfix' samples of silence to nonrt outputs    for (size_t n = 0; n != outputs_repp->size(); n++) {      if (AUDIO_IO_DEVICE::is_realtime_object((*outputs_repp)[n]) != true) {	for(size_t m = 0; m != chains_repp->size(); m++) {	  if ((*chains_repp)[m]->connected_output() == static_cast<int>(n)) {	    cslots_rep[m].length_in_samples(sync_fix);	    cslots_rep[m].make_silent();	    (*outputs_repp)[n]->write_buffer(&(cslots_rep[m]));	    cslots_rep[m].length_in_samples(buffersize_rep);	    ecadebug->msg(ECA_DEBUG::system_objects, 			  "(eca-engine) sync fix: " + 			  kvu_numtostr(sync_fix) + 			  " for " +			  (*outputs_repp)[n]->label() + 			  ".");    	  }	}      }    }  }}