Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по определению уровня звука. Как это можно сделать через DirectSound. 
:(
    Опции темы
AndreySol
Дата 2.3.2005, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



ОС - WinMe.
Компилятор - MSVC++ 6.0 + SP5.
Как можно, используя DirectSound, получить выходной уровень звука, т.е. не регулировать уровень, а именно получить реальный уровень в какой-то момент времени.
Сразу уточню, почему мне это надо через DirestSound - у меня всторенная звуковая карта, и я пытался сделать это через работу с mixer.... - объектом, однако ничего не получилось. Видно эта дешевая железка (точнее наверно ее драйвер) не поддерживает получение уровня звука.
Хотя может я не прав ?
PM MAIL   Вверх
GoodBoy
Дата 2.3.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



Перемещено из Звук, графика и видео -> Работа со звуком.


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
AndreySol
Дата 8.3.2005, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Тишина...
И что, никто не знает как добраться до уровня звука ?
PM MAIL   Вверх
AndreySol
Дата 23.3.2005, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Ну что же вы молчите, господа !?
PM MAIL   Вверх
BBC
Дата 26.3.2005, 10:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне не совсем понятно:
Если уровень микшера, то mixerGetControlDetails() для соответствующей линии
Если уровень звука в звуковом буфере, то то ищешь в нем максимальную амплитуду
  Вверх
AndreySol
Дата 28.3.2005, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



В том то и дело, что через mixer (т.е. mixerOpen и далее mixerGetControlDetails() ) не получается, то бишь, все что касаемо уровня регулирования звука работает а все остальное (регулирование тембра, получение реального уровня звука) нет.

PM MAIL   Вверх
BBC
Дата 28.3.2005, 08:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Посмотри в свойствах микшера есть ли там регулировка по тембрам
у твоей звуковой платы. Все, что умеет микшер будет доступно и тебе,
необходимо только правильно настроить соответвующие структуры перед вызовом функций. У меня SB Live - регулируется все, даже поддается раздельная регулировка уровня записи по каналам. А под реальным уровнем звука ты понимаешь уровень пикового индикатора?
Это все равно средний уровень звука за определенный период. Но если микшер его получает, значит драйвер эти значения передает и скорее всего их то же можно получить. Жаль у меня нет звуковухи с индикатором, я бы попробовал. Но если твое приложение работает с звуковой платой - измеряй уровень в звуковом буфере, например считай среднеарифметическое значение за какой нибудь период. Удачи!
  Вверх
AndreySol
Дата 4.4.2005, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Нет у меня регулировок тембра.
Я подумал, что может быть для DirestSound есть что-то подобное классу mixer - ну ведь должен же быть какой-то интерфейс для доступа к микшеру звуковой карты ?
PM MAIL   Вверх
BBC
Дата 4.4.2005, 20:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Принцип здесь такой: Все что делает звуковуха, она отдает драйверу. Все, что принимает драйвер, он в свою очередь отдает в том числе и микшеру. А по сему что умеет делать микшер для данной звуковухи в win32 системе, то доступно и тебе. И не больше, может за каким-нибудь
исключением, но я другого не встречал. И DirestSound сдесь ни причем.
  Вверх
AndreySol
Дата 12.4.2005, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Хорошо, тады сформулируем вопрос так:
Почему в WinAmp эквалайзер работает при любой звуковой карте ?
PM MAIL   Вверх
BBC
Дата 13.4.2005, 17:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А потому что он не через DirestSound работает, а через цифровые
полосовые фильтры.
  Вверх
AndreySol
Дата 17.4.2005, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



А что за беда эти фильтры и на основе чего они работают ?
PM MAIL   Вверх
BBC
Дата 17.4.2005, 18:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Беда это такая:
Берешь массив с звуковыми данными, делаешь с ним прямое преобразование Фурье (FFТ) - получаешь спектр частот, увеличиваешь или уменьшаешь необходимую полосу, далее обратное преобразование - получаешь массив звуковых данных с измененными частотами и отправляешь его в звуковуху.

  Вверх
AndreySol
Дата 19.4.2005, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



А где об этом можно посмотреть подробнее ?
PM MAIL   Вверх
BBC
Дата 19.4.2005, 21:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сначала в теории цифровой обработки сигналов, а
потом в алгоритмах.
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.