Midipolyaftertouch сломан в csound? - PullRequest
       21

Midipolyaftertouch сломан в csound?

0 голосов
/ 15 февраля 2020

Мне не очень повезло с кодом операции midipolyaftertouch. В основном

kPea init 0.1
midipolyaftertouch kPea, 1, 0.1, 0.9
printk2 kPea

фактически не отвечает на полифонические c сообщения послекасания. С другой стороны, ручной кодированный грубый эквивалент

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 .

Я использую бета-версию Csound версии 6.13 изнутри Cabbage 2.3.0 на Windows (потому что это то, что поставляется с этой версией Cabbage).

1 Ответ

0 голосов
/ 15 февраля 2020

Есть еще один код операции, а именно polyaft, который действительно работает, следуя документации

kPea init 0.1
inote   notnum          ; note number
kPea    polyaft inote, 0.1, 0.9
printk2 kPea

Если посмотреть на источник C для midipolyaftertouch, он фактически проиндексирован точно так же, как и для polyaft , Исходя из этого, я попытался:

kPea init 0.1
inote   notnum          ; note number
midipolyaftertouch kPea, inote, 0.1, 0.9
printk2 kPea

, и это на самом деле тоже работает.

На жаргоне MIDI API «MIDI-контроллер [число]» (обычно) означает ключ / примечание [число] ... в отличие от мира D AWs, где один использует, например, «несколько MIDI-контроллеров» для обозначения нескольких клавиатур, а не нескольких клавиш одной и той же клавиатуры ... Кроме того, Csound имеет понятие нескольких контроллеров в последнем / DAW смысле, выбранном переключателем запуска -M, хотя он называет их «MIDI-устройствами».

Пример кода для midipolyaftertouch из документации не может работать, если только вы не попробуете это с D0 в качестве ключа / примечания; Вставьте шутку о сломанных часах здесь. Интересно, что документация была написана автором исходного кода для этого кода операции, так что это не был случай, когда кто-то еще неправильно понял код ...

...