![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сигнал заданной частоты и длительности на саунд [D5, Win95/98]
XAli © (2003-08-30 09:12:00)
Привет мастера.
Как на саундкарту послать сигнал заданной частоты и длительности?
Evgeny V (2003-09-02 05:54:00) [1]
См. waveOutOpen и все остальные функции на waveOut, также смотри компоненты на www.torry.net(типа TоneGen, ну да их там много). Если захочешь сам, то посылаешь буфер, который сперва заполняешь сигналом, например short int buf[8000] - частота дискретизации 8000 Гц, 16 бит в выборке, длительность сигнала 1сек. for(int i=0;i<8000;i++){buf[i]=(int) (32767.0 *sin(2*M_PI*(float)i*999.45/8000.0))} получаем сигнал полного размаха(код на си), точность по частоте тем выше , чем больше частота дискретизации ну и верхняя макс. частота тож от этого зависит(частота дискретизации/2), можешь взять и другую цифру, не 8000, например 22050. Все зависит от требований задачи. Можешь в буфер ложить и сумму сигналов, только учитывай, что для 16 бит значения суммарного сигнала не должно превышать 32767, т. е . для простоты можешь сперва проссумировать сигналы, разделить их на количество сигналов и потом только умножать на 32767.
fedot (2003-09-01 13:51:00) [2]
MMTools( вкладка MMDSP) - посылает, что угодно и любой длительности
Verg (2003-09-01 11:52:00) [3]
MMSystem, функции waveOUT****
FoxBox (2003-09-01 09:59:00) [4]
Как путь поиска - DirectSound (подсистема DirectX). Знает как общаться со звуковыми картами
XAli (2003-09-01 08:54:00) [5]
Там на спикерфон, а мне надо на саундкарту, а еще там целые частоты, т.е. я могу послать сигнал 1000 Гц, а вот 999,45 ГЦ не могу :(
Как быть?
Fenik (2003-08-30 21:03:00) [6]http://delphibase.endimus.com/?action=viewfunc&topic=mediasound&id=10348