演奏一个音符时更改 csound 振荡器频率

Change csound oscillator frequency while playing one note

我在 CSoundUnity 的上下文中使用 CSound 来使用 Unity 构建合成器。 我希望有可能在播放期间更改一个准无限持续时间的音符的频率。不在音符之间。

Unity C#脚本和csound之间的通信是通过CSoundUnity“通道”实现的。

我在 csound-csd 文件中实现振荡器是这样的:

instr 1
 kfreq chnget "freq"
 iflg = p4
 asig oscils .7, kfreq, 0, iflg
 outs asig, asig
endin

这会导致语法错误,因为振荡器的参数 kfreq 只能更改 per note 而不是在正在播放,所以不能作为控制参数。

脚本以这种形式编译:

instr 1
 ifreq chnget "freq"
 iflg = p4
 asig oscils .7, ifreq, 0, iflg
 outs asig, asig
endin

但我希望可以在播放过程中改变频率。

有没有可能实现这个?

k-rate 的频道读数很好,您只需要使用不同的振荡器来接受 k-rate 频率变化。例如尝试 oscili 或 oscil3。