Звуковой массив,.. миф или реальность?!
Модератор: Модераторы
- Nik
- энтузиаст
- Сообщения: 573
- Зарегистрирован: 03.02.2006 23:08:09
- Откуда: Киров
- Контактная информация:
Вот про BASS для Linux, увы, не знал - на сайте про ней не слова, да и на форуме только сама библиотека (не самой свежей версии). Что касается выбора между BASS и Fmod - то это дело вкуса. Я сам уже 6 лет с BASS работаю (пока только под Win) - всё более чем устраивает 
Исходники на Pascal. Использовать даже с CBuilder уже не получится. 
Nik
А где можно глянуть минимальный пример по использованию BASS для Lazarus (желательно в русскоязычном варианте)?
Например загрузка и воспроизведение маленького wav файла...
А где можно глянуть минимальный пример по использованию BASS для Lazarus (желательно в русскоязычном варианте)?
Например загрузка и воспроизведение маленького wav файла...
Там хорошая документация и, вроде бы, есть примеры. Скачайте архив и смотрите. К тому же, в сетке где-то валяется статья про использование BASS. А в lazarus или нет - разницы никакой.
Могу скинуть исходники своей недописанной кроссплатформенной звуковой библиотеки. Она работает и под Linux и под Windows. Для воспроизведения под Вин использует DirectSound или OpenAL (по выбору), для Линукс - только OpenAL. Умеет декодировать Ogg (если скомпилировать с соответствующим ключом и положить - под вин - в папку с приложением несколько длл с кодеком). Все файлы для проигрывания сначала загружаються в память, а уже потом из памяти могут неоднократно очень быстро воспроизводиться (причём используеться память аудиокарты, если доступна - она бывает на некоторых оч. дорогих аудиокартах). В отличие от PlaySnd можно проигрывать одновременно несколько звуков и они аппаратно (аудиокартой) микшируються. Есть возможность даже позиционировать источники звука в 3Д пространстве.
Но в библиотеке только начата поддержка потокового аудио (например длинный трек музыки, можно будет не грузить сразу весь в память - в расжатом виде это много - а одновременно читать с диска и сразу воспроизводить).
правка
Вообщем вот, если надо путь к SVN:
https://phloxlib.svn.sourceforge.net/sv ... hloxlib/HF
Туда я недавно залил последнюю версию, но не обновлял её уже давно (около двух лет). Библа устроена так чтоб использоваться как отдельная длл (со), но может быть и прикомпилирована к проекту.
Но в библиотеке только начата поддержка потокового аудио (например длинный трек музыки, можно будет не грузить сразу весь в память - в расжатом виде это много - а одновременно читать с диска и сразу воспроизводить).
правка
Вообщем вот, если надо путь к SVN:
https://phloxlib.svn.sourceforge.net/sv ... hloxlib/HF
Туда я недавно залил последнюю версию, но не обновлял её уже давно (около двух лет). Библа устроена так чтоб использоваться как отдельная длл (со), но может быть и прикомпилирована к проекту.
FedeX
Спасибо! Особенно заинтересовало использование OpenAL, раньше с ним не работал.
Возможно, попробую обойтись первое время без движка как такового, на чистом OpenAL (надо только посмотреть, как он себя в Linux ведет).
Нашел интересную и весьма понятную статейку по OpenAL на GameDev.ru, как раз для начинающих работать со звуком! Проверил пример на Lazarus - все отлично работает, звук играет,.. красота.
Кому интересно, прикладываю пример проекта в lazarus (воспроизводится wav-файл). Инсталятор OpenAL для Windows можно взять здесь.
P.S. Если нетрудно, кто под Linux, отпишитесь как оно там работает.
Спасибо! Особенно заинтересовало использование OpenAL, раньше с ним не работал.
Возможно, попробую обойтись первое время без движка как такового, на чистом OpenAL (надо только посмотреть, как он себя в Linux ведет).
Нашел интересную и весьма понятную статейку по OpenAL на GameDev.ru, как раз для начинающих работать со звуком! Проверил пример на Lazarus - все отлично работает, звук играет,.. красота.
Кому интересно, прикладываю пример проекта в lazarus (воспроизводится wav-файл). Инсталятор OpenAL для Windows можно взять здесь.
P.S. Если нетрудно, кто под Linux, отпишитесь как оно там работает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Под Линухом все должно быть гуд. Жаль я сейчас не под ним проверить не смогу(
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Есть ли возможность заранее подгрузить все нужные звуки в некое подобие массива и потом их воспроизвести?
А в чем проблема ? Навскидку :
А в чем проблема ? Навскидку :
Код: Выделить всё
type
pbyte: ^byte;
var
wav1_len: integer;
[..]
wavN_len: integer;
all_wavs: array[0..wavs_cnt] of pbyte;
-------------
wav1_len:= read_snd_file(snd_file1, all_wavs[0]);
[...]
wavN_len:= read_snd_file(snd_fileN, all_wavs[N-1]);
------------
[...]
wav_play_proc(all_wavs[X],wavX_len);
В примере, который я выложил выше, используется один OpenAL источник и соответственно обрабатывается один звуковой файл... Но ничто не мешает сделать массив и загрузить несколько файлов, а затем воспроизводить нужный элемент, причем возможно воспроизводить звук из нескольких источников одновременно. Я уже проверил этот вариант! Так что можно с уверенностью говорить, что звуковой массив - реальность (причем кросс-платформанная). 
Вот пример который может воспроизводить звуковой массив через OpenAL. (Код сыроват).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Andreich писал(а):FedeX
P.S. Если нетрудно, кто под Linux, отпишитесь как оно там работает.
не работает
консоль вывалила только две строки при сборке
Код: Выделить всё
[TMainIDE.DoRunProject] A
TMainIDE.DoInitProjectRun A True -1-
alex208210
- постоялец
- Сообщения: 207
- Зарегистрирован: 12.05.2010 13:16:51
FedeX
P.S. Если нетрудно, кто под Linux, отпишитесь как оно там работает.
linux sabayon(gentoo), fpc 2.4.4 .. демка работает звук играет..
Вот пример который может воспроизводить звуковой массив через OpenAL. (Код сыроват).
Этот тоже работает
