AIMP Forum

AIMP для Windows => Ошибки / Замечания => Обработано => Topic started by: m00slim25 on March 06, 2018, 06:43:54

Title: [+] [2058] Поддержка ASIO:Crystal Mixer
Post by: m00slim25 on March 06, 2018, 06:43:54
Автор!
Сделайте уже нормальную поддержку AIMP'ом интерфейса вывода Crystal Mixer, пожалуйста. Ну невозможно пользоваться плеером... AIMP, похоже, единственный динозавр, который до сих пор не может нормально и стабильно работать с Crystal Mixer.

Если во время поигрывания менять в плеере громкость колесом мыши, то при следующем запуске в плеере будет громкость на 1% ниже, чем была установлена до закрытия плеера. И ситуация будет повторяться самопроизвольно при каждом изменении громкости колесиком и последующем перезапуске плеера.

Если настраивать параметры вывода для ASIO:Crystal Mixer, то самопроизвольно уменьшается шаг изменения громкости в разделе Плеер --> Управление плеером горячими клавишами.
Title: Re: Поддержка ASIO:Crystal Mixer
Post by: Artem on March 06, 2018, 09:50:07
Что такое Crystal Mixer? Что он делает?

Если во время поигрывания менять в плеере громкость колесом мыши, то при следующем запуске в плеере будет громкость на 1% ниже, чем была установлена до закрытия плеера. И ситуация будет повторяться самопроизвольно при каждом изменении громкости колесиком и последующем перезапуске плеера.

Если настраивать параметры вывода для ASIO:Crystal Mixer, то самопроизвольно уменьшается шаг изменения громкости в разделе Плеер --> Управление плеером горячими клавишами.

Быть такого не может.
Title: Re: Поддержка ASIO:Crystal Mixer
Post by: m00slim25 on March 07, 2018, 01:15:06
http://crystal-mixer.sourceforge.net/
http://kcat.strangesoft.net/openal.html
Title: Re: Поддержка ASIO:Crystal Mixer
Post by: Artem on March 07, 2018, 14:20:59
Если настраивать параметры вывода для ASIO:Crystal Mixer, то самопроизвольно уменьшается шаг изменения громкости в разделе Плеер --> Управление плеером горячими клавишами.

Так же уменьшается на 1-у?
Title: Re: Поддержка ASIO:Crystal Mixer
Post by: m00slim25 on March 07, 2018, 15:55:34
Так же уменьшается на 1-у?
Да. Я ставлю 5%, мне так удобно. Уменьшается по 1%, до минимального 1%.
Title: Re: [2058] Поддержка ASIO:Crystal Mixer
Post by: Artem on March 10, 2018, 13:25:35
Забавный эффект - на одном ПК баг повторил, на другом - все нормально.
Title: Re: [2058] Поддержка ASIO:Crystal Mixer
Post by: Artem on March 15, 2018, 12:12:34
Виноват OpenAL, если активировать вывод через него, то он меняет у со-процессора режим округления с "до ближайшего", на "в меньшую сторону". Поскольку 32-битные числа с плавающей точкой представляются неточно, например, 4 может быть представлено как 3.9999999(9), то переключение режима округления все напрочь ломает - вместо 4-х мы получаем 3, но 3 представляется как 2.99(9), и так до 0. 64-битные типы данных такой проблемы не имеют, однако работают медленнее. По правилам хорошего тона: если меняешь режимы работы со-процессора, то должен вернуть их значения обратно, как только твои расчеты выполнены. OpenAL же ведет себя по-хамски.

Итого: в ближайшем будущем, я не планирую менять 32-битные типы данных на 64-битные из-за бага в OpenAL, во-первых, это займет много времени, во-вторых, замедлит работу программы, в-третьих увеличит расход памяти. Как решение - не используйте вывод через OpenAL, она ничем не лучше других вариантов.
Title: Re: [2058] Поддержка ASIO:Crystal Mixer
Post by: m00slim25 on March 18, 2018, 01:20:23
он меняет у со-процессора режим округления с "до ближайшего", на "в меньшую сторону"
Как на английском эти математические функции называются?

Уточнение: проблема именно в soft-openal? Сам Crystal Mixer ни при чём?

ЗЫ. Насколько я понимаю, Crystal Mixer просто прослойка, если хотите - интерфейс, между soft-openal и другими программами, верно?
Title: Re: [+] [2058] Поддержка ASIO:Crystal Mixer
Post by: m00slim25 on March 18, 2018, 09:02:05
Вобщем вот что ответил автор soft-openal:
Quote
That's partly true. Older versions of OpenAL Soft had a bug on Windows which left the FPU in "round to zero" mode after certain calls, affecting the calling thread. The latest 1.18.2 release actually fixes that, and restores the original FPU mode before returning.
https://github.com/kcat/openal-soft/issues/174#issuecomment-373957729

Пока что я пребываю в некотором смятении :(

Вероятно, автор прав. В 1.18.2 этот баг исправлен.
(https://image.prntscr.com/image/mX4iDgkPTeWJfixpwZJzKQ.png)

С крайней версией Crystal Mixer в ОС ставится soft-openal 1.18.1. Я руками закидывал dll'ку 1.18.2 в SysWOW64, а старую просто переименовывал, оставляя её в папке. И AIMP загружал обе dll'ки, но работал со старой, новая просто пассивно висела в процессе.
Отрегал старую dll'ку, удалил её из SysWOW64, скопировал и зарегал новую, и AIMP теперь работает стабильно, без багов.

Огромное спасибо, что помогли разобраться с проблемой! :)
Title: Re: [+] [2058] Поддержка ASIO:Crystal Mixer
Post by: Artem on March 18, 2018, 10:57:09
Во, автор молодец! Респект
Title: Re: [+] [2058] Поддержка ASIO:Crystal Mixer
Post by: m00slim25 on April 01, 2018, 23:02:32
Была ещё одна проблемка с openal-soft. Успешно решил и её. Возможно пригодится. А может и нет ;)

https://github.com/kcat/openal-soft/issues/174