public override bool Render(RenderParams parentRp, RenderCanvas canvas) { if (!Active) { return(false); // skip if not active } RenderParams rp = new RenderParams(parentRp); AdaptRenderParams(rp); RenderChildren(rp, canvas); if (rp.Time >= 0 && rp.Time < Duration && _sig != null) { double s = _sig.Render(rp.Time); switch (_modif) { case Modifier.DSP_PARAM: if (_parentsDSP != null) { _parentsDSP.SetParameter(_paramNumber, s); } if (_parentsOsc != null) { _parentsOsc.SetParameter(_paramNumber, s); } break; case Modifier.NONE: break; case Modifier.AMPLITUDE: canvas.AmplMultiply *= s; break; case Modifier.AMPLITUDE_ADDITIVE: canvas.AmplMultiply += s; break; case Modifier.PAN: canvas.Pan += s; break; } return(true); } return(false); } // end method