AIMP Forum
AIMP for PC => Вопросы / Questions => Topic started by: Jin X on June 07, 2020, 17:37:39
-
Здравствуйте.
У меня чисто технический вопрос к разработчику :)
Какую формулу вы используете для преобразования уровня громкости (%) в коэффициент изменения (уменьшения) амплитуды?
Для логарифмического и обычного режима.
Если в логарифмическом используется регулировка по децибелам (условно: 100% = 0 дБ, 90% = -5 дБ, 80% = -10 дБ и т.д.), то какой уровень используется внизу (при почти 0%)?
Если в обычном (нелогарифмическом) используется нелинейная регулировка, то какая? Квадратичная, Степень log2(10)/2 или ещё какая-то?
-
Если в логарифмическом используется регулировка по децибелам (условно: 100% = 0 дБ, 90% = -5 дБ, 80% = -10 дБ и т.д.), то какой уровень используется внизу (при почти 0%)?
Нет, привязку к дБ я не использую - для преобразования множителя в dB используется 10-чный логарифм, а для логарифмической шкалы я использую натуральный.
Если в обычном (нелогарифмическом) используется нелинейная регулировка, то какая? Квадратичная, Степень log2(10)/2 или ещё какая-то?
Да все просто:
0% - множитель = 0
100% - множитель = 1
если переводить в дБ, то получится
-∞ и 0
-
для логарифмической шкалы я использую натуральный.
Понял. А какое значение принимаете за ноль? Ведь и в ln тоже от -∞ до 0 получается же.
Вы эту идею взяли откуда-то или сами придумали?
Как вам мысль добавить ещё квадратичную функцию? :)
Степень log2(10)/2 (это в районе 1,66) ближе всего к уху получается (двойное увеличение громкости при изменении на 10 дБ). Т.е. 50% – это половина от 100% по восприятию.
См: https://ru.wikipedia.org/wiki/Сон_(единица_громкости)
-
Понял. А какое значение принимаете за ноль? Ведь и в ln тоже от -∞ до 0 получается же.
Повторюсь, я не работаю с dB, я считаю множитель, для нуля он равен нулю
Вы эту идею взяли откуда-то или сами придумали?
Тут и придумывать особо нечего.
-
Повторюсь, я не работаю с dB, я считаю множитель, для нуля он равен нулю
А, ну то есть для 0% берёте ln(1), получается?
А для 100%? ln(e)?
Тут и придумывать особо нечего.
Я имею в виду, основана ли эта методика на каких-то законах звука?
-
А, ну то есть для 0% берёте ln(1), получается?
А для 100%? ln(e)?
для 0% берем 0. для 100% берем 1. Скейлим сигнал на этот коэффициент.
Я имею в виду, основана ли эта методика на каких-то законах звука?
Законах? Вы хотели сказать, исследованиях? Линейный регулятор сделан так же, как он сделан "везде". Логарифмический - использует формулу, которую принято использовать в графиках для логарифмических шкал. Тонкомпенсация основана на http://www.vegalab.ru/content/view/67/54/
-
Тонкомпенсация основана на http://www.vegalab.ru/content/view/67/54/
Спасибо, это интересно.
Но с логарифмом я всё же немного попристаю, т.к. мне хочется разобраться в этом вопросе.
для 0% берем 0. для 100% берем 1. Скейлим сигнал на этот коэффициент.
Логарифмический - использует формулу, которую принято использовать в графиках для логарифмических шкал.
Как логарифмическая шкала может начинаться с нуля? Её можно начать со значения 1, 10 или 0.00001, при этом она будет существенно отличаться во всех трёх случаях (если наверху будет одно и то же число).
Там же длина отрезка пропорциональна логарифму отношения величин на концах: ln(max/min), а тут min = 0.
Этим она, по сути от шкалы децибелов не сильно отличается (разве что основанием e вместо 10).
Т.е. за 0% никак 0 не возьмёшь же.
-
этом она будет существенно отличаться во всех трёх случаях (если наверху будет одно и то же число).
Там же длина отрезка пропорциональна логарифму отношения величин на концах: ln(max/min), а тут min = 0.
Этим она, по сути от шкалы децибелов не сильно отличается (разве что основанием e вместо 10).
Т.е. за 0% никак 0 не возьмёшь же.
Никто не мешает сдвинуть график логарифма на 1 вбок, чтобы 0 транслировался в 0.
-
Не суть важно по какому закону регулируется громкость: натуральный логарифм или десятичный, громкость мы устанавливаем на слух, а не по шкале вокруг ручки. Важно, чтоб она плавно (более медленно) нарастала на начальном участке в сравнении с серединой шкалы и выше.
В реальной аппаратуре никто над этими законами не задумывается, а просто применяют потенциометры группы "В".
-
Никто не мешает сдвинуть график логарифма на 1 вбок, чтобы 0 транслировался в 0.
Ну то есть, по сути регулятор такой же, как по децибелам.
Ведь неважно какое там основание, график ln(x) можно немного сжать по горизонтали, и он превратится в lg(x): x дБ = 10^(x/20) = e^(x/20*ln(10)) = коэффициент сжатия амплитуды.
https://www.desmos.com/calculator/qdazsbntqd
Важно, чтоб она плавно (более медленно) нарастала на начальном участке в сравнении с серединой шкалы и выше.
Более медленно на слух?
По идее, логарифмическая шкала должна быть более удобной в плане регулировки громкости, чем квадратичная (которая по восприятию должна звучать почти как линейное изменение громкости). На такой (лог) шкале, когда хочется сделать потише, этот уровень тишины легче подстроить под желаемый уровень. Т.е. разница громкости между 10 и 30% будет во столько же раз, во сколько раз разница между 80 и 100%.
-
Более медленно на слух?
От угла поворота или положения движка, ну и, как следствие, на слух.
(https://forum.datagor.ru/uploads/monthly_07_2011/post-7055-1312055244.jpg)
Немного теории можно здесь (https://datagor.ru/nachinajushhim/1810-harakteristika-rezistora-dlya-passivnogo-regulyatora-gromkosti.html) посмотреть, про сами резисторы можно не читать. На практике никакая точность в этой кривой не нужна, слушателю всё равно на какой отметке шкалы установится для него комфортная громкость, логарифмический регулятор в этом плане, ес-но, предпочтительней (на приведённой картинке красная кривая).
У меня, к примеру, усилитель вообще под столом стоит (для экономии места) и громкость регулирую на ощупь.
-
При линейной регуляции 50% это половина громкости, а при логарифмической это -50дБ?
-
При линейной регуляции 50% это половина громкости, а при логарифмической это -50дБ?
Нет, при логарифмической 50% становится ~8%.
А в дБ это как-то так:
1% = ~ -40дБ
10% = ~ -20дБ
50% = ~ -6дБ
100 = 0дБ
-
50% = ~ -6дБ
Это проценты линейной громкости? В линейной громкости разница 6дБ это разница громкости в два раза?
-
Это проценты линейной громкости? Разница 6дБ это разница громкости в два раза?
https://www.google.com/search?q=6+дБ (https://www.google.com/search?q=6+дБ)
-
https://www.google.com/search?q=6+дБ (https://www.google.com/search?q=6+дБ)
Спасибо, про напряжение и мощность я знаю, мне даже делали таблицу с точным рассчетом: https://cloud.mail.ru/public/c7Dt/nNRNYRuYd
Недавно услышал, что в два раза это 3дБ, и это ввело в ступор, всегда думал, что 6дБ.
Получается, что в линейной громкости 50% это -6дБ (в 2 раза тише), 25% это -12дБ (в 4 раза тише), 12% это ~-18дБ (в 8 раз тише)?
-
Недавно услышал, что в два раза это 3дБ
Думаю, речь шла про мощность, там -3 дБ это уменьшение мощности в ~2 раза
Получается, что в линейной громкости 50% это -6дБ (в 2 раза тише), 25% это -12дБ (в 4 раза тише), 12% это ~-18дБ (в 8 раз тише)?
да
-
Думаю, речь шла про мощность, там -3 дБ это уменьшение мощности в ~2 раза
Там был пост про шумоизоляцию и были перепутаны дБ и дБА (это, вроде бы, громксоть, которую показывает шумометр с поправкой на восприятие ухом). Хорошо бы увидеть логарифмическую шкалу громкости. UPD Вот этот график по ссылке из темы: https://datagor.ru/uploads/posts/2011-10/1319361917_krivaya-rezistorapok.gif
-
Хорошо бы увидеть логарифмическую шкалу громкости
Где? В АИМПе? В теме дан ответ на данный запрос
-
Для перевода в dB существует простая формула:
F = 20 Lg (U / Um), где
Um - максимальное значение параметра или принимаемое за 0 dB,
U - текущее значение параметра,
Lg - десятичный логарифм.
-
Вот этот график по ссылке из темы: https://datagor.ru/uploads/posts/2011-10/1319361917_krivaya-rezistorapok.gif
Ответ: в АИМПе есть логарифмический регулятор, включается в настройках
50%lin=8%log - на вашем графике так же
Ответы разработчика:
Логарифмический - использует формулу, которую принято использовать в графиках для логарифмических шкал
при логарифмической 50% становится ~8%.
-
50%lin=8%log
Тут, наверное, наоборот, 50лог=8лин
F = 20 Lg (U / Um), где
Um - максимальное значение параметра или принимаемое за 0 dB,
U - текущее значение параметра,
Lg - десятичный логарифм.
Спасибо за формулу, вроде, работает. Я правильно считаю? Сначала произвожу деление в скобках, потом делаю лог полученной суммы и потом результат умножаю на 20? К примеру 12.5/100 = 0.125 -> log = -0.903x20=18дБ