WAV данные экстраполяции - PullRequest
0 голосов
/ 22 июня 2011

Я пытаюсь масштабировать данные в простом файле WAV. Я использую эту структуру для хранения метаинформации волны.

struct meta
{
    char chunk_id[4];
    int chunk_size;
    char format[4];
    char subchunk1_id[4];
    int subchunk1_size;
    short int audio_format;
    short int num_channels;
    int sample_rate;
    int byte_rate;
    short int block_align;
    short int bits_per_sample;
    short int extra_param_size;
    char subchunk2_id[4];
    int subchunk2_size;
};

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

Что мне нужно изменить в этой структуре, чтобы сделать wav-файл в N раз длиннее?

1 Ответ

2 голосов
/ 22 июня 2011

Если вы прочитали спецификацию файлов wav, вы увидите короткий заголовок перед каждым блоком данных, содержащим идентификатор блока и размер блока.Я бы предположил, что вам нужно изменить размер куска для размещения новой информации.

Вы также должны знать, что, если вы интерполируете новую информацию между существующими образцами в файле, вам необходимо настроитьчастота дискретизации, позволяющая воспроизводить звук без сдвига частоты.

...