summaryrefslogtreecommitdiff
path: root/libs/ardour/track.cc
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2014-10-15 11:09:00 -0500
committerBen Loftis <ben@harrisonconsoles.com>2014-10-15 11:09:00 -0500
commit7e764ea4051dce1f687cc9bdf92c67c110517600 (patch)
tree6d8e1ab73a9281f35fc17fac22622b3c86e2a3dd /libs/ardour/track.cc
parent8dc4187f1a3effbc15e77997b49d00e23b9f1e1a (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.cc52
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 .. */