Как программно нормализовать сэмпл PCM на iOS 5? - PullRequest
0 голосов
/ 19 января 2012

Я записываю 16-битный линейный файл PCM, используя AVAudioRecorder, сохраняя его в файл CAF.

Теперь я хочу нормализовать звук, который я записал. Я просто не могу найти ЛЮБУЮ библиотеку, будь то Apple или третья сторона, которая позволяет мне делать это для iPhone!

1 Ответ

1 голос
/ 19 января 2012

Пиковая нормализация принимает эту общую форму, которую вам нужно будет добавить для преобразования в 16-битный сигнал с помощью нескольких преобразований, оптимизаций и проверки ошибок:

double* const buffer(...);
const size_t length(...);

double max(0);
// find the peak
for (size_t idx(0); idx < length; ++idx)
  max = std::max(max, buffer[idx]);
// process
double mul(1.0/max);
for (size_t idx(0); idx < length; ++idx)
  buffer[idx] *= mul;
...