Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2009-05-01 15:43:14 ЛС | профиль | цитата
HikeR писал(а):
однако чем генерировать управляющие переключением импульсы в одну микросекунду?

Ни одна программа, выводящая звук, не генерирует его синхронно. Сначала генерируется буфер, а потом он передаётся посредством используемого API звуковой карте. Главное - вовремя передавать подготовленные данные, т.е. когда используемое API (например BASS в нашем случае) проинформирует о том, что данные кончаются.

Одна микросекунда - слишком малое время. Если каждую микросекунду менять сигнал с 1 на 0 и наоборот, то получишь частоту 500КГц. Вывод сигнала такой частоты через звуковую карту не имеет смысла (да и невозможно). Если тебе нужно вывести импульс длинной 700 мкс, то при частоте дискретизации 44100Гц это будет соответствовать приблизительно 30 сэмплам в буфере (30/44100Гц ~ 680мкс). Данные нужно готовить для всех импульсов в одном буфере. Т.е. твоя задача каждые 20мс передавать на воспроизведение буфер с подготовленными таким образом данными.
карма: 1

0