如何在 CSound 中创建函数?

问题描述 投票:0回答:1

我读过 Lazzarini 的书,它说你可以声明这样的操作码:

opcode EnvOsc, a, aaiiij
  amp,afr,iri,
  xout a2
endop

但是如何声明一个函数呢?书上或谷歌上都没有

function csound
1个回答
0
投票

取决于您所说的“功能”是什么意思。 Csound 允许您使用操作码,包括函数符号中的 UDO,但这主要是语法糖。例如,您可以写:

kv = b2u:k(kv)
av = b2u:a(av)

对于 UDO 以通常的方式定义,例如

opcode b2u, a,a
    ain xin
    ain = 0.5 * ain + 0.5
    xout ain
endop

opcode b2u, k,k
    kin xin
    kin = 0.5 * kin + 0.5
    xout kin
endop

唉,UDO 只是多态,因为不同类型可以具有相同的名称,即重载。但你不能只写一次正文。在这种情况下,您最好使用宏,例如上面从双极到单极的通用转换。

© www.soinside.com 2019 - 2024. All rights reserved.