Форум: "Media";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];
Внизсигнал заданной частоты и длительности на саунд Найти похожие ветки
← →
XAli (2003-08-30 09:12) [0]Привет мастера.
Как на саундкарту послать сигнал заданной частоты и длительности?
← →
Fenik (2003-08-30 21:03) [1]http://delphibase.endimus.com/?action=viewfunc&topic=mediasound&id=103 48
← →
XAli (2003-09-01 08:54) [2]Там на спикерфон, а мне надо на саундкарту, а еще там целые частоты, т.е. я могу послать сигнал 1000 Гц, а вот 999,45 ГЦ не могу :(
Как быть?
← →
FoxBox (2003-09-01 09:59) [3]Как путь поиска - DirectSound (подсистема DirectX). Знает как общаться со звуковыми картами
← →
Verg (2003-09-01 11:52) [4]MMSystem, функции waveOUT****
← →
fedot (2003-09-01 13:51) [5]MMTools( вкладка MMDSP) - посылает, что угодно и любой длительности
← →
Evgeny V (2003-09-02 05:54) [6]См. 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.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c