Каким форматом аудио файла проще всего управлять? - PullRequest
4 голосов
/ 08 февраля 2011

Здравствуйте, хорошие компьютерные люди,

В ответ на вопрос , который у меня был ранее относительно доступа к сэмплам в аудиофайле , теперь я понимаю, что Core Audio Format может не подходить.

Тем более, что на странице 15 спецификации в нем упоминается что-то, что использование C является «нотационным удобством», т.е. вы не можете просто взломать его с помощью некоторых функций c и делать то, что вы хотите с Это.

Тем не менее, если я хочу открыть аудиофайл, а затем запустить на нем какой-нибудь код C, C ++ или Objective-C, чтобы поиграться со значениями семплов, какой формат лучше всего сделать для этого: WAV? AIFF? другой

Имейте в виду, я бы хотел, чтобы это работало на iOS.

Спасибо!

Ответы [ 5 ]

9 голосов
/ 08 февраля 2011

Несжатые файлы WAV. Они состоят из заголовка, за которым следуют необработанные образцы.

5 голосов
/ 08 февраля 2011

Я однажды манипулировал WAV через C ++, и это было довольно легко. Я использовал эту спецификацию, чтобы написать свой код: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ С этим документом и небольшим пониманием цифрового аудио вы можете легко манипулировать файлами WAV.

2 голосов
/ 08 февраля 2011

Несжатый WAV - это стандарт де-факто для редактирования аудио. Вы можете использовать различные библиотеки, чтобы легко ими управлять. Если вы просто хотите получить полностью необработанные сэмплы без заголовка WAV, используйте PCM, однако вам придется заранее знать частоту, частоту и т. Д., Поскольку у вас не будет той информации, которая обычно будет в WAV-заголовке, все, что вы получите. это несжатые образцы.

1 голос
/ 08 февраля 2011

Самый простой несжатый формат файла WAV имеет только 44-байтовый заголовок (который сообщает вам частоту дискретизации, количество битов на выборку и то, являются ли данные стереопарами или моно), за которыми непосредственно следует массив необработанных PCM (обычно) короткие целые числа.

На процессоре с прямым порядком байтов (например, Intel или ARM) вы можете отобразить этот формат файла непосредственно в массив C из 16-битных шорт и просто проиндексировать его с помощью соответствующегосмещение от заголовка.

0 голосов
/ 08 февраля 2011

Несжатый WAV будет проще всего иметь дело, так как вам не нужно разбираться с ними перед манипуляцией, поэтому вы, вероятно, захотите начать с этого, пока не будете уверены в своих процедурах / коде манипуляции.

Однако, если вы не планируете иметь только несколько точечных эффектов или довольно большой результирующий пакет, в конечном итоге, было бы лучше взглянуть на что-то вроде IMA ADPCM.Существуют алгоритмы декодирования (за дополнительной информацией обращайтесь к http://wiki.multimedia.cx/index.php?title=IMA_ADPCM), они относительно просты в реализации и позволят вам добавить больше звуков в ваш продукт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...