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

Редактирование wav файлов в С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Alexan4ez
 Аватар для Alexan4ez
2 / 2 / 1
Регистрация: 09.05.2011
Сообщений: 13
27.05.2012, 15:48     Редактирование wav файлов в С++ #1
Добрый день, друзья. Подскажите, кто сможет, как в С++ именно в консольном приложении редактировать аудио файлы? В большом и широком интернете я пока только нашел, как воспроизводить... подскажите пару способов на счет добавления эха и реверберации. Или ссылку на хорошую статью, где об этом подробно может быть расписано. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2012, 15:48     Редактирование wav файлов в С++
Посмотрите здесь:

редактирование файлов C++
C++ Редактирование файлов
редактирование .mp3 файлов C++
микширование файлов wav C++
C++ Чтение и редактирование файлов .cod
C++ Редактирование(добавление/удаление) объемных текстовых файлов
C++ Извлечение WAV - файлов из ресурсов и их использование
C++ Подключение текстовых файлов и их редактирование

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
27.05.2012, 17:09     Редактирование wav файлов в С++ #2
смотрите в сторону fmod и OpenAL
Alexan4ez
 Аватар для Alexan4ez
2 / 2 / 1
Регистрация: 09.05.2011
Сообщений: 13
28.05.2012, 15:57  [ТС]     Редактирование wav файлов в С++ #3
Да хотелось бы обойтись без подключения сторонних библиотек... я в принципе нашел примеры реализации, но соль в том, что там считывается все, кроме значения амплитуд, которые мне так нужны. Считывается RIFF, fmt, а data нет. Подскажите, как правильно дополнить структуру и считать звуковые данные?


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
struct WAVHEADER
{
    // WAV-формат начинается с RIFF-заголовка:
 
    // Содержит символы "RIFF" в ASCII кодировке
    // (0x52494646 в big-endian представлении)
    char chunkId[4];
 
    // 36 + subchunk2Size, или более точно:
    // 4 + (8 + subchunk1Size) + (8 + subchunk2Size)
    // Это оставшийся размер цепочки, начиная с этой позиции.
    // Иначе говоря, это размер файла - 8, то есть,
    // исключены поля chunkId и chunkSize.
    unsigned long chunkSize;
 
    // Содержит символы "WAVE"
    // (0x57415645 в big-endian представлении)
    char format[4];
 
    // Формат "WAVE" состоит из двух подцепочек: "fmt " и "data":
    // Подцепочка "fmt " описывает формат звуковых данных:
    
    // Содержит символы "fmt "
    // (0x666d7420 в big-endian представлении)
    char subchunk1Id[4];
 
    // 16 для формата PCM.
    // Это оставшийся размер подцепочки, начиная с этой позиции.
    unsigned long subchunk1Size;
 
    // Аудио формат, полный список можно получить здесь [url]http://audiocoding.ru/wav_formats.txt[/url]
    // Для PCM = 1 (то есть, Линейное квантование).
    // Значения, отличающиеся от 1, обозначают некоторый формат сжатия.
    unsigned short audioFormat;
 
    // Количество каналов. Моно = 1, Стерео = 2 и т.д.
    unsigned short numChannels;
 
    // Частота дискретизации. 8000 Гц, 44100 Гц и т.д.
    unsigned long sampleRate;
 
    // sampleRate * numChannels * bitsPerSample/8
    unsigned long byteRate;
 
    // numChannels * bitsPerSample/8
    // Количество байт для одного сэмпла, включая все каналы.
    unsigned short blockAlign;
 
    // Так называемая "глубиная" или точность звучания. 8 бит, 16 бит и т.д.
    unsigned short bitsPerSample;
 
    // Подцепочка "data" содержит аудио-данные и их размер.
 
    // Содержит символы "data"
    // (0x64617461 в big-endian представлении)
    char subchunk2Id[4];
 
    // numSamples * numChannels * bitsPerSample/8
    // Количество байт в области данных.
    unsigned long subchunk2Size;
 
    // Далее должны следуовать Wav данные.
//что делал я
/*
//DATAchank
char DataID[4];
    //размер куска данных надо понимать...
    
unsigned long sizechank2;
 
int* p;//массив указателей на значения амплитуд
 
*/
};
Добавлено через 4 часа 12 минут
мне потребовалось пол дня, чтобы понять, что я идиот
Yandex
Объявления
28.05.2012, 15:57     Редактирование wav файлов в С++
Ответ Создать тему
Опции темы

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