Генерация синусоидальной развертки в C # - PullRequest
0 голосов
/ 22 ноября 2010

Я хочу создать синусоидальную развертку в C #, где я могу определить начальную частоту, конечную частоту и продолжительность развертки.Я посмотрел на звуковые библиотеки, такие как DirectSound и ASIO, которые воспроизводят буфер.Но я не смог выяснить, как контролировать продолжительность цикла, когда продолжительность цикла достаточно велика, чтобы заполнить более одного буфера из-за ограничения размера буфера.Любые образцы или руководства будут чрезвычайно полезны.

1 Ответ

2 голосов
/ 22 ноября 2010

Если вы довольны работающей программой, не написав ее самостоятельно, посмотрите на Генератор тестовых файлов аудио .

Этот небольшой EXE-файл Windows может генерировать линейную развертку синусоиды сзаданная начальная и конечная частота.


Если вы хотите записать его самостоятельно, вы должны заполнить буфер, используя:

sin(2*pi * f * n/sample_rate)

где

f - текущая частота синуса (вы хотите развернуть) в Гц
n - индекс выборки буфера
sample_rate - частота дискретизации в Гц

Пример с f = 10 Гц .

...