Други, я тут что-то после нескольких попыток подзастрял - хочется понять структуру алгоритма искусственного RR (чтобы иметь возможность его реализовать в разных видах, не только в виде скрипта контакта, поэтому речь скорее об алгоритме, а не о конкретных строках скрипта).
Исходные условия: каждая следующая нажимаемая нота звучит на новом миди-канале. (чтобы питчбэнд одной ноты не мешал другой). Предположим, что это уже сделано и работает нормально.
Как я понимаю, алгоритм RR должен уметь следующее:
Отслеживать одинаковые ноты, даже если они следуют не подряд, а перемежаясь с другими нотами (например, в пассаже "до ми до фа до соль" нота до каждый раз должна быть разная, например, первый раз обычная, второй раз это должен быть ре-бемоль, опущенный на полтона, а в третий - си, поднятая на полтона.)
кстати, пример правильной работы RR (правда, не фейкового, а обычного) это Fluid Shorts от Performance samples. Там ноты помнят, что им надо меняться, даже если их играть вперемешку с другими.
На практике всё усложняется, как только всё начинает играться разными миди-каналами.. получается, что патч долен отслеживать одинаковость как глобально, так и для каждой ноты отдельно.
Может тут нужен просто двумерный массив "note, pitch", в котором pitch - это три перечисленных варианта исполнения ноты? чтобы перед воспроизведением любой ноты сверяться с этим массивом, какой из вариантов звучал ранее и использовать другой?
Вдруг есть уже где-то готовые рецепты, чтобы не изобретать с нуля этот странный велосипед?
(и, возможно, правильнее разместить эту тему в каком-то другом разделе, не оркестровом? хотя, есть ощущение, что потребность в RR чаще всего именно в этом разделе востребована)
Исходные условия: каждая следующая нажимаемая нота звучит на новом миди-канале. (чтобы питчбэнд одной ноты не мешал другой). Предположим, что это уже сделано и работает нормально.
Как я понимаю, алгоритм RR должен уметь следующее:
Отслеживать одинаковые ноты, даже если они следуют не подряд, а перемежаясь с другими нотами (например, в пассаже "до ми до фа до соль" нота до каждый раз должна быть разная, например, первый раз обычная, второй раз это должен быть ре-бемоль, опущенный на полтона, а в третий - си, поднятая на полтона.)
кстати, пример правильной работы RR (правда, не фейкового, а обычного) это Fluid Shorts от Performance samples. Там ноты помнят, что им надо меняться, даже если их играть вперемешку с другими.
На практике всё усложняется, как только всё начинает играться разными миди-каналами.. получается, что патч долен отслеживать одинаковость как глобально, так и для каждой ноты отдельно.
Может тут нужен просто двумерный массив "note, pitch", в котором pitch - это три перечисленных варианта исполнения ноты? чтобы перед воспроизведением любой ноты сверяться с этим массивом, какой из вариантов звучал ранее и использовать другой?
Вдруг есть уже где-то готовые рецепты, чтобы не изобретать с нуля этот странный велосипед?
(и, возможно, правильнее разместить эту тему в каком-то другом разделе, не оркестровом? хотя, есть ощущение, что потребность в RR чаще всего именно в этом разделе востребована)
Последнее редактирование: