Форум программистов, компьютерный форум, киберфорум
Наши страницы

Работа с Wav файлом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа читающая почту http://www.cyberforum.ru/cpp/thread1224741.html
Привет. Надумал такую идею. Есть почтовый ящик с кучей писем. Нужно из этого ящика скопировать в таблицу word дату, отправителя и название каждого письма. Ящик открывается в браузере(или если будет...
C++ Написать скрипт для игры WoW на проверку баффов из БД и сохранение их в отдельную таблицу помогите написать скрипт На проверку баффов из бд и сохранение их в отдельную таблицу. игра world of warcraft по типу этого bool Unit::HasAura(uint32 spellId, uint64 casterGUID, uint64... http://www.cyberforum.ru/cpp/thread1224718.html
Написать функцию вычисляющую амплитудный спектр отсчетов звукового сигнала формата WAV C++
Нужно написать функцию вычисляющую амплитудный спектр отсчетов звукового сигнала формата WAV. Посоветуйте с чего начать выполнение задания, что изучить? на данный момент я пока понял, что нужно...
Большая загрузка при распознавании лиц с камеры C++
Всем привет. почти закончил писать программу и столкнулся с такой проблемой. Есть кусок когда, который отвечает за распоознование лиц с камеры void Faces(IplImage* frame1) { CascadeClassifier...
C++ Как скачать с базы данных sqllite нужные мне данные в структуру? http://www.cyberforum.ru/cpp/thread1224453.html
Подскажите пожалуйста, работаю через sqllite, как скачать с базы данных нужные мне данные, например в структуру rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg); static int...
C++ После сборки в Release краш с Access Violation Имеется Dll, собранная в Release /MT. На Win8 все прекрасно работает, а на 7ке крашится с исключением c0000005. Причем если запускать в режиме совместимости, то ошибка исчезает. А так же, когда... подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
5619 / 2654 / 246
Регистрация: 01.11.2011
Сообщений: 6,550
Завершенные тесты: 1
09.07.2014, 15:58
Цитата Сообщение от Myha_fly Посмотреть сообщение
Но я не понимаю, как узнать сколько их и какой размерности. То есть, нужно ли создавать для них массив и какой размерности. В каком формате данные. и в каком их лучше всего отправить на обработку
Волшебные картинки спешат на помощь:
Работа с Wav файлом

Общее число требуемых для создания массивов, по одному на каждый канал, равняется NumChannels. Соответственно для моноканала потребуется создать только один массив, для стереоканала - два, и так далее.
Subchunk2Size это общий размер всех-всех данных. Соответственно поделив это число на количество каналов узнаем сколько элементов должен содержать массив. Умножив это количество на размер одного элемента (BitPerSample) получим требуемый размер памяти под массив.

Сразу после шапки, каждый блок данных (размером BlockAlign) содержит строго по очереди одинаковые элементы каждого канала - то есть в первом блоке будет расположен первый элемент (chunk) первого канала, затем первый элемент второго канала. Во втором блоке данных - сначала второй элемент первого канала, затем второй элемент второго канала. И так далее. Для четырехканальной записи, каждый блок будет содержать ровно четыре значения. Для моноканала, соответственно, каждый блок данных будет размером с один элемент канала, то есть равен выбранной глубине звука.

P.S. Что-то я совсем забыл: BitPerSample нужно делить на 8, чтобы привести все к одной единице измерений. Собственно к байтам.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru