FreeBasic
Главная
Вход
Регистрация
Четверг, 05.12.2024, 20:31Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
camlorn_audio
electrikДата: Понедельник, 29.09.2014, 19:04 | Сообщение # 1
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Данная библиотека предназначена для позиционирования звука в 3d пространстве. она является обёрткой над софтварным OpenAlSoft. поставляется как c++ библиотека и как dll с c функциями.
оф сайт: http://camlorn.net/posts/camlorn_audio-01.html
к сожалению, автор забросил проект  по этому, функций не много, но для создания эффекта присутствия в игрушках вполне сойдёт.
библиотека использует hrtf(Head transfer functions), полученные в лабораторных условиях виртуальной головой.
поддержка различных эффектов: эхо, реверберация, eax эффекты.
библиотека поддерживает распространённые звуковые форматы: wave, ogg - в общем то, что поддерживает библиотека libsndfile, которая обеспечивает поддержку форматов звука данной библиотеки. к сожалению, среди форматов не воспроизводит mp3, так как libsndfile его не поддерживает.
теперь тонкости:
у меня библиотека инициализируется так:

Код
CA_iniCamlornAudio(TRUE,"stereo",48000,"mmdevapi,dsound,winmm",0,100,"hrtfs/48000.hrtf")


возможно, что на вашей звуковой системе не заработают hrtf функции, в консоли будет ругаться, надо тогда сделать так:

Код
CA_initCamlornAudio(TRUE,"stereo",44100,"mmdevapi,dsound,winmm",0,100,"hrtfs/44100.hrtf")


в общем, для игрушки надо будет самостоятельно получать другими средствами параметры звуковой подсистемы, и исходя из этого, выбирать нужную частоту дискретизации.
рекомендую прослушивать примеры только в наушниках, ибо в колонках вы не услышите бинаурального эффекта и вообще, когда вам говорят, что бывают колонки которые воспроизводят бинауральный звук как в наушниках - неверьте, научный факт - колонка является точечным источником и находится далеко от ушей.
поищите по интернету что такое бинауральный звук, и вопросы сразу все отпадут.
я немного модифицировал оригинальные примеры, дабы вы прочувствовали ушами, что можно замутить на этой библиотеке. если захотите закрыть программу, нажмите alt+пробел, и выберите закрыть. ну ленивый я, не предусмотрел выход.
ссылка на файл
https://dl.dropboxusercontent.com/u/63991073/camlorn_audioFb.7z


Сообщение отредактировал electrik - Понедельник, 29.09.2014, 19:16
 
haavДата: Вторник, 30.09.2014, 07:32 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Потестировал, работает. Плохо конечно, что автор забил на продукт, если будут баги, уже хрен кто исправит.

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
AlecДата: Вторник, 30.09.2014, 08:25 | Сообщение # 3
Лейтенант
Группа: Друзья
Сообщений: 73
Репутация: 1
Статус: Offline
Очень интересно. Так я моё программирование в основном связано с игрушками, очень нтересно попробовать. Особенно "бинауральный" эффект. Обязательно попробую.

Спасибо, electrik. smile


WorldSim3D - 3D движок для FreeBasic, для PC. Мощная 3D графика и простота программирования. Ознакомиться.
 
electrikДата: Четверг, 02.10.2014, 17:39 | Сообщение # 4
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
исправить то можно, проект opensource, но будет ли кто. я глядел чутка, помимо всего прочего, он немного модифицировал OpenalSoft. насамом деле, надо самим разобраться с openalsoft, и сделать обёртки, ибо изначально на нем много писать надо. в openalsoft, тоже поддерживаются hrtf бинауральные функции, и он развивается.
плохо что основная документация - это от openal, а новшества отдельно. пока я в целом не видел всей документации, может плохо искал.
и реально, русских форумов по openal, мне кажется, тоже мало. незнаю почему народ его стороной обходит, мож кодить на чистом си не хочет, а обёртки лень делать, ведь там потенциал заложен не плохой, причем, подчеркну, софтварная обработка звука, а это значит, мы больше не зависим от крутых звуковых карт, в которые встроены бинауральные эффекты, и как западло, в новых windows микрософты отказались от аппаратной поддержки данных карт, ну например creative. надо просто чутка по мощнее процессор компа.
да и алгоритмы там не такие уж крутые, не много проца они съедят, учитывая какие сейчас у всех компы.
есть для creative приблуды, которые позволяют вернуть 3д звук, но это заморочки, а тут человек запустил игру и о чудо, 3д уже есть.
и если учесть тот момент, что directsound привязан только к винде, openalsoft - открытый, а значит при усилиях его можно портировать на другую платформу.
 
AlecДата: Четверг, 02.10.2014, 22:20 | Сообщение # 5
Лейтенант
Группа: Друзья
Сообщений: 73
Репутация: 1
Статус: Offline
Сегодня тоже потестировал. Впечатляет. Из простого звука такие эффекты!
Думаю, включу её в мой игровой движок. И действительно, только в наушники можно услышать объёмный звук, например как вертолёт кружит вокруг меня. smile


WorldSim3D - 3D движок для FreeBasic, для PC. Мощная 3D графика и простота программирования. Ознакомиться.
 
electrikДата: Понедельник, 04.09.2017, 15:07 | Сообщение # 6
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Привет народ. вот понадобились мне исходники camlorn audio, а вот всё, больше того проекта нет. может кто-нибудь успел утянуть? у меня были, но за каким-то фигом я их убил давно. сейчас, пишу обёртку над OpenAlSoft, некоторые моменты хотел бы глянуть. короче, если у кого есть, пришлите ссылку сюда на облако какое-нибудь или на:
electrik-spb@mail.ru

Добавлено (04.09.2017, 15:07)
---------------------------------------------
Самое печальное, что даже сохранённых страниц нету в интернет архиве archive.org. кеш гугла тоже не помог типа: cache://camlorn.net/posts/camlorn_audio-01.html

 
haavДата: Понедельник, 04.09.2017, 18:35 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
К сожалению твой архив не сохранился. Возможно тебе стоит посмотреть на libaudioverse. Написана тем же автором, возможно даже та же либа , только чуть "причесанная".

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
quiet_snow_losДата: Суббота, 09.09.2017, 00:24 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
Цитата electrik ()
обёртку над OpenAlSoft

Зачем над OpenAL, это же гемор для юзера, искать, ставить эту библу в систему.
 
electrikДата: Понедельник, 25.09.2017, 14:10 | Сообщение # 9
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Ну гемора тут ни какого нет. софтварный openal не надо ставить в систему. впрочим, как и обычный openal. достаточно чтобы лежал файлик openal32.dll рядом с программой. как правило, создатели подобных обёрток, включают в архив необходимые библиотеки. к сожалению, проект брошен и даже товарищь исходники удалил. про libaudioverse знаю, но я, всё-таки остановился на openalsoft. она кросс-платформенна, и я уже с ней разобрался. Сейчас пишу свою обёртку, правда для PureBasic, но как-то и для FreeBasic надо что-нибудь состряпать.
для поддержки форматов аудио файлов, у меня, так же как у camlorn используется либа libsndfile.
вот, новая рабочая ссылка:
https://yadi.sk/d/oJtQRASX3NCZvQ                                    
сам я уже забил на camlornAudio, ибо он только x86, исходников больше нет.
ком                        у интересен софтварный openal, вот оф сайт:
http://kcat.strangesoft.net/
Кое что на русском, что мне помогло написать обёртку. к сожалению примеры написаны на c/c++:
 статья с ресурса "c++ Программирование":
http://procplusplus.blogspot.ru/2011/06/openal.html

 steps3D - Tutorials - Программирование 3D-звука при помощи OpenAL.
некоторые моменты уже устарели, например, в статье описан механизм  загрузки звуковых данных при помощи дополнения alut, а в OpenALSoft этого дополнения уже нет.
это относится и к предыдущей статье. но всё-равно для основ понимания механизмов OpenAL очень полезно:
http://steps3d.narod.ru/tutorials/openal-tutorial.html

 Базовый менеджер звука на OpenAL для вашего проекта. Разработка звукового движка.
статья поможет реализовать потоковое воспроизведение звука без загрузки всего файла в память. правда, для воспроизведения OGG файлов,даны примеры с использованием библиотеки worbis,
я же использую libsndfile:
https://tproger.ru/transla....-design
 английская ОФ документация:
http://www.openal.org/documentation/
В принципе, если надо будет, дам исходники того, что написал, но там как я говорил написано на пурике.
 
quiet_snow_losДата: Понедельник, 25.09.2017, 18:20 | Сообщение # 10
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
Цитата electrik ()
но там как я говорил написано на пурике

Это даже лучше, никакого 4GL кода. С середины 2009, полтора года кодил на пурике,
и сейчас бы кодил, но FB мне нравится больше по ряду моментов.
Исходники на самом деле меня не интересуют, разве что заинтересовал бы пример
загрузки и сохранения в OGG.

Цитата electrik ()
Ну гемора тут ни какого нет. софтварный openal не надо ставить в систему.

Помню ставил Open Dune Golden Path, посмотреть что за зверь, так там не было этой библиотеки,
пришлось идти на сайт OpenAL, а там чёрт ногу сломает. Видимо по лицензии его нельзя включать и
миксовать с другими версиями лицензий, что сводит на нет все бенефиты, ну просто других объяснений
не вижу, иначе что мешало разработчиками положить нужную и важную библиотеку в комплект.
Меня все эти библиотеки интересуют разве что со стороны использования в профессиональных
нуждах, а они все как бы больше под игры заточены.
Хочу вот поковырять ASIO, раздражает лишь то, что все сорцы на c++ и завёрнуты в миллион абстракций,
это хуже макаронного кода в десятки раз, т.е. это реально долго разгребать. Всё это настолько обидно,
что просто ппц, раньше всё это железо на примере Sound Blaster кодилось двумя строчками через порты.
И переносилось между языками моментально, а теперь всё тупо на си и скодено так, что можно вешаться.

Что касаемо 3D звука, меня это бы интересовало с позиции того как это можно закодить без использования
библиотек, вот это по настоящему крутая тема.
 
electrikДата: Среда, 27.09.2017, 12:02 | Сообщение # 11
Полковник
Группа: Друзья
Сообщений: 182
Репутация: 3
Статус: Offline
Openalsoft - это свободная либа. старый openal от креатива, был тоже с открытыми исходниками, потом они их закрыли. те кто успел в свое время добыть, написали openalsoft. кодить самому 3D звук, круто конечно, но это только для понимания как оно устроено внутри. лучше всё-равно не придумаешь, ибо так же как и все будешь использовать модели mitkemar или ciair, ибо чтобы сделать свои модели HRTF, надо иметь лабораторию с бинауральной башкой, причем не дешёвой. имитировать физическое поведение звука - затратно, и как показывает практика, получается хуже, чем использовать HRTF модели, во всяком случае на сегодняшний день.
по поводу asio, попробуй portaudio, наверное единственная либа, которая не завёрнута в c++. есть ещё bass и fmod, но к bass, надо доп dll для asio качать.
во FreeBasic, вроде, были заголовочные файлы

Добавлено (27.09.2017, 12:02)
---------------------------------------------
для 3D звука, есть не популярная либа Slab3d. пока её не заюзал, ибо там примеры на c#, но вроде есть и заголовочные файлы для нативных приложений. запускал готовые примеры, звук крутить вокруг башки, впечатлительно.

 
quiet_snow_losДата: Пятница, 29.09.2017, 17:49 | Сообщение # 12
Рядовой
Группа: Пользователи
Сообщений: 16
Репутация: 0
Статус: Offline
electrik, полностью согласен с озвученным.

Не знаю что такое mitkemar \ ciair но себе это представляю как набор импульсов (щелчков) снятых с
какой-либо мониторной акустики макетом головы и соотв. проведёнными спектральными параллелями
между этими образцами(в простом случае линейная интерполяция). Да это круто и фиг допедришь,
потому что математики там ооочень много.

Цитата electrik ()
во FreeBasic, вроде, были заголовочные файлы

Находил пример от joshy на англоязычном форуме, там вроде на довольно низком уровне разобрано
(доступ к функциям через ASM вставочки). Скачав SDK конечно не врубился, там долго разгребать(слишком
много уровней абстрагирования), но в любом случае придётся отталкиваться от SDK.
 
  • Страница 1 из 1
  • 1
Поиск: