csound中的midipolyaftertouch是不是损坏?
Posted
技术标签:
【中文标题】csound中的midipolyaftertouch是不是损坏?【英文标题】:Is midipolyaftertouch broken in csound?csound中的midipolyaftertouch是否损坏? 【发布时间】:2020-02-15 07:07:01 【问题描述】:我对 midipolyaftertouch 操作码不太满意。基本上
kPea init 0.1
midipolyaftertouch kPea, 1, 0.1, 0.9
printk2 kPea
实际上并不响应复音触后消息。另一方面,手动编码的粗略等价物
kPea init 0.1
kstatus,kchan,kdata1,kdata2 midiin
if (kstatus==160 && kchan==1) then
kPea = kdata2 * 0.007
printk2 kPea
endif
工作正常。那么这是midipolyaftertouch
中的一个已知错误吗?除了手册中的那些,我找不到midipolyaftertouch
的任何用法示例,所以我猜几乎没有人使用它...顺便说一下aftouch
获取的通道不是每个音符的触后(压力),即aftouch
查询 kstatus == 208 (实际上确实有效,但当然不是每个音符)。区别见this。
我在 Windows 上的 Cabbage 2.3.0 中使用 Csound 6.13 测试版(因为那是 Cabbage 版本附带的)。
【问题讨论】:
【参考方案1】:根据文档,还有另一个操作码 polyaft
确实有效
kPea init 0.1
inote notnum ; note number
kPea polyaft inote, 0.1, 0.9
printk2 kPea
查看midipolyaftertouch
的C 源代码,实际上它的索引方式与polyaft
完全相同。所以基于我尝试过的:
kPea init 0.1
inote notnum ; note number
midipolyaftertouch kPea, inote, 0.1, 0.9
printk2 kPea
这实际上也有效。
在 MIDI API 行话中,“MIDI 控制器 [编号]”(通常)means 键/音符 [编号]...不像在 DAW 世界中 one 使用例如“多个 MIDI 控制器”表示多个键盘,而不是同一个键盘的多个键...此外,Csound 具有后一种/DAW 意义上的多个控制器的概念,由 -M 启动开关选择,尽管 calls 他们“MIDI 设备”。
文档中midipolyaftertouch
的代码示例可能无法工作,除非您只是尝试使用 D0 作为键/注释;在这里插入关于坏时钟的笑话。有趣的是,文档是由该操作码的源代码作者编写的,所以这不是其他人误解代码的情况......
【讨论】:
以上是关于csound中的midipolyaftertouch是不是损坏?的主要内容,如果未能解决你的问题,请参考以下文章