Форум программистов, компьютерный форум CyberForum.ru

Чтение Riff wav файла. Получение амплитудных значений - C++

Восстановить пароль Регистрация
 
gotostereo
0 / 0 / 0
Регистрация: 13.09.2013
Сообщений: 38
21.09.2013, 18:09     Чтение Riff wav файла. Получение амплитудных значений #1
Подскажите, пытаюсь написать код для получения амплитудных значений из wav файла. Пока что удалось получить только информацию о файле.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
 
using namespace std;
 
// Структура, описывающая заголовок WAV файла.
struct  WAV_HEADER{
        char                RIFF[4];        // RIFF Header      Magic header
        unsigned long       ChunkSize;      // RIFF Chunk Size
        char                WAVE[4];        // WAVE Header
        char                fmt[4];         // FMT header
        unsigned long       Subchunk1Size;  // Size of the fmt chunk
        unsigned short      AudioFormat;    // Audio format 1=PCM,6=mulaw,7=alaw, 257=IBM Mu-Law, 258=IBM A-Law, 259=ADPCM
        unsigned short      NumOfChan;      // Number of channels 1=Mono 2=Sterio
        unsigned long       SamplesPerSec;  // Sampling Frequency in Hz
        unsigned long       bytesPerSec;    // bytes per second
        unsigned short      blockAlign;     // 2=16-bit mono, 4=16-bit stereo
        unsigned short      bitsPerSample;  // Number of bits per sample
        char                Subchunk2ID[4]; // "data"  string
        unsigned long       Subchunk2Size;  // Sampled data length
 
    };
 
int main()
{
 
    WAV_HEADER wavHeader;
    FILE *wavFile;
    
    int headerSize = sizeof(wavHeader), filelength = 0;
 
     wavFile = fopen ("C:\\123.wav", "rb");
     if (wavFile!=NULL)
      {
        cout << "File Open"; 
      } 
      else 
      {
         cout << "File no open"; 
      };
      
        fread(&wavHeader,headerSize,1,wavFile);
        printf("Info %d\n", wavHeader.Subchunk2Size);
      
      
    _getch();
    return 0;
}
Может кто знает, как записать в массив все амплитудные значения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 18:09     Чтение Riff wav файла. Получение амплитудных значений
Посмотрите здесь:

Чтение значений из файла C++
неправильно считываются данные из WAV файла C++
склеить 2 wav файла C++
C++ Чтение из бинарного файла значений
Чтение 16-и битных слов из бинарника (загрузка Wav) C++
C++ Чтение самплов из wav файла в массив
C++ Открытие wav файла и чтение его заголовка
C++ Решение уравнения. Чтение из файла значений и запись результатов в файл

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru