예제 #1
0
func KarplusStrongNoise(ctx sound.Context, seed int64, length uint, cutoff, decay float64) (output chan float64) {
	input := ctx.Take(ctx.RandomNoise(seed), length, true)
	return KarplusStrong(ctx, input, length, cutoff, decay)
}
예제 #2
0
func KarplusStrongSaw(ctx sound.Context, frequency, cutoff, decay float64) (output chan float64) {
	delaySamples := uint((1.0 / frequency) * ctx.SampleRate)
	wave := ctx.Saw(ctx.Const(frequency))
	input := ctx.Take(wave, delaySamples, true)
	return KarplusStrong(ctx, input, delaySamples, cutoff, decay)
}