Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [С++]Чтение/запись wave файла на , нет ли у кого исходников? 
:(
    Опции темы
Proger10
Дата 16.11.2009, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.12.2008

Репутация: нет
Всего: нет



Ищу исходники функций записи и чтений Wave несжатых файлов (у меня данные в raw формате).
Странно, но по инету я не смог найти казалось бы распространённых вещей. Может есть у кого?

Это сообщение отредактировал(а) Proger10 - 16.11.2009, 01:54
PM MAIL   Вверх
Static
Дата 17.11.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: нет
Всего: 2



Это не поможет? Я так понимаю, что тебе надо просто соответствующий header для своих raw-данных сделать.
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
Proger10
Дата 17.11.2009, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.12.2008

Репутация: нет
Всего: нет



Ну да, дело в принципе только в хедере, чтобы постоянно не задавать количество каналов, битрейт при проигрывании файлов. Да и чтобы проигрывателями играли мои "raw" данные. Для удобства smile

Попробую поработать с тем, что по ссылке. Спасибо.

Это сообщение отредактировал(а) Proger10 - 17.11.2009, 23:24
PM MAIL   Вверх
Proger10
Дата 12.6.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.12.2008

Репутация: нет
Всего: нет



Странно, но у меня опять возникла такая потребность и проблема) На тот раз, в качестве решения, я использовал библиотеку libsndfile. На этот раз потребовалось скомпилировать проект под Mac OS X и приплыли. Из-за libsndfile. Насколько я понял он предсобран под i386. Несмотря на то, что я его собирал под 64биткой, видимо что-то осталось для 32бит и на отрез отказывается работать.

Вот думаю, может есть какой небольшой исходник чтения и записи wav файла? Обыскал уже весь интернет, толком ничего так и не могу найти..
PM MAIL   Вверх
Sanaff
Дата 12.6.2010, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: -1
Всего: 1



Цитата(Proger10 @ 12.6.2010,  16:09)
Вот думаю, может есть какой небольшой исходник чтения и записи wav файла? Обыскал уже весь интернет, толком ничего так и не могу найти..

Описание формата файла wav у меня есть, надо - скину.
там несложно разобраться и написать самому прогу чтения и записи wav файла
[email protected]
--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
Proger10
Дата 13.6.2010, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.12.2008

Репутация: нет
Всего: нет



Ну, в принципе, описание формата найти не очень сложно. Вот здесь красиво расписано smile
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Попробую поработать в этом направлении пока..
PM MAIL   Вверх
Sanaff
Дата 13.6.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 15.9.2009
Где: г. Северодвинск

Репутация: -1
Всего: 1



На русском есть:

Ниже приведено описание формата WAVe файлов в его простейшем варианте.
Файл состоит из "кусочков" (англ. "chunks"), каждый "кусочек" предваряется 4-х байтным идентификатором "кусочка" и 4-х байтным полем, содержащим длину "кусочка" в байтах. 
Смещение Размер Содержимое
0        4      'RIFF'
4        4      размер RIFF-данных // должно быть на 4 меньше размера файла
8        4      'WAVE' // какие именно данные, WAVE означает звук
12       4      'fmt ' // начало "кусочка" описания формата
16       4      размер области описания формата в байтах
20       2      категория формата // для Microsoft PCM - 0x0001
22       2      число каналов // 1 - моно, 2 - стерео
24       4      частота дискретизации (sampling rate)
28       4      средняя скорость потока (байт/сек)
32       2      размер блока данных 

Следующее поле только для категории Microsoft PCM ...
34       2      число бит на отсчет // например, 8 или 16

36       4      'data' // начало "кусочка" непосредственно аудио-данных
40       4      размер аудио-данных в байтах
44       .....  аудио-данные // для Microsoft PCM отсчеты рассматриваются 
                как беззнаковые целые числа

--------------------
Программист - это локальный бог ©ICQ 373-628-456
PM MAIL WWW ICQ   Вверх
ИванМ
Дата 15.6.2010, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 13
Всего: 23



Proger10, делал когда-то давно для direct sound. Во вложении исходный код. Правда, не очень написано, и, причем, для C++ Builder'а. Но суть, думаю, будет понятна.
Чтобы работало под все компиляторы нужно вместо String использовать std::string и убрать лишние хэдеры.

Это сообщение отредактировал(а) ИванМ - 15.6.2010, 19:12

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  sound.zip 2,50 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.