我读过 Lazzarini 的书,它说你可以声明这样的操作码:
opcode EnvOsc, a, aaiiij
amp,afr,iri,
xout a2
endop
但是如何声明一个函数呢?书上或谷歌上都没有
取决于您所说的“功能”是什么意思。 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 只是多态,因为不同类型可以具有相同的名称,即重载。但你不能只写一次正文。在这种情况下,您最好使用宏,例如上面从双极到单极的通用转换。