- /* target gain has not changed, but is not unity */
- Amp::apply_simple_gain (bufs, nframes, tgain);
+ bufs.set_count (output_buffers().count ());
+
+ if (_role != Main) {
+
+ /* inserts, external and internal sends have
+ * automatable gain and the Amp::run() method has
+ * already been executed by the time we get here.
+ *
+ * XXX we do not expose the automatable gain for
+ * Inserts as of September 2015.
+ */
+
+ } else {
+
+ /* main outs have no automatable gain, the amp is just
+ * used for ramping gain changes caused by monitoring
+ * state changes.
+ */
+
+ _amp->set_gain (tgain, this);
+ _amp->run (bufs, 0, 0, nframes, false);
+
+ }
+
+ } else {
+ goto out;
+ }
+
+ // Speed quietning
+
+ if (fabs (_session.transport_speed()) > 1.5 && Config->get_quieten_at_speed ()) {
+ Amp::apply_simple_gain (bufs, nframes, speed_quietning, false);