Как вы печатаете тишину в аудиофайле с помощью libsndfile?
Я делаю несколько простых программ с использованием libsndfile и в настоящее время пытаюсь найти способ напечатать тишину в аудиофайле - кроме отключения звука из другого файла. Якобы я делаю драм-машину. В данный момент я могу записать только длину входного аудиофайла и добавить их друг к другу, если я того захочу. Хотелось бы получить больше понимания этой, казалось бы, супер простой задачи... или пощечину, если это на самом деле так просто.
Спасибо!
1 ответ
Тишина в аудиофайле - это просто набор последовательных сэмплов с нулевым значением.
Вставить N кадров тишины в текущем положении записи файла так же просто, как:
void sf_insert_silence (SNDFILE *file, int channels, int frames)
{ short silence [frames * channels];
memset (silence, 0, sizeof (silence));
sf_writef_short (sndfile, silence, frames);
}