Как вы печатаете тишину в аудиофайле с помощью 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);
}
Другие вопросы по тегам