midipolyaftertouch是否在csound中断裂?

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

我对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 beta,因为那是该版本的Cabbage附带的。

midi csound cabbage
1个回答
0
投票

根据文档,还有另一个实际上可以运行的操作码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设备”。

除非您仅使用D0作为键/注释来尝试,否则本文档中midipolyaftertouch的代码示例将无法工作;在这里插入有关坏钟的笑话。有趣的是,文档是由该操作码的源代码作者编写的,因此,这并不是别人误解该代码的情况...

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