Наглая просьба о помощи с WAV-файлом

Liitle Prince

Здравствуйте!
Очень прошу кого-нибудь, кому несложно и кто имел дело с работой над wav-ами (с/с++) помочь разобрать(нашла неверный, на мой взгляд, код, который можно доработать), а может даже и написать кусок кода (увеличение частоты дискретизации через(??)треугольный шум). Имею на руках только считывание заголовка файла, по заданию нужно сделать неизвестное мне описанное ранее дейсствие. Меньше, чем через неделю сдавать курсач, разобраться с этой чертовой структурой файла не могу, слова "треугольный шум" повергают в уныние от непонимания. Если знаете, что это, объясните, пожалуйста!
Буду бесконечно признательна за помощь!

Прикладываю код, найденный на просторах(дискретизация):
void morediskr(wavheader header2)
{
FILE file=fopen("Alesis-S4-Plus-Clean-Gtr-C4.wav", "rb");
fread(&header2,sizeof(wavheader), 1, file);
int *data=new int[header2.subchunk2Size];
fread(&data[0],sizeof(char),header2.subchunk2Size,file);
fclose(file);
unsigned long old_dat_sz=header2.subchunk2Size;
//увеличить общий размер файла
header2.chunkSize+=header2.subchunk2Size;
//увеличить в 2 раза размер данных
header2.subchunk2Size
=2;
int *buf_dat=new int[header2.subchunk2Size];
//идём по циклу по половинке и записываем
for ( int i=0,j=0; i < old_dat_sz-1; i++,j+=2)
{
buf_dat[j]=data[i];
buf_dat[j+1]=(data[i]+data[i+1])/2;
}
file=fopen("Alesis-S4-Plus-Clean-Gtr-C4outdis.wav", "wb");
fwrite(&header2,sizeof(header2),1,file);
fwrite(&buf_dat[0],sizeof(char),header2.subchunk2Size,file);
fclose(file);
}
P.S. Не смогла переделать этот код, потому что работаю с файлом через операции плюсов

Структура вава:
struct WAV_HEADER
{
// Standart RIFF / WAVE header
char ChunkID[4]; // Must contains 'R', 'I', 'F', 'F'
unsigned long ChunkSize; // File size - 8 bytes
char Format[4]; // Must contains 'W', 'A', 'W', 'E'

// 'fmt'-subchunk - audio format descriptor
char SubChunkFmtID[4];           // Must contains 'f', 'm', 't', ' '
unsigned long SubChunkFmtSize;   // Must be 16 for PCM
unsigned short AudioFormat;      // Must be 1 for PCM
unsigned short NoofChannels;     // 1 for mono, 2 for stereo, etc
unsigned long SampleRate;        // 8000 Hz, 44100 Hz, etc
unsigned long ByteRate;          // SampleRate * NoofChennels * BitsPerSample / 8
unsigned short BlockAlign;       // NoofChannels * BitsPerSample / 8
unsigned short BitsPerSample;    // 8 bits, 16 bits, etc

// 'data'-subchunk - audio data
char SubChunkDataID[4];          // Must contains 'd', 'a', 't', 'a'
unsigned long SubChunkDataSize;  // NoofSamples * NoofChannels * BitsPerSample / 8

};

Обращение к другим функция программы происходит следующим образом
bool WAV_HeaderLoad(fstream &FileStream, WAV_HEADER &WavHeader)

Liitle Prince 10 месяцев назадСпасибо 0
1 чел.