Цитата Сообщение от DDp Посмотреть сообщение
"Fish and Chips" похрустывает на басах
На вскидку, не трассируя, думаю похрустывает не из за басов.
При программном масштабировании сэмпла используется раскрытый цикл на 256 итераций. к адресу прибавляется целая и дробная часть от коэффициента масштаба. И только по окончании 256 итреаций делается проверка на конец сэмпла и или на пересечение зацикливания. Что бы компенсировать 256 пропущенных проверок я в конце цикла делаю 512 байт копии начала цикла. Если цикл менее 512 байт то делаю несколько копий в этих 512 байтах. (если длинна цикла 64 байта то будет 8 копий) и так в каждом сэмпле. Это помогает от щелчков и треска, если целая часть масштаба менее 2. Если же масштаб больше 2, то проверка может улететь далеко за 512 байт и в буфер схватить случайные данные, которые дальше 512 байт лежат.
Ноты звучат высокие 4 - 5 октава и скорее всего масштаб там больше 2-х. Выхода два. увеличить память под копию до 1 кб или 2 кб. Или делать проверку чаще, не раз в 256 а раз в 128 итераций.
Я надеюсь на появление ДМА в НГС и тогда вопрос программного масштабирования и проверки конца цикла или сэмпла уйдет сам собой.