|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
||||||||||||||||
Собрать Wav файл при попарном считывании03.09.2015, 12:23. Показов 1408. Ответов 11
Метки нет (Все метки)
Здравствуйте, на вход мне подаётся Raw файл попарно считываю с него по 16 бит, и пытаюсь сформировать из них стерео wav файл(16 бит в левый, 16 в правый). Вот код того что я сделал, но почему-то сформированый файл всё равно не открывается нормально
wav.h
заметил странность что элемент дата весит 16 байт, но каждый элемент по отдельности(коих 10) весит по 4 байта Добавлено через 2 минуты Ошибка явно в этом потому что, размер даты по факту, меньше чем я прописывал в хед файле, как это исправить? Добавлено через 7 минут fwrite(&data, sizeof(long)*data.size(), 1, file_out); - изменил так строчку записи даты в файл, теперь размер правильно но всё равно файл не читается, может я неправильно записываю вектор в файл?
0
|
||||||||||||||||
| 03.09.2015, 12:23 | |
|
Ответы с готовыми решениями:
11
Знаю что информация неправильно преобразовывается при записи в файл, скорее всего и при считывании тоже. Как это исправить? Написать программу, формирующую по исходному WAV файлу новый WAV файл Как определить, что файл закончился при считывании с помощью binaryreader? |
|
|
|
| 03.09.2015, 12:25 | |
|
Вам нужно проверить пересчет. Вы делаете из одного канала два, значит блок данных у вас станет ровно вдвое больше. Это первое. Второе: вам нужно убедиться, что отсчеты вы пишете парно. То есть: отсчет одного канала, отсчет второго и т.д. Далее видно будет.
1
|
|
|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
|
| 03.09.2015, 12:35 [ТС] | |
|
если я правильно понял, то мне на вход подаётся по 2 пары двухбайтовых слов, из них я делаю 1 двойное слово (4 байта), а насчёт 2 пункта я не понял
0
|
|
|
|
|||||||||||
| 03.09.2015, 12:47 | |||||||||||
Добавлено через 26 секунд
1
|
|||||||||||
|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
||||||
| 03.09.2015, 12:51 [ТС] | ||||||
|
а как можно я так сделал
0
|
||||||
|
|
||
| 03.09.2015, 13:45 | ||
|
1
|
||
|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
|
| 03.09.2015, 14:02 [ТС] | |
|
В исходном файле блоки данных по 16 бит, я их поочерёдно и считываю. Вот откуда я брал информацию http://www.graphicon.ru/oldgr/... avfmt2.htm
Вот этот обзац: " Что же касается формата самих звуковых данных, то он зависит от количества каналов и от дискретности. Для монофонического сигнала с дискретностью 8 бит звуковые данные пред ставляют собой массив однобайтовых значений, каждое из которых является выбор-кой сигнала. Для стереофонического сигнала с дискретностью 8 бит звуковые данных имеют формат массива двухбайтовых слов, причем младший байт слова соответствует левому каналу, а старший - правому. Формат звуковых данных с дискретностью 16 бит выглядит аналогично. Для монофонического сигнала данные хранятся в массиве 16-битовых слов. Для стерео-фонического используется массив двойных слов, причем младшему слову соот-ветствует левый канал, а старшему - правый." Добавлено через 7 минут "Идея в том, чтобы каждый отсчет из моно файла продублировать на второй канал в стерео." -скорее всего нет, у меня в файле исходном уже пары блоков по 16 бит для стерео, их не надо дублировать
0
|
|
|
|
||
| 03.09.2015, 14:04 | ||
|
Это все понятно. Вопрос не в этом. Вопрос в том, понимаете ли вы, что записать два подряд 16-битных числа это то же самое что записать 32-битное, сформированное в том же порядке. Это я вот к чему: для простоты и чтобы не мучиться с битовыми операциями, на чтении исходного файла просто пушбэкайте в ваш вектор один отсчет дважды. Потом просто правильно запишите вектор в файл. Дальше видно будет.
Добавлено через 24 секунды
1
|
||
|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
|||||||||||
| 03.09.2015, 14:11 [ТС] | |||||||||||
|
мне дали raw файл и сказали что надо считывать 16 бит для левого, потом 16 бит для правого, и из них формировать wav файл. Сейчас попробую сделать без битовых операций
Добавлено через 4 минуты Всё равно ошибка вот что получилось wav.cpp
0
|
|||||||||||
|
|
||
| 03.09.2015, 14:18 | ||
|
emmure, а, все, меня переглючило. Я думал у вас только моно файл из которого стерео сделать надо. В качестве лирического отступления: если
Размер блока только просчитать верно нужно будет.Добавлено через 5 минут Зачем же вы вектор так насилуете? Пушбэкайте, не инсертьте. Особо не вчитывался, но может вы и в файл его не правильно пишете. Если вам сложновато, попробуйте просто на массиве сделать.
0
|
||
|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
|
| 03.09.2015, 14:42 [ТС] | |
|
не мне надо именно попарно считывать, чтобы была возможность не весь файл в wav сделать
Добавлено через 20 минут как вообще узнать что именно в wav файле не так?
0
|
|
|
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
|
||||||
| 04.09.2015, 22:39 [ТС] | ||||||
|
По итогу оказалось ошибка в этой строчке
0
|
||||||
| 04.09.2015, 22:39 | |
|
Помогаю со студенческими работами здесь
12
Как проигрывать .wav файл на страничке при использовании Internet Explorer 9 Создать wav файл имея raw файл с данными При считывании текста из файла, при нахождении пробела или enter ставится пробел Ошибка при считывании Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|