diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2014-10-15 11:09:00 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2014-10-15 11:09:00 -0500 |
commit | 7e764ea4051dce1f687cc9bdf92c67c110517600 (patch) | |
tree | 6d8e1ab73a9281f35fc17fac22622b3c86e2a3dd /libs/ardour/track.cc | |
parent | 8dc4187f1a3effbc15e77997b49d00e23b9f1e1a (diff) |
allow internal generators to make noise, even if we are not rolling, and using auto-input
Diffstat (limited to 'libs/ardour/track.cc')
-rw-r--r-- | libs/ardour/track.cc | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index 222c2d81ba..189b315e20 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -419,38 +419,30 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, bool be_silent; - if (_have_internal_generator) { - /* since the instrument has no input streams, - there is no reason to send any signal - into the route. - */ + MonitorState const s = monitoring_state (); + /* we are not rolling, so be silent even if we are monitoring disk, as there + will be no disk data coming in. + */ + switch (s) { + case MonitoringSilence: be_silent = true; - - } else { - - MonitorState const s = monitoring_state (); - /* we are not rolling, so be silent even if we are monitoring disk, as there - will be no disk data coming in. - */ - switch (s) { - case MonitoringSilence: - /* if there is an instrument, be_silent should always - 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; - } + 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); /* if have_internal_generator, or .. */ |