本文整理汇总了Golang中github.com/kierdavis/gosound/sound.Context.Silence方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.Silence方法的具体用法?Golang Context.Silence怎么用?Golang Context.Silence使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/kierdavis/gosound/sound.Context
的用法示例。
在下文中一共展示了Context.Silence方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: genBassArpeggio
func genBassArpeggio(ctx sound.Context, scale music.Scale, n int) (stream chan float64) {
var parts []chan float64
root := scale.Root
for i := 0; i < n; i++ {
note := scale.Root
nextNote(&scale, root)
if rand.Float64() < 0.05 {
part := ctx.TakeDuration(
ctx.Mul(
ctx.Const(note.Frequency()),
ctx.Add( // Add a slight vibrato effect
ctx.Mul(
ctx.Sine(ctx.Const(24)),
ctx.Const(0.01),
),
ctx.Const(1.0),
),
),
time.Second*3/8,
false,
)
parts = append(parts, part)
} else if rand.Float64() < 0.05 {
part1 := ctx.TakeDuration(
ctx.Const(note.Frequency()),
time.Second/8,
false,
)
part2 := ctx.TakeDuration(
ctx.Const(note.Frequency()),
time.Second/8,
false,
)
parts = append(parts, part1)
parts = append(parts, ctx.TakeDuration(ctx.Silence(), time.Second/8, false))
parts = append(parts, part2)
} else {
part := ctx.TakeDuration(
ctx.Const(note.Frequency()),
time.Second/8,
false,
)
parts = append(parts, part)
parts = append(parts, ctx.TakeDuration(ctx.Silence(), time.Second/4, false))
}
}
return ctx.Append(parts...)
}