Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IBasicAudio, put_Volume - реальная граница?


DevilDevil ©   (2006-12-01 00:05:00) 

В справке говорится, что нижняя граница = -10000, в путной книжке по программированию музыки (про DirectMusic, правда), говорится -9600. Однако уже при -5000 музыки не слышно. А на самом деле?


XProger   (2006-12-08 22:24:00) [1]

DevilDevil, ogg многопоточен и громкость регулируется. mp3 mid wma в качестве музыки в своих проектах использовать не собираюсь.


DevilDevil   (2006-12-05 23:21:00) [2]

> XProger ©   (05.12.06 18:12) [7]

1) Thanks
2) Эх, Прогер, Прогер... вот у тебя в движке и 3D звук и поддержка OGG уже появилась... а вот трекерной музыки и нормальной многопоточной, с регулеровкой громкости, mp3-wma-mid-... музыки до сих пор нет...


XProger   (2006-12-05 18:12:00) [3]

DevilDevil, причёт тут OGG? Это стандартный диапозон DirectSound'а )


DevilDevil   (2006-12-05 12:41:00) [4]

> XProger ©   (05.12.06 01:52) [5]

Thanks, а в OGG какой диапазон?


XProger   (2006-12-05 01:52:00) [5]

procedure TOGG.SetVolume(Value: Integer);
var
 db : Integer;
begin
 if not Ready then Exit;
 if Value > 100 then Value := 100;
 if Value < 0   then Value := 0;
 if Value = 0 then
   db := DSBVOLUME_MIN
 else
   db := Trunc(33.22 * 100 * ln(Value/100)/ln(10));
 Buffer.SetVolume(db);
end;

Переводим проценты (0-100) в децибелы )


DevilDevil   (2006-12-04 11:54:00) [6]

> а книжку лохи писали

Ну если Вы автора кучи статей на gamedev.net (Мейсон МакКаски) и редактора этой книги Андре Ламота лохами считаете...

А как преобразовать экспонентный закон в линейный, знает кто-нибудь?


NailMan   (2006-12-03 13:37:00) [7]

Справка не врет, а книжку лохи писали, которые справку не читали. А чтобы плавно повышать звук сделай значения по кривой(достаточно будет 15-20 точек) от -10000 до 0. Я у себя в плеере(новой версии) даже решил сделать эту кривую настраиваемой. Выглядит как эквалайзер. Соотвественно когда пользователь изменяет громкость(движок максимум на 20 положений), то пихается нужное число громкости.

На самом деле у мелкого сделана громкость не с линейным законом, а с экспонентой, так что что -9000 что -5000 - одинаково оччень тихо. Почему так - х.з. Потому то я и сделал настраиваему кривую громкости, чтобы на слух приблизить шкалу громкости к линейной зависимости.


DevilDevil   (2006-12-01 10:44:00) [8]

Ну я вообще надеялся, что из мастеров сталкивался кто-либо с такой проблемой...


Дмитрий Белькевич   (2006-12-01 05:43:00) [9]

А кто ж правду знает? Проверь на тройке-пятерке машин/звуковух, сам узнаешь...
Есть предположение, что от производителя сильно зависит.


Наверх

Титульная страница Поиск, карта сайта Написать письмо