Тонкомпенсация

Список разделов foobar2000 Есть вопрос!

Описание: У вас проблемы с foobar2000 и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть. Подробно описывайте проблему. Не забывайте указать версию плеера, название сборки, по возможности добавить скриншоты проблемы.

Сообщение #21 seriousstas » 13.08.2020, 04:00

И обложку можно подобрать для машины
Плейлист увы не скролится , обложка статическая - не масштабируется.
seriousstas
Откуда: Украина , Ивано-Франковск
Репутация: 110
С нами: 9 лет 1 месяц

Сообщение #22 Azaza » 13.08.2020, 10:55

Joice:Не сочтите меня занудой, но что за проблема измерить максимальное и минимальное звуковое давление в любой системе? Это проще, чем снять АЧХ.
В том-то и дело, что реальную АЧХ тоже нужно знать, чтобы учитывать изменение её восприятия при изменении громкости. И, если тонкомпенскция осуществляется программно, то программа должна учитывать эти данные. И регулировать громкость в таком случае можно только программно. Это, повтгрюсь, если нужна правильно работающая тонкомпенсация. Ну а для того, чтобы просто сделать эквалайзер "галочкой", такие сложности не нужны, конечно.
Azaza M
Аватара
Репутация: 393
С нами: 7 лет 6 месяцев

Сообщение #23 Joice » 13.08.2020, 11:07

Толковой альтернативы когда-то не нашёл. У Фубара есть два замечательных инструмента: Chanel Mixer с поканальными задержками и Crossover с гибкой частотной фильтрацией. В Aimp на момент поиска, лет 5 назад, такого не нашёл. Да и сейчас, бегло погуглив, таких плагинов не обнаружил.

Добавлено спустя 56 минут 24 секунды:
Продолжу тошнить:)
Кривая АЧХ ведь не зависит от уровня громкости, иначе, громкость можно было обозвать разновидностью эквалайзера.
Какае дело тонкомпенсации до кривости моей АЧХ? В максимальном положении ползунка громкости меня она, допустим, устраивает. А в положении - 50дцб не достаёт низов и чуток верхов. Вот и пускай бы виновница этой темы искривляла АЧХ по мере уменьшения громкости от полного отсутствия обработки на максимуме и до максимального вмешательства на минимуме громкости.
Да, если вдруг, изменить Гейн на усилителе, поменять Акустическую систему, провода:), тонкомпенсация станет работать криво. Это я понимаю. И понимаю, что эта функция работала бы правильно на всех железяках, если бы Юзеры использовали их на тех громкостях, на которых она проэктировалась. Если, конечно, это ни какой-то замаскированый Бас-Буст.
Возможно я ошибаюсь, или чего-то не знаю, но я вижу это так, как написал. Извиняйте, если что:)
П. С. Под регулировкой громкости я подразумевал исключительно ползунок проигрывателя. Естественно, никакой плагин не в курсе, что вы там крутит на ресивере, усилителе и т. д.
Joice
Автор темы
Репутация: 0
С нами: 3 года 7 месяцев

Сообщение #24 duzzy » 13.08.2020, 13:10

Joice
Привет. Ты хочешь поднимать и опускать нч и вч при разных уровнях громкости?
Вообще можно попробовать скрипт накалякать) которой будет менять пресеты дсп при разных уровнях громкости. Но с вероятностью сто процентов могу сказать что будет слышно как переключаются пресеты.
Еще есть всеми забытый плагин foo_dsp_vlevel
https://hydrogenaud.io/index.php?topic=22057.0
это конечно не совсем то что нужно, но я им пользуюсь в машине самое то, но он иногда валит фубар. Есть версия посвежее и исходники, если нужно могу попозжей скинуть.
duzzy
Репутация: 25
С нами: 8 лет 8 месяцев

Сообщение #25 Joice » 13.08.2020, 13:52

DUZZY, всему, что не заставит меня заниматься программированием буду благодарен. Далёк я от этого.
В артефактах при переключении прессетов я не сомневался, о чем на первой странице упомянул. Понятное дело, они будут.
Joice
Автор темы
Репутация: 0
С нами: 3 года 7 месяцев

