13
0

allow internal generators to make noise, even if we are not rolling, and using auto-input

This commit is contained in:
Ben Loftis 2014-10-15 11:09:00 -05:00
parent 8dc4187f1a
commit 7e764ea405
2 changed files with 28 additions and 31 deletions

View File

@ -450,8 +450,13 @@ Route::process_output_buffers (BufferSet& bufs,
on a transition between monitoring states we get a de-clicking gain on a transition between monitoring states we get a de-clicking gain
change in the _main_outs delivery. change in the _main_outs delivery.
*/ */
bool silence = monitoring_state () == MonitoringSilence;
_main_outs->no_outs_cuz_we_no_monitor (monitoring_state () == MonitoringSilence); //but we override this in the case where we have an internal generator
if ( _have_internal_generator )
silence = false;
_main_outs->no_outs_cuz_we_no_monitor (silence);
/* ------------------------------------------------------------------------------------------- /* -------------------------------------------------------------------------------------------
GLOBAL DECLICK (for transport changes etc.) GLOBAL DECLICK (for transport changes etc.)

View File

@ -419,38 +419,30 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
bool be_silent; bool be_silent;
if (_have_internal_generator) { MonitorState const s = monitoring_state ();
/* since the instrument has no input streams, /* we are not rolling, so be silent even if we are monitoring disk, as there
there is no reason to send any signal will be no disk data coming in.
into the route. */
*/ switch (s) {
case MonitoringSilence:
be_silent = true; be_silent = true;
break;
} else { case MonitoringDisk:
be_silent = true;
MonitorState const s = monitoring_state (); break;
/* we are not rolling, so be silent even if we are monitoring disk, as there case MonitoringInput:
will be no disk data coming in. be_silent = false;
*/ break;
switch (s) { default:
case MonitoringSilence: be_silent = false;
/* if there is an instrument, be_silent should always break;
be false
*/
be_silent = (the_instrument_unlocked() == 0);
break;
case MonitoringDisk:
be_silent = true;
break;
case MonitoringInput:
be_silent = false;
break;
default:
be_silent = false;
break;
}
} }
//if we have an internal generator, let it play regardless of monitoring state
if (_have_internal_generator) {
be_silent = false;
}
_amp->apply_gain_automation (false); _amp->apply_gain_automation (false);
/* if have_internal_generator, or .. */ /* if have_internal_generator, or .. */