camlorn_audio
|
|
electrik | Дата: Понедельник, 29.09.2014, 19:04 | Сообщение # 1 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: 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 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1363
Статус: Offline
| Потестировал, работает. Плохо конечно, что автор забил на продукт, если будут баги, уже хрен кто исправит.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
Alec | Дата: Вторник, 30.09.2014, 08:25 | Сообщение # 3 |
![Alec](/avatar/61/7340-877541.gif) Лейтенант
Группа: Друзья
Сообщений: 73
Статус: Offline
| Очень интересно. Так я моё программирование в основном связано с игрушками, очень нтересно попробовать. Особенно "бинауральный" эффект. Обязательно попробую.
Спасибо, electrik.
WorldSim3D - 3D движок для FreeBasic, для PC. Мощная 3D графика и простота программирования. Ознакомиться.
|
|
| |
electrik | Дата: Четверг, 02.10.2014, 17:39 | Сообщение # 4 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: Offline
| исправить то можно, проект opensource, но будет ли кто. я глядел чутка, помимо всего прочего, он немного модифицировал OpenalSoft. насамом деле, надо самим разобраться с openalsoft, и сделать обёртки, ибо изначально на нем много писать надо. в openalsoft, тоже поддерживаются hrtf бинауральные функции, и он развивается. плохо что основная документация - это от openal, а новшества отдельно. пока я в целом не видел всей документации, может плохо искал. и реально, русских форумов по openal, мне кажется, тоже мало. незнаю почему народ его стороной обходит, мож кодить на чистом си не хочет, а обёртки лень делать, ведь там потенциал заложен не плохой, причем, подчеркну, софтварная обработка звука, а это значит, мы больше не зависим от крутых звуковых карт, в которые встроены бинауральные эффекты, и как западло, в новых windows микрософты отказались от аппаратной поддержки данных карт, ну например creative. надо просто чутка по мощнее процессор компа. да и алгоритмы там не такие уж крутые, не много проца они съедят, учитывая какие сейчас у всех компы. есть для creative приблуды, которые позволяют вернуть 3д звук, но это заморочки, а тут человек запустил игру и о чудо, 3д уже есть. и если учесть тот момент, что directsound привязан только к винде, openalsoft - открытый, а значит при усилиях его можно портировать на другую платформу.
|
|
| |
Alec | Дата: Четверг, 02.10.2014, 22:20 | Сообщение # 5 |
![Alec](/avatar/61/7340-877541.gif) Лейтенант
Группа: Друзья
Сообщений: 73
Статус: Offline
| Сегодня тоже потестировал. Впечатляет. Из простого звука такие эффекты! Думаю, включу её в мой игровой движок. И действительно, только в наушники можно услышать объёмный звук, например как вертолёт кружит вокруг меня.
WorldSim3D - 3D движок для FreeBasic, для PC. Мощная 3D графика и простота программирования. Ознакомиться.
|
|
| |
electrik | Дата: Понедельник, 04.09.2017, 15:07 | Сообщение # 6 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: 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 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1363
Статус: Offline
| К сожалению твой архив не сохранился. Возможно тебе стоит посмотреть на libaudioverse. Написана тем же автором, возможно даже та же либа , только чуть "причесанная".
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
quiet_snow_los | Дата: Суббота, 09.09.2017, 00:24 | Сообщение # 8 |
Рядовой
Группа: Пользователи
Сообщений: 16
Статус: Offline
| Цитата electrik ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) обёртку над OpenAlSoft Зачем над OpenAL, это же гемор для юзера, искать, ставить эту библу в систему.
|
|
| |
electrik | Дата: Понедельник, 25.09.2017, 14:10 | Сообщение # 9 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: 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
Статус: Offline
| Цитата electrik ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) но там как я говорил написано на пурике Это даже лучше, никакого 4GL кода. С середины 2009, полтора года кодил на пурике, и сейчас бы кодил, но FB мне нравится больше по ряду моментов. Исходники на самом деле меня не интересуют, разве что заинтересовал бы пример загрузки и сохранения в OGG.
Цитата electrik ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) Ну гемора тут ни какого нет. софтварный openal не надо ставить в систему. Помню ставил Open Dune Golden Path, посмотреть что за зверь, так там не было этой библиотеки, пришлось идти на сайт OpenAL, а там чёрт ногу сломает. Видимо по лицензии его нельзя включать и миксовать с другими версиями лицензий, что сводит на нет все бенефиты, ну просто других объяснений не вижу, иначе что мешало разработчиками положить нужную и важную библиотеку в комплект. Меня все эти библиотеки интересуют разве что со стороны использования в профессиональных нуждах, а они все как бы больше под игры заточены. Хочу вот поковырять ASIO, раздражает лишь то, что все сорцы на c++ и завёрнуты в миллион абстракций, это хуже макаронного кода в десятки раз, т.е. это реально долго разгребать. Всё это настолько обидно, что просто ппц, раньше всё это железо на примере Sound Blaster кодилось двумя строчками через порты. И переносилось между языками моментально, а теперь всё тупо на си и скодено так, что можно вешаться.
Что касаемо 3D звука, меня это бы интересовало с позиции того как это можно закодить без использования библиотек, вот это по настоящему крутая тема.
|
|
| |
electrik | Дата: Среда, 27.09.2017, 12:02 | Сообщение # 11 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: 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
Статус: Offline
| electrik, полностью согласен с озвученным.
Не знаю что такое mitkemar \ ciair но себе это представляю как набор импульсов (щелчков) снятых с какой-либо мониторной акустики макетом головы и соотв. проведёнными спектральными параллелями между этими образцами(в простом случае линейная интерполяция). Да это круто и фиг допедришь, потому что математики там ооочень много.
Цитата electrik ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/10/lastpost.gif) ) во FreeBasic, вроде, были заголовочные файлы Находил пример от joshy на англоязычном форуме, там вроде на довольно низком уровне разобрано (доступ к функциям через ASM вставочки). Скачав SDK конечно не врубился, там долго разгребать(слишком много уровней абстрагирования), но в любом случае придётся отталкиваться от SDK.
|
|
| |
|