Сообщение #26 duzzy » 13.08.2020, 14:10

Joice
:smile:
Ок, вечерком скину сюда свежий vlevel и еще один плагин которым пользуюсь название точно не помню, тоже хорошая штука, ну и скрипт если успею сегодня.
duzzy
Репутация: 25
С нами: 8 лет 8 месяцев

Сообщение #27 Joice » 13.08.2020, 14:50

DUZZY, это прям подарок будет. Спасибо. Только вот куда этот скрипт тулить, я тоже понятия не имею. Да, вот такой я.... :)
Joice
Автор темы
Репутация: 0
С нами: 3 года 7 месяцев

Сообщение #28 MC Web » 13.08.2020, 18:02

seriousstas:Плейлист увы не скролится , обложка статическая - не масштабируется.
Насчет масштабирования заметил, плейлист проверить нет возможности, но думаю при желании все вопросы решаемы. Данная обложка очень понравилась и если бы нужно было поставил себе в машину. Но предпочитаю качественные проигрыватели в "классическом" исполнении. Стоит не первый год хорошая голова с неплохим встроенным усилителем и кучей настроек. Тонкомпесация имеет три уровня настроек, при включении и глухой слышит разницу. В программном исполнении ничего даже близкого не слышал.
MC Web
Репутация: 248
С нами: 10 лет 7 месяцев

Сообщение #29 Azaza » 13.08.2020, 18:03

duzzy:Еще есть всеми забытый плагин foo_dsp_vlevel
https://hydrogenaud.io/index.php?topic=22057.0
это конечно не совсем то что нужно, но я им пользуюсь в машине самое то, но он иногда валит фубар. Есть версия посвежее
Самая "свежайшая" от 2012.07.16 - https://yadi.sk/d/Kn4Ef72tM4_oWw
Azaza M
Аватара
Репутация: 393
С нами: 7 лет 6 месяцев

Сообщение #30 duzzy » 14.08.2020, 01:40

Joice
Да какой там подарок, это больше похоже на быструю поделку кривыми руками)))
Работать будет в фубаре версии 1.4 и далее, и сежей JScript Panel или Jsplitter.
Я не знаю как у тебя там все настроено в сборке, так что это простой(быстрый) вариант, работает при шаге громкости в -5 дб, т.е. от 0 до -100 с шагом в 5 т.е. каждые 5 дб дсп будет переключаться. Не знаю подойдет или нет, можно сделать с переключением в диапазоне например от 0 до -10.
Нужно подготовить пресеты ДСП в таком виде: dsp 0, dsp -5, dsp -10, dsp -15... dsp -100. Имена должны быть такими как написал иначе не будет переключать, т.е. например: выставляешь цепочку дсп как тебе нужно и сохраняешь с именем dsp 0 или dsp -5, и так далее. Если переключение на каком то шаге не нужно все равно сохраняешь пресет с соответствующим именем.
Моменты переключения дсп можно посмотреть в консоли.
Пробовал на обычном игровом джойстике шаг единичка, все работает и переключает.
Добавить в сборку легко, просто добавляешь панель JScript Panel или Jsplitter в размещатель Columns UI, показывать ее нигде не нужно она без графики работает в тени).
Спойлер
Код: Выделить всё
var dsp_active_name = "";
var dsp_str = fb.GetDSPPresets();
var dsp_arr = JSON.parse(dsp_str);
var dsp_count = dsp_arr.length;

function get_dsp() {
   dsp_active_name = "";
   dsp_str = fb.GetDSPPresets();
   dsp_arr = JSON.parse(dsp_str);
   dsp_count = dsp_arr.length;
   for (var i = 0; i < dsp_arr.length; i++) {

      //tt(">>> dsp presets name # " + i + ": " + dsp_arr[i].name);

      if (dsp_arr[i].active) {
         dsp_active_name = dsp_arr[i].name;
      }

   }
   tt('>>> dsp presets count = ' + dsp_count);
   tt(">>> dsp active name = " + dsp_active_name);
};
//get_dsp();

function get_dsp_idx(dsp_name) {

   for (var i = 0; i < dsp_arr.length; i++) {

      if (dsp_arr[i].name == dsp_name) {

         return i
      }

   }

};

function on_dsp_preset_changed() {
   get_dsp();
};

var vol_lvl = Math.ceil(fb.Volume);
function on_volume_change(val) {
   //---
   // 0 is max
   // -100 is min

   vol_lvl = Math.ceil(val);
   if (isNaN(vol_lvl))
      vol_lvl = Math.ceil(fb.Volume);

   if (vol_lvl == 0) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp 0")); // set dsp preset 0
   };
   if (vol_lvl == -5) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -5")); // set dsp preset -5
   };
   if (vol_lvl == -10) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -10")); // set dsp preset -10
   };
   if (vol_lvl == -15) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -15")); // set dsp preset -15
   };
   if (vol_lvl == -20) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -20")); // set dsp preset -20
   };
   if (vol_lvl == -25) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -25")); // set dsp preset -25
   };
   if (vol_lvl == -30) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -30")); // set dsp preset -30
   };
   if (vol_lvl == -35) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -35")); // set dsp preset -35
   };
   if (vol_lvl == -40) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -40")); // set dsp preset -40
   };
   if (vol_lvl == -45) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -45")); // set dsp preset -45
   };
   if (vol_lvl == -50) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -50")); // set dsp preset -50
   };
   if (vol_lvl == -55) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -55")); // set dsp preset -55
   };
   if (vol_lvl == -60) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -60")); // set dsp preset -60
   };
   if (vol_lvl == -65) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -65")); // set dsp preset -65
   };
   if (vol_lvl == -70) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -70")); // set dsp preset -70
   };
   if (vol_lvl == -75) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -75")); // set dsp preset -75
   };
   if (vol_lvl == -80) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -80")); // set dsp preset -80
   };
   if (vol_lvl == -85) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -85")); // set dsp preset -85
   };
   if (vol_lvl == -90) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -90")); // set dsp preset -90
   };
   if (vol_lvl == -95) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -95")); // set dsp preset -95
   };
   if (vol_lvl == -100) {
      tt(">>> vol = " + vol_lvl);
      fb.SetDSPPreset(get_dsp_idx("dsp -100")); // set dsp preset -100
   };

};
on_volume_change();

function tt(t) {
   console.log(t);
};

И пара плагинов которые сам использую ReplayGain DSP и Vlevel.
https://yadi.sk/d/gmm86-O9nUFfMg

Исхдники к Vlevel от 20080302, возможно кому то будет интересно.
https://yadi.sk/d/UgFaaX-PEahEPg

Azaza
Спасибо попрбую может быть она корректней работает.
У меня версия посвежей от 2018.06.22 его Case с гидрогена пробовал чинить, работает почти корректно но иногда падает, закономерность и причины не выяснял.
duzzy
Репутация: 25
С нами: 8 лет 8 месяцев

Сообщение #31 Joice » 16.08.2020, 09:39

DUZZY, переклацал всё дерево настроек Фубара, не нашёл я, куда твой скрипт вставлять. До последнего не хотел позориться своей неосведомленностью в по этой части, но сдаюсь. Весь гугл перечитал! Видимо это так просто, что об этом и не пишут даже. Ну разжуйте мне, пожалуйста.
Joice
Автор темы
Репутация: 0
С нами: 3 года 7 месяцев

Сообщение #32 duzzy » 16.08.2020, 13:05

Joice
:smile: Кидай мне сборку в личку или тут я тебе пристрою этот скрипт.
duzzy
Репутация: 25
С нами: 8 лет 8 месяцев

Сообщение #33 Миха » 06.03.2021, 08:25

Ребят,так я не понял-получилось ли у вас сделать автоматическую тонкомпенсацию? У кого-нибудь работает она?
Миха M
Аватара
Репутация: 0
С нами: 7 лет 8 месяцев

Сообщение #34 HankH » 18.02.2023, 17:58

Через год с лишком присоединяюсь к вопросу:
получилось ли сделать автоматическую тонкомпенсацию? У кого-нибудь работает она?
HankH
Репутация: 0
С нами: 5 лет 5 месяцев

Сообщение #35 Azaza » 18.02.2023, 19:07

Да, получилось. Скрипт от duzzy работает.

Подробнее тема развита здесь - https://hydrogenaud.io/index.php/topic,119730.0.html Там есть и краткая видеоинструкция что куда вставлять для чайников, и вариант небольшой модификации скрипта. Внимательно читайте вопросы от wcs13 и ответы от Rollin.

Однако:
1) Без данных о реальной физической громкости в зоне прослушивания тонкомпенсация - не более, чем игрушка.
2) Эти кривые равной громкости основаны на чистых тонах. Поэтому для музыки плохо подходят - https://www.meterplugs.com/blog/2016/12/11/equal- ... -curves-purely-misleading.html
Azaza M
Аватара
Репутация: 393
С нами: 7 лет 6 месяцев

Сообщение #36 HankH » 18.02.2023, 21:08

Azaza:Подробнее тема развита здесь
Спс.
Пробежался по ветке. Со скриптом и массой точных измерений для пресетов довольно заморочено. Мне-то для бытовых целей. Ночью слушать музычку, не сильно теряя в тональном балансе. ))
Потому понравился простотой метод с LOUDNESS VST BY WOK.
Поставил сам плагин и его адаптер для F2K. Подкючил.
Но, толи стар стал, и уши совсем не слышат разницы. Толи лыжи не едут. ХЗ.

Прочитал вашу приписку. Наверное, для моих бытовых целей, действительно, игрушка.
И проще на ресивере поиграться с тонкомпенсацией (кнопками басов и высоких частот) при снижении уровня громкости.
HankH
Репутация: 0
С нами: 5 лет 5 месяцев

Сообщение #37 Azaza » 18.02.2023, 22:48

HankH:Со скриптом и массой точных измерений для пресетов довольно заморочено.
Ну, пресеты можно и от балды сделать, без измерений.

HankH:Потому понравился простотой метод с LOUDNESS VST BY WOK.
Поставил сам плагин и его адаптер для F2K. Подкючил.
Но, толи стар стал, и уши совсем не слышат разницы. Толи лыжи не едут.
Про WOK там же в теме сказано - при изменении громкости ползунком регулировки громкости WOK не будет работать.
For it to work correctly with fb2k, volume should be changed before this VST. But volume bar changes volume after DSP. So it is needed to add to DSP chain some plugin that can change volume and use it instead of volume bar. Otherwise, correction level will be fixed regardless of volume.
Azaza M
Аватара
Репутация: 393
С нами: 7 лет 6 месяцев

Сообщение #38 HankH » 18.02.2023, 23:57

Azaza:Про WOK там же в теме сказано - при изменении громкости ползунком регулировки громкости WOK не будет работать.
Захотелось-таки проверить из спортивного интереса.
Запихнул перед плагином WOK Loudness плагин Amplifier DSP. Вроде, работает. При этом возникает довольно продолжительная задержка после перемещения движка до реального изменения громкости.

И ещё момент.
Для работающих c Column UI, связанный с дополнительным путешествием по интерфейсу, чтобы вызвать Amplify configuration для управления уровнем.
HankH
Репутация: 0
С нами: 5 лет 5 месяцев

Сообщение #39 Azaza » 19.02.2023, 00:25

HankH:При этом возникает довольно продолжительная задержка после перемещения движка до реального изменения громкости.
Задержка изменений в звуке после изменения настроек DSP зависит от величины выходного буфера. Того, который File->Preferences->Playback->Output->Buffer length

Добавлено спустя 8 минут 5 секунд:
HankH:И ещё момент.
Для работающих c Column UI, связанный с дополнительным путешествием по интерфейсу, чтобы вызвать Amplify configuration для управления уровнем.
Можно назначить горячие клавиши для открытия DSP Manager.
Azaza M
Аватара
Репутация: 393
С нами: 7 лет 6 месяцев

Сообщение #40 HankH » 19.02.2023, 08:38

Azaza:Задержка изменений в звуке после изменения настроек DSP зависит от величины выходного буфера. Того, который File->Preferences->Playback->Output->Buffer length
Именно так и обстоит.
Поэкспериментировал - удовлетворил любопытство. ))
HankH
Репутация: 0
С нами: 5 лет 5 месяцев

Пред.

Вернуться в Есть вопрос!