Форум программистов, компьютерный форум, киберфорум
Наши страницы

Direct Sound - уровень сигнала на входе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ использование SetClassLong со значением GCL_WNDPROC http://www.cyberforum.ru/cpp-beginners/thread497056.html
проблема с переназначением или взятием адреса оконной процедуры контрола при использовании манифеста для стиля XP Без манифеста - все как надо. Наверное, связано это с переездом контролов в другую...
C++ Как получит заголовок окна? Хотел спросить: вот висит окно, как получить его заголовок, если допустим я знаю указатель на это окно? И еще, допустим, открыта папка. Возможно ли вообще програмно определить по окну адрес этой... http://www.cyberforum.ru/cpp-beginners/thread497021.html
C++ Помогите с GDI+ в Borland C++ 6
Когда в Borland C++ 6 только объявляю GDI+, компилятор выдаёт кучу ошибок в самих gdiplus header`ах. Помогите! Пожайлуста!
C++ Как включить поддержку форматов кодировок?
Уважаемые программисты подскажите пожалуйста Как включить поддержку форматов кодировок: Ниже следующий понятно как включать: Все документы Word (*.doc, *.dot, *.htm, *.html, *.url, *.rtf) ...
C++ Использование Attach(HWND) и Detach() http://www.cyberforum.ru/cpp-beginners/thread496887.html
Привет всем! Что делают функции Attach(HWND) и Detach() объявленные в классе CWnd. В MSDN для Attach написано, что она присоединяет Windows окно к CWnd объекту, а в Detach, наоборот отоединяет...
C++ Не могу вызвать отчет Crystal Reports из проекта VC++ Не могу вызвать отчет Crystal Reports из проекта VC++ (.NET). Помогите пожалуйста добрым словом, а лучше - исходником:) подробнее

Показать сообщение отдельно
John Paramol
16.07.2011, 07:21
> hr = g_pWaveFile->Write( dwCaptureLength,
> (BYTE*)pbCaptureData,
> &dwDataWrote )

Если бы у меня не было того же исходника, что и у Вас, я бы долго гадал,
что же это Вы мне тут показали

> т.е. значение, например, младшего слова и будет уровнем сигнала?

Не совсем. Из вышеуказанного вытекает нижеследующее:
Из этого значения надо находить амплитуду - отклонение сигнала от значения тишины,
взятое по модулю. А уровень сигнала (можно сказать, громкость) ищется через амплитуду.
Если хотите выражать в процентах - это просто: отношение текущей амплитуды
к максимальной, X 100%. Но его принято выражать в децибелах (читайте выше).
Определение в словаре: 'децибел - логарифмическая единица измерения относительного
уровня сигнала (отношения двух сигналов).'

> а отрицательная часть - это, как я догадываюсь, нижняя полуволна синусоиды?
> тогда напрашивается другой вопрос - чтобы из этого получить уровень сигнала,
> надо считать среднее за период?

Какой период Вы имеете в виду - 2*Pi, или период времени, через который
необходимо получать рассчитанный уровень сигнала?
Я имел в виду второе.
(среднее синусоиды за период 2*Pi = 0
Можно конечно попробовать выдавать не средний уровень за какое-то время, а текущий,
но при частоте дискретизации даже 8000 герц он будет меняться 8000 раз в секунду.

Длину буфера следует брать небольшой еще и по той причине, что мы берем данные, уже
поступившие на вход, значит есть некоторое опоздание
(в половину длины буфера или более).

некоторые особо въедливые могут со мной поспорить;
типа если проигрывается тишина, но смещение постоянной составляющей (DC offset)
имеет место быть, ухо не будет слышать сигнал, а наш рассчитанный уровень сигнала
будет иметь некоторое значение. Но то же самое показывает, например, WaveLab
(попробуйте и убедитесь сами). Так что мы считаем правильно.
Вот и получается, что мы можем не услышать даже самый громкий звук,
на который способна наша звуковая карта

PS. последний абзац не берите в голову
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru