Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
1

Создать wav файл имея raw файл с данными

19.05.2015, 14:23. Показов 1590. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем хорошего настроения!
Пишу программу для обработки аudio данных, и есть необходимость преобразовывать данные wav - чистые данные - wav
кусок для преобразования 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
    wchar_t*        szFileName;                                                 // filename of file to open
    HMMIO           hwav;
    MMCKINFO        parent,child;
    UCHAR           *sound_buffer;
    WAVEFORMATEX    wf;
    wchar_t*        outwav;
    int             outwav_pos = 0;
    HANDLE          hpcm;
    DWORD           written;
    // Set chunk info
    parent.ckid         = (FOURCC)0;
    parent.cksize       = 0;
    parent.fccType      = (FOURCC)0;
    parent.dwDataOffset = 0;
    parent.dwFlags      = 0;
    // Copy to child
    child = parent;
    // Open the WAV file
    if (Form1->OpenDialog1->Execute())
    {
        szFileName = WideString(Form1->OpenDialog1->FileName/* + ".wav"*/).c_bstr();
        if(!(hwav = mmioOpen(szFileName, NULL, MMIO_READ | MMIO_ALLOCBUF)))
        {
            ShowMessage("Failed to open file wav.");
            return;
        }
        child.ckid = mmioFOURCC('W','A','V','E');
        if(mmioDescend(hwav,&parent,NULL,MMIO_FINDRIFF))
        {
            mmioClose(hwav,0);
            ShowMessage(" FAILED.\nWAV file section not found.\n");
            return;
        }
        child.ckid = mmioFOURCC('f','m','t',' ');
        if(mmioDescend(hwav,&child,&parent,0))
        {
            mmioClose(hwav,0);
            ShowMessage("FAILED.\nWAV format not found.\n");
            return;
        }
        if(mmioRead(hwav,(char *)&wf,sizeof(wf)) != sizeof(wf))
        {
            mmioClose(hwav,0);
            ShowMessage("FAILED.\nWAV file section couldn't be read.\n");
            return;
        }
        if(wf.wFormatTag != WAVE_FORMAT_PCM)
        {
            mmioClose(hwav,0);
            ShowMessage("FAILED.\nNot a PCM file.\n");
            return;
        }
        if(mmioAscend(hwav,&child,0))
        {
            mmioClose(hwav,0);
            ShowMessage("FAILED.\nBad WAV file.\n");
            return;
        }
        child.ckid = mmioFOURCC('d','a','t','a');
        if(mmioDescend(hwav,&child,&parent,MMIO_FINDCHUNK))
        {
            mmioClose(hwav,0);
            ShowMessage("FAILED.\nWAV file data missing.\n");
            return;
        }
        sound_buffer = new UCHAR[child.cksize];
        mmioRead(hwav,(char *)sound_buffer,child.cksize);
 
        mmioClose(hwav,0);
 
        outwav  = WideString(Form1->OpenDialog1->FileName.Delete(Form1->OpenDialog1->FileName.Length()-3,4) + ".raw").c_bstr();
        hpcm    = CreateFile(&outwav[0],GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
        WriteFile(hpcm,&sound_buffer[0],child.cksize,&written,NULL);
        CloseHandle(hpcm);
        RichEdit1->Lines->Add("Convert Wav to Raw complete");
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2015, 14:23
Ответы с готовыми решениями:

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

Создать текстовый файл с исходными данными любой размерности. Из текстового файла переписать числа в массив, типизированный файл. Сделать контрольный
Создать текстовый файл с исходными данными любой размерности. Из текстового файла переписать числа...

Написать программу, формирующую по исходному WAV файлу новый WAV файл
Написать программу, формирующую по исходному WAV файлу новый WAV файл, со сглаженным вершинами...

Рассчитать коэффициенты и создать файл с данными
нужно рассчитать коэффициенты Cxa, Cxa,Cxa,Cxa,Cxb,Cxc,Cxk, а также создать Res.txt и файл с...

1
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
19.05.2015, 15:56 2
...создать шапку (заголовок) WAV PCM на 44 байта и втиснуть ее впереди потока или в начале создаваемого файла. В шапке скорректировать параметры количества байт данных, каналов, глубины, частоты дискретизации.
0
19.05.2015, 15:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2015, 15:56
Помогаю со студенческими работами здесь

Создать файл, заполненный данными с изображения
Здравствуйте! Подскажите с реализацией. Необходимо создать файл, заполненный данными с...

Как создать xls файл с заполненными данными?
на данный момент использую следующий код для создания xls файла и последующего его заполнения Dim...

С помощью php создать и открыть файл xml с данными
Добрый день! Стоит задача, с помощью php создать и открыть файл xml с данными. Для решения...

Создать файл с данными о студентах и вывести список на экран
прошу помощи. Задание 2. Создать типизированный файл stud.dan, который содержит информацию: номер...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru