func KarplusStrongTriangle(ctx sound.Context, frequency, cutoff, decay float64) (output chan float64) { delaySamples := uint((1.0 / frequency) * ctx.SampleRate) wave := ctx.Triangle(ctx.Const(frequency)) input := ctx.Take(wave, delaySamples, true) return KarplusStrong(ctx, input, delaySamples, cutoff, decay) }