svofski, вот что подумал - по этой табличке у нас никогда не будет звучать громкость 14, 13, 11, 9 и 7.
В итоге сделал в программе пересчёт по такой формуле:Код:15 15 14 12 13 10 12 8 11 6 10 5 9 4 8 3 7 3 6 2 5 2 4 1 3 1 2 1 1 0 0 0
Получаются следующие значения:Код:new_volume = round ( exp ( volume / 45.4 ) - 1 )
Они соответствуют значениям из предыдущей таблицы, но только теперь нет "выпадений" на всём диапазоне от 0 до 127.Код:127 15 126 15 125 15 124 14 123 14 122 14 121 13 120 13 119 13 118 12 117 12 116 12 115 12 114 11 113 11 112 11 111 11 110 10 109 10 108 10 107 10 106 9 105 9 104 9 103 9 102 8 101 8 100 8 99 8 98 8 97 7 96 7 95 7 94 7 93 7 92 7 91 6 90 6 89 6 88 6 87 6 86 6 85 6 84 5 83 5 82 5 81 5 80 5 79 5 78 5 77 4 76 4 75 4 74 4 73 4 72 4 71 4 70 4 69 4 68 3 67 3 66 3 65 3 64 3 63 3 62 3 61 3 60 3 59 3 58 3 57 3 56 2 55 2 54 2 53 2 52 2 51 2 50 2 49 2 48 2 47 2 46 2 45 2 44 2 43 2 42 2 41 1 40 1 39 1 38 1 37 1 36 1 35 1 34 1 33 1 32 1 31 1 30 1 29 1 28 1 27 1 26 1 25 1 24 1 23 1 22 1 21 1 20 1 19 1 18 0 17 0 16 0 15 0 14 0 13 0 12 0 11 0 10 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 0
Выложил записи с "новым" звучанием.
ссылка
SegaBoy, действительно. Я исходил из того, что уровней изначально 16, а их же и правда 128. В Wicked Child стало хорошо в местах, где начинают рвать баян.
Больше игр нет
svofski, значит на том и порешим? Аппаратная громкость линейная, а программная - по экспоненте. Оставляем простое схемное решение?
SegaBoy, на мой вкус в ретро-панке чем проще схема, тем лучше.
Вот генератор шума в ПК8002 меня впечатлил.
Больше игр нет
SegaBoy, основные идеи описаны здесь [занудная статья на википедии]
tl;dr это способ получить псевдослучайную последовательность из сдвигового регистра и нескольких неполных сумматоров (исключающих или). В лучшем случае последовательность повторяется с периодом 2^n-1, то есть например для 16-битного регистра это 65535. В случае этой конкретной схемы я не уверен, что это так.
Больше игр нет
svofski, вроде всё понятно - щас сделаем = ))
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)