Как создать Midi Track с использованием C # Code, как я могу сделать так, чтобы звучание воспроизводилось, а не затухало? - PullRequest
3 голосов
/ 27 января 2011

Я создаю небольшое приложение для композитора MIDI, используя Stanford Library . Он почти завершен, за исключением небольшой проблемы: звук исчезает после команды NoteOn, но я хочу, чтобы ноты продолжали играть, пока я не отпущу кнопку.

Ответы [ 3 ]

4 голосов
/ 27 января 2011

С MIDI вы должны слышать, что нота продолжается до тех пор, пока вы не отправите команду NoteOff. Если вы слышите, как начинается нота, но затем она исчезает (не отправив сообщение NoteOff), возможно, канал настроен на инструмент, который естественным образом затухает сам по себе - например, звук маримбы или стального барабана.

1 голос
/ 27 января 2011

Итак, вы говорите, что когда вы играете ноту, она обычно затухает (как будто вы нажимаете клавишу пианино), и вы этого не хотите?

Это особенность синтезатора и не имеет никакого отношения к MIDI. Вам нужно будет выбрать патч, который не делает этого. Органные патчи должны работать нормально.

Если вместо этого вы говорите, что ваша заметка немедленно останавливается (как если бы вы нажали клавишу и сразу же отпустили), то у вас есть что-то, посылающее команду заметки или команду заметки с 0 скоростью. Убедитесь, что вы действительно отправляете 7-битные значения скорости, а что нет.

1 голос
/ 27 января 2011

Это относится к MIDI-устройству, к которому вы обращаетесь.Вы могли бы сказать ему, чтобы увеличить уровень поддержки огибающей через MIDI NRPN или SysEx, но это будет зависеть от устройства.Как правило, голос струны или пэда будет поддерживать высокий сустейн, в то время как звук пианино или другого ударного будет постепенно уменьшаться до нуля независимо от уровня сустейна.

...