Добрый вечер.
Мне нужно сэмулировать в рамках одной программы весь аудиостек: считать звуковой файл (для определённости несжатый, т. е. WAV PCM или как оно там) и «воспроизвести» с корректной скоростью, т. е. 1 сэмпл в 1/F секунд, где F — частота дискретизации. Под воспроизведением понимается вызов некоторой функции на каждый сэмпл, т. е. это не воспроизведение через звуковую карту.
Если считать, что «воспроизведение» одного сэмпла уже написано, как реализовать считывание и нужные задержки между сэмплами? Временем обработки одного сэмпла, насколько понимаю, пренебречь нельзя, т. е. sleep(1/f) не сработает.
(На самом деле не воспроизвести, а моргать лампочками через USB-реле.)