Будущее здесь → Как сделать 5.1 (трехмерный звук) из ЛЮБЫХ наушников с ЛЮБОЙ звуковой картой
Приветствую!
Помните, я публиковал топик "Как сделать 5.1 (трехмерный звук) из ЛЮБЫХ наушников"? Там я описывал, как добиться в любых наушниках звука, который слышен спереди, сзади, сверху и снизу. К сожалению, решение было только для карт типа Creative X-fi, на других картах решение было или очень геморрным или не было вовсе.
Но не стоит падать духом! Я наконец-то нашел решение, которое работет везде.
Оно называется ffdshow. ffdhsow — это аудио и видеокодеки, способные проигрывать практически любой файл. Кроме того, они поддерживают множество встроенных фильтров. И одним из фильтров как раз является «объемное» микширование трехмерного звука в наушники!
Делается это так:
Помните, я публиковал топик "Как сделать 5.1 (трехмерный звук) из ЛЮБЫХ наушников"? Там я описывал, как добиться в любых наушниках звука, который слышен спереди, сзади, сверху и снизу. К сожалению, решение было только для карт типа Creative X-fi, на других картах решение было или очень геморрным или не было вовсе.
Но не стоит падать духом! Я наконец-то нашел решение, которое работет везде.
Оно называется ffdshow. ffdhsow — это аудио и видеокодеки, способные проигрывать практически любой файл. Кроме того, они поддерживают множество встроенных фильтров. И одним из фильтров как раз является «объемное» микширование трехмерного звука в наушники!
Делается это так:
Open source → Синтез 3D звука :: Clunk
Работая над проектом уютненькой аркады, я с сожалением обнаружил что OpenAL отбирает слишком много моего времени. Мало того, что для него пришлось написать менеджер звуков о полутора тысячах строк кода, так ещё и приходилось бороться с разного рода чёрной магией. (Например реализация от nvidia намертво вешала венду) Поэтому, я внезапно решил что потратил на него достаточно времени и написал свой собственный велосипед, который и был успешно обкатан в поле, и выпущен с открытыми исходниками на sourceforge.
Вообще, наше ухо не такое уж и хитрое устройство. Позицию источника ухо определяет двумя способами. В горизонтальной плоскости звук приходит в одно ухо чуть раньше чем в другое. Простая тригонометрия умноженная на диаметр головы и дело в шляпе! :)
Второй способ уже куда сложнее — голова имеет разную плотность и разные технологические отверстия, следовательно, спектр звука искажается по разному в зависимости от направления вхождения сигнала. Было много попыток сделать эталонную голову(ничего постыдного, даже Стив Джобс делал это), заполнить её желеобразным заменителем мозга и померить искажения эталонного звука, например проект KEMAR из MIT.
Мой проект называется Clunk, и умеет практически всё, что необходимо уметь звуковой библиотеке:
Адрес проекта на sf.net: https://sourceforge.net/projects/clunk
Если вам интересно, можно смело писать мне в icq, я готов ответить на любые вопросы.
Вообще, наше ухо не такое уж и хитрое устройство. Позицию источника ухо определяет двумя способами. В горизонтальной плоскости звук приходит в одно ухо чуть раньше чем в другое. Простая тригонометрия умноженная на диаметр головы и дело в шляпе! :)
Второй способ уже куда сложнее — голова имеет разную плотность и разные технологические отверстия, следовательно, спектр звука искажается по разному в зависимости от направления вхождения сигнала. Было много попыток сделать эталонную голову(ничего постыдного, даже Стив Джобс делал это), заполнить её желеобразным заменителем мозга и померить искажения эталонного звука, например проект KEMAR из MIT.
Мой проект называется Clunk, и умеет практически всё, что необходимо уметь звуковой библиотеке:
- Бесконечное количество всего: музыкальных потоков (SDL_Mix умеет только один, например), объектов и именованных источников звука прикреплённых к объектам или слушателю.
- Простое апи на c++. (В OpenAL вы вынуждены сами перестраивать сцену, для того чтобы перекинуть 16 источников поближе к слушателю, рестартуя источники (sic), ещё рекомендую посмотреть примерчик «как сделать фоновую музыку на OpenAL», ~полтыщи строк кода =-O ) )
- HRTF, HDT описанные выше(собственно 3d звук)
- Поддержка всех distance models (падение громкости в зависимости от расстояния) из OpenAL
- Опциональная оптимизация под процессоры с технологией SSE
- Эффект допплера
- Должно работать под всеми платформами где есть SDL, не содержит платформно-зависимого кода.
- Лицензия LGPL 2.1 — можно использовать в коммерческих продуктах.
Адрес проекта на sf.net: https://sourceforge.net/projects/clunk
Если вам интересно, можно смело писать мне в icq, я готов ответить на любые вопросы.
Будущее здесь → Как сделать 5.1 (трехмерный звук) из ЛЮБЫХ наушников
Думаю, вы все видели топик "Алгоритм 3D звука от компании по производству слуховых аппаратов" и побывали в виртуальной парикмахерской, где слушали звуки спереди, сзади, сверху и снизу вас, оставаясь в одних только наушниках. Я, наслушавшись разных примеров, подумал — а ведь в наших компьютерах полно источников 3D-звука. Игры, фильмы с 5.1 звуком. Почему бы не разместить виртуальные колонки при помощи бинаурального (да, это так называется) звука?
Я начал изучать предмет. И вот что обнаружил.
Я начал изучать предмет. И вот что обнаружил.