|
FMOD Ex 4.44.08 - заголовочные файлы + примеры
|
|
| electrik | Дата: Понедельник, 30.09.2013, 03:22 | Сообщение # 1 |
|
Полковник
Группа: Друзья
Сообщений: 184
Статус: Offline
| многие знают что такое fmod 3.74 - это бесплатная для некоммерческого использования,библиотека для работы со звуком, заголовочные файлы которой входят в дистрибутив FreeBasic. представляю одну из последних адаптированных под FreeBasic версий fmod четвертой линейки - fmod ex. пока я тут ковырялся, вышел fmod studio, и про fmod ex они пишут, что это старье уже, хотя выпущено в 2013 году. небуду особо расписываться, по гуглите или почитайте официальную документацию, скажу лишь, что возможностей немеренно, такие как прохождение звука сквозь преграду, высокочастотные, низкочастотные, полосовые фильтры, генераторы простых волн. поддержка интернет потоков, такие как интернет радио. поддержка многих аудиоформатов, mp3, ogg, wav и т.д. есть загрузка файлов не только средствами fmod ex, а можно через callback функции, а в них уже открывать, читать, позиционировать, закрывать теми методами, которые по вашему мнению быстрее. поддержка своих dsp плагинов, и сторонних vst эффектов (не инструментов). думаю, больше всего заинтересуют примеры geometry из examples, и 3ddemo из fmoddesigner ,тут вы познакомитесь не только с функциями fmod, но и с работой библиотек glut и soil. большинство примеров программ консольные, но есть и gui. чтоб не компилить, exe'шники тоже есть. качаем (download): ftp://el-zone.spb.ru/freebasic/libs/fmodex_fb_4.44.08.7z официальный сайт библиотеки fmod ex: http://fmod.org
|
| |
|
|
| haav | Дата: Понедельник, 30.09.2013, 08:36 | Сообщение # 2 |
 Генералиссимус
Группа: Администраторы
Сообщений: 1437
Статус: Offline
| Спасибо, выложил на основной сайт.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
| |
|
|
| electrik | Дата: Вторник, 22.12.2015, 16:54 | Сообщение # 3 |
|
Полковник
Группа: Друзья
Сообщений: 184
Статус: Offline
| Вот оно. теперь работает для x86 и x64. тестировал в windows Freebasic 1.04. в архиве cmd сборщики примеров для x86 и x64. https://dl.dropboxusercontent.com/u...._x64.7z
|
| |
|
|
| haav | Дата: Среда, 23.12.2015, 07:28 | Сообщение # 4 |
 Генералиссимус
Группа: Администраторы
Сообщений: 1437
Статус: Offline
| Цитата electrik (  ) Вот оно. теперь работает для x86 и x64
У меня компиль 1.03 , из-за этого наверно некоторые примеры не запускаются. Но обновляться буду уже на 1.05. В любом случае спасибо!
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
| |
|
|
| electrik | Дата: Среда, 23.12.2015, 14:35 | Сообщение # 5 |
|
Полковник
Группа: Друзья
Сообщений: 184
Статус: Offline
| да, возможно такое. не все примеры я проверил, понадеялся, но некоторые и у меня не работают. возможно, косяк в winapi, или в типах переменных. в x64 не работают те примеры, которые связаны с потоками типа beginthread, enterCriticalsection и т.д. пока не понимаю как это поправить. можно выкинуть их нафиг из примеров, там и других достаточно, для понимания работы с библиотекой.
|
| |
|
|
| 12valera12 | Дата: Воскресенье, 03.11.2024, 11:39 | Сообщение # 6 |
|
Рядовой
Группа: Пользователи
Сообщений: 11
Статус: Offline
| Добрый день может сохранился где то FmodEx_fb_4.44.08_x86_x64 ? попрошу рабочую ссылку
|
| |
|
|
| haav | Дата: Воскресенье, 03.11.2024, 16:52 | Сообщение # 7 |
 Генералиссимус
Группа: Администраторы
Сообщений: 1437
Статус: Offline
| здесь: https://users.freebasic-portal.de/freebasicru/download.html Не помню уже , годится ли она для 64-bit. И тем более не знаю , как она будет работать на современной версии компилятора.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
| |
|
|
| 12valera12 | Дата: Понедельник, 04.11.2024, 23:08 | Сообщение # 8 |
|
Рядовой
Группа: Пользователи
Сообщений: 11
Статус: Offline
| Спасибо! буду пробовать
|
| |
|
|
| electrik | Дата: Вторник, 04.02.2025, 19:44 | Сообщение # 9 |
|
Полковник
Группа: Друзья
Сообщений: 184
Статус: Offline
| Ой, как это давно было... Вообще, всё это уже морально устарело, лучше использовать [Steamaudio](https://valvesoftware.github.io/steam-audio/), в связке с [miniaudio](https://github.com/mackron/miniaudio) Но вот незадача, пока никто это не адаптировал для FreeBasic. Незнаю, доберутся ли у меня до этого руки. С Miniaudio, заморочек много будет, ибо там вообще исходник и прототипы описаны в одном H файле. И лицензия у неё такая, что можно делать что угодно. Если для FreeBasic Адаптировать miniaudio, то сразу со статическими библиотеками, потому что Miniaudio рассчитана для того, чтобы просто подключил .h файл и компилировал вместе со своим C исходником в бинарник. В идеале, это красиво обернуть и сделать нормальную библиотеку для FreeBasic, которая будет работать полноценно с 3d, звуком и кроссплатформенно. Есть конечно openalsoft, но помоему, связка двух вышеприведённых библиотек, по функционалу будет лучше, да и красивей. Знаю про FBSound, но как мне показалось, у него отклик медленный и там, вроде, нет HRTF. функций, которые как раз дают бинауральный 3D звук.
|
| |
|
|
| DarkDemon | Дата: Пятница, 07.02.2025, 04:58 | Сообщение # 10 |
|
Генерал-майор
Группа: Друзья
Сообщений: 263
Статус: Offline
| >>>В идеале, это красиво обернуть и сделать нормальную библиотеку для FreeBasic, которая будет работать полноценно с 3d, звуком и кроссплатформенно.
Скажу честно, вот нафиг не нужна кроссплатформа. Для начала под винду чтобы работало, а потом уже куда угодно "пилите шура, пилите" Компиль же FB сейчас имеет серьёзные баги. Лично у меня на одном из старых исходников он намертво зависает, драконя память как руткит. По поводу звука, для 98% людей хватило бы банальной библиотеки просто проигрывания(и микширования) Wav файлов(ну и загрузки их в память разумеется). Ещё одному проценту потребовалось бы эти файлы разводить по панораме и менять питч. И из оставшегося процента GameDev-еров, дай бог трети нужно 3D, т.к. 3D на FB ещё написать надо, а в свете почти всех отвалившихся Irrlicht врапперов, остаётся только голый OpenGL, что конечно классно, но налагает некоторые требования к программисту))).
3D звук же средствами винды(EAX) - имхо странное дело, на 3D звук похоже слабо(на реалтеках во всяком случае). Средствами линукса наверное ещё более странное.
Самый правильный путь для 3D - это конволюционные холлы(т.е. надо это написать, а написать так чтобы написать - "не только лишь все, мало кто может это делать"). Лично я знаю лишь одного человека из BASIC среды, который уверенно владеет математикой обработки сигналов(the trick с VB), остальные пользуются готовыми решениями. Причём одно дело написать чтобы это работало, так ещё надо где-то снять параметры комнаты и создать импульсы помещения. Ну и конечно скомбинировать это всё в коде(что с точки зрения производительности тоже непросто) При всём это будет самая простая модель 3D, не учитывающая геометрию виртуального помещения, а чтобы учитывала, надо ещё писать рейтрейс помещения определять длину лучей от источника звука и исходя из этой длины, направления и кол-ва отражений исходящих лучей - формировать АЧХ огибающую(обычным эквалайзером) на каждый источник. В общем это всё очень сложно и об этом даже думать не хочется. Ну как бы сложность и говорит сама за себя, за 25 лет с момента разработки FB никто, ничего подобного не написал на самом FB, только бегают с чужими хедерами и пытаются "прикошачить", а потом, через пару апгрейдов компилятора - оно, разумеется, успешно отваливается и возьня начинается по новой.
Касательно статики и 1 файла - всегда топил за минимализм и целостность, чем меньше фигни болтается в директории с проектом тем комфортнее программисту.
|
| |
|
|
| electrik | Дата: Суббота, 04.10.2025, 19:35 | Сообщение # 11 |
|
Полковник
Группа: Друзья
Сообщений: 184
Статус: Offline
| Согласен. Но отваливается, как правило, то, что зависит от winapi, или из-за специфических типов. Кто двадцать лет назад мог бы подумать, что майкрософты начнут переименовывать типы в хедерах! Те туториалы ицзелиона которые я делал, на x64 работать не будут. Скорее всего, с ошибками будут собираться. Поповоду бинаурального звука: а не надо всем математику знать. Как раз современные библиотеки работают софтварно, а значит, будут работать на люьбой балалайке, поэтому, кроссплатформенность нужна. Вряд ли кто будет для FreeBasic разрабатывать современную профессиональную библиотеку, ну зачем, если уже есть отлаженные C библиотеки! Так уж складывается, что это теперь для любителей. Сейчас больше пол мира пишут на python, и в общем, сильно не заморачиваются по поводу того, что это интерпретатор. Быстрые участки можно написать нативно на C, а вызывать функции можно и на интерпретаторе. И jit компиляцию никто не отменял. И готовых библиотек там, наверное, больше чем у C++. Хотелось бы, чтобы FB был крут, но не судьба. Так же и с PureBasic - его выпускают, мужик до сих пор заморачивается с оптимизацией, чтобы бинарники были маленькие, но посути, этим пользуется небольшая кучка людей и к сожалению, серьёзно никто эти компиляторы не рассматривает как профессиональные. Да и у меня получается так: я интересуюсь синтезом речи, нейросетями, такое на FB не напишешь. Поэтому, с python приходится иметь дело каждый день. Ну и действительно, там ты не изобретаешь велосипед, потому что всё научное уже написано.
|
| |
|
|
| DarkDemon | Дата: Суббота, 04.10.2025, 23:18 | Сообщение # 12 |
|
Генерал-майор
Группа: Друзья
Сообщений: 263
Статус: Offline
| Цитата Хотелось бы, чтобы FB был крут, но не судьба. Да тут, блин, на такие коряги напарываешься, что пипец...
Вот банально, есть задача запустить DirectInput на версии 0.23.0.
Делаешь:
Код #INCLIB "dinput8" #INCLIB "dxguid"
TYPE _DIDATAFORMAT dwSize AS ULONG dwObjSize AS ULONG dwFlags AS ULONG dwDataSize AS ULONG dwNumObjs AS ULONG rgodf AS ANY PTR ' Упрощено для уменьшения экзампла END TYPE
TYPE DIDATAFORMAT AS _DIDATAFORMAT
EXTERN "Windows" EXTERN c_dfDIMouse2 AS CONST DIDATAFORMAT END EXTERN
Можно спокойно обращаться к экземпляру c_dfDIMouse2, например:
Цитата PRINT @c_dfDIMouse2 Дальше пишешь:
Цитата SCREENRES 640, 480, 32, 2, 0 и КАБЗДА! Имеем то, что уже не исправляется:
Цитата C:\FB\compiler\lib\win32/libfbgfx.a(libfb_gfx_driver_ddraw.o):libfb_gfx_driver_ddraw.c:(.rdata+0x50): multiple definition of `IID_IDirectDraw2' C:\FB\compiler\lib\win32/libdxguid.dll.a(dxguid.o):dxguid.c:(.rdata+0x18e0): first defined here C:\FB\compiler\lib\win32/libfbgfx.a(libfb_gfx_driver_ddraw.o):libfb_gfx_driver_ddraw.c:(.rdata+0x60): multiple definition of `GUID_Key' C:\FB\compiler\lib\win32/libdxguid.dll.a(dxguid.o):dxguid.c:(.rdata+0xd70): first defined here C:\FB\compiler\lib\win32/libfbgfx.a(libfb_gfx_driver_ddraw.o):libfb_gfx_driver_ddraw.c:(.rdata+0x70): multiple definition of `GUID_SysKeyboard' C:\FB\compiler\lib\win32/libdxguid.dll.a(dxguid.o):dxguid.c:(.rdata+0xfe0): first defined here Я это написал, потому что если инклудить '#INCLUDE ONCE "Win/dinput.bi", то он это уже содержит. Сегодня перелопатил его весь, сделал неюникодный огрызок с полным набором структур, около тысячи строк инициализации всякого гавна. Руками определить c_dfDIMouse2 - не удалось, трейсил память, смотрел что там лежит в этой структуре. Воссоздавал тоже самое аллокатами через UDT. Хрен там пел. на версии 1.05 и последней - работает только "заводская" структура. На версии 0.23.0 самопал запускается и не работает.
FBGfx конфликтует с двумя подключенными библиотеками и хер чё сделаешь. В MSDN нихера не написано, там написано берите готовые структуры и всё мол зашибись, ага... Так и живём. Спотыкаясь через раз. Так-то сам на последней версии сижу, но меня попросили "понизить" версию. Так что если бы только зависоны компилятора, которые появились сравнительно недавно. Но есть и то, что не исправить в принципе.Добавлено (04.10.2025, 23:29) --------------------------------------------- Это ещё о том что юнит тесты разработчиков компиля не очень классное решение. Отдельно без FbGfx-a может и можно завести. А совместно не тестилось, всё как обычно. И сколько всего ещё точно так же не тестилось - неизвестно. Ошибка возникает вообще в промежуточном слое трансляции и никаких защитных #IFNDEF-ов там нет. Добавлено (05.10.2025, 09:02) ---------------------------------------------
Цитата Так же и с PureBasic - его выпускают, мужик до сих пор заморачивается с оптимизацией, чтобы бинарники были маленькие, но посути, этим пользуется небольшая кучка людей и к сожалению, серьёзно никто эти компиляторы не рассматривает как профессиональные. Дело не в компиляторе, а в аббревиатуре BASIC, от которой чурается всё мировое сообщество после того как мудак Эдсгер высказал своё "веское". И когда Microsoft серьёзно перестало этим заниматься - оно просто сдохло. Да мы и не переживаем, Паскаль тоже в дерьме))). И плюсы, в принципе, там же со своими "another standart yet". Потому что писать стало слишком сложно, кодинг выгребают только динозавры, у остальных банально недотестинг. Нюансов слишком много, операционных систем слишком много.
Цитата Да и у меня получается так: я интересуюсь синтезом речи, нейросетями, такое на FB не напишешь. Какое совпадение, я тоже этим сильно интересуюсь и, , , когда разгребу всё это техническое дерьмо(на которое может уйти, без малого, вся жизнь) - может и побалуюсь чисто для себя. Пока же можно использовать бинарники Whisper, распознают они хорошо, только для них, для конвеерной обработки надо писать нефиговую обёртку, т.к. инициализация модели со старта несколько секунд, поэтому надо, заготовить список на 1000 файлов и банально тормозить выполнение программы, посылая консольному приложению клавиатурную команду Pause Break. Ну это чисто идея, реализации у меня пока нет, рук не хватает.
|
| |
|
|
| haav | Дата: Воскресенье, 05.10.2025, 13:05 | Сообщение # 13 |
 Генералиссимус
Группа: Администраторы
Сообщений: 1437
Статус: Offline
| Цитата Вот банально, есть задача запустить DirectInput на версии 0.23.0. Да , на этой версии какой-то конфликт. Начиная с 0.24 вроде работает.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
| |
|
|
| DarkDemon | Дата: Воскресенье, 05.10.2025, 16:44 | Сообщение # 14 |
|
Генерал-майор
Группа: Друзья
Сообщений: 263
Статус: Offline
| Цитата Да , на этой версии какой-то конфликт. Начиная с 0.24 вроде работает. Чуть позже пересажу человека на нормальную версию, просто у него только эта, а он в настройке компилятора не разбирается. Последняя по оптимизации просто дожимает чуть лучше, по сравнению например даже с 1.09.0 это тестировал на флор маппере. А эти баги не поборю, это какая-то дичь, понятно что делать пересборку библиотек "outdated" компиля никто не будет. Мои планы постоянно отодвигаются, сейчас на повестке дня простенькая звуковая библа + аналог GL2D но с опциями 3D, что-то банальное не сложное, текстуры, растровый шрифт, освещение, ввод. По мелочи-то почти всё есть в виде разрозненных кусков, собрать это всё воедино, скодить, отрефакторить под пространства имён, чтобы для начала это удобно было, потестить. Причём заслуга именно таких профиков как Стас и locm во всём этом большая, они много всего интересного мне надавали по WinAPI, нужно распорядиться знаниями как следует. Технической дичи просто ОЧЕНЬ много, прям дофига, меня тупо не хватает на всё, до реального кодинга дело не доходит, занимаюсь, прости хоспади, какой-то хернёй.
Вот например на прошлой неделе собрал модуль с демкой, пока так себе получилось, нужно переписать часть кода и что-то ещё дописать, потестить. Сложного ничего не планируется, элементарщина only, потом уже если время и силы будут, тогда можно и углубиться.
https://rutube.ru/video....60mecZw
А по звуку понятно что MME и простой микшер, может на SSE если руки дойдут его ковырнуть. electrik говорит про совсем сложные вещи, т.е. про научную работу. Нужна высокая квали чтобы такие вещи осознанно писать, осознанно это не после соотв. школ и преподов, которые просто вбили что-то в бошку, а когда ты сам всю математику процесса освоил, переварил в себе и понял суть каждой детали. Осознанно умеют кодить сущие единицы, к "блогерам вондеркиндам" это не относится, они то как раз всем макакам макаки, и багов там ровно столько, про сколько всегда и говорю))) ни больше ни меньше.Добавлено (05.10.2025, 17:05) --------------------------------------------- Заранее извиняюсь за оффтоп. Если что, думаю Стас перенесёт посты куда надо. Нет цели упарывать темы, мало сейчас движухи, а так хоть что-то пообсуждать, отметиться, что, мол, в строю, не сдох))).
|
| |
|
|
| zamabuvaraeu | Дата: Понедельник, 06.10.2025, 07:48 | Сообщение # 15 |
|
Полковник
Группа: Друзья
Сообщений: 173
Статус: Offline
| > Хотелось бы, чтобы FB был крут, но не судьба.
FreeBASIC крут. Это как си, только приведённый в чувство. Без закорючек и псевдографики вместо синтаксиса.
> Так же и с PureBasic - его выпускают, мужик до сих пор заморачивается с оптимизацией
Не согласен.
Во‐первых, перевод исходного кода PureBasic в FASM — это не оптимизация. Это трансляция «как есть». Оптимизация — это всякие штуки вроде встраивания функций, удалении неиспользуемых переменных и мёртвых веток кода, развёртки цикла и прочих свёрток констант.
Во‐вторых, он уже перекатился из FASM на си и так «осовременил» встроенные библиотеки, что вместо программ на 15 килобайт компилятор содаёт Bloatware на 150 килобайт.
|
| |
|
|
|