Другие языки программирования и технологии

Делфи. работа с аудио файлами.

все мы знаем что аудио файл это список частот, которые должна воспроизвести колонка, и чем больше этих частот в одной секунде тем лучше, это частота дискритизации вроде (8000 Гц и 44 000 Гц - явно отличаются) . моя цель взять музыкальный файл и получать каждую частоту по отдельности, а потом эту частоту обрабатывать, ну доустим уменьшать или увеличивать и потом записывать в другой файл.. . я знаю чтотакая процедура будет занимать долгое время даже для минутногого файла, но цель есть цель. я хотел бы побаловаться. расскажите как мне из файла частоты эти брать и как записывать в другой файл чтобы он еще и работал?
Саня Голубцов
Саня Голубцов
6 684
> все мы знаем что аудио файл это список частот

Михаил, Вы ошибаетесь.
В аудио файле частоты, в том смысле как Вы их представляете, не хранятся.
Все мы знаем, что после заголовка (имеется ввиду файл WAV - контейнер для хранения несжатого звука в импульсно-кодовой модуляции) ,
в файле закодированы мгновенные значения амплитуды сигнала как для правого, так и для левого каналов (так называемые выборки) .
Про другие типы файлов (MP3, OGG и др. ) можно пока умолчать. Там используется сжатие и для работы с ними
используются другие алгоритмы.
Если Вас интересует данная тема, то для начала рекомендую почитать теорию
http://audiocoding.ru/статьи/структура-wav-файла. html
http://ru.wikipedia.org/wiki/WAV
http://graphicon.ru/oldgr/courses/cg02b/assigns/hw-2/help/wavfmt2.htm
Алексей Каюмов
Алексей Каюмов
74 180
Лучший ответ
Аудио файл это НЕ список частот.
Но!
Сжатое с потерями аудио (и только оно, это mp3, wma, ogg и т. п. ) это (заархивированный) поток временнЫх спктральных отсчетов, полученных в результате прямого дискретного преобразование Фурье исходного сигнала.
Т. е. выбрав данные, относящиеся к конкретной частоте и применив обратное преобразование Фурье вы можете восстановить звук этой самой частоты.
Изучите структуру файла, алгоритм и реализуйте на любом ЯП.

Кстати, не долго. Секунды на современном компе.
AA
A A
71 594
Частот там нету. Есть значения амплитуды. Если взять несколько значений и посчитать по ним интеграл фурье к примеру, то можно получить как раз частоты.
Для универсальности используйте DirectShow, он умеет читать и несжатые, и сжатые файлы, проблем с чтением не будет у вас. По моему он и писать файлы умеет.
Вася Писяев
Вася Писяев
34 701
Поставь себе что-то типа Адобе Аудишн и играйся с частотами, она это умеет. Тут тебе вряд ли кто подскажет - там дофига писать надо. Вытащить данные из мрз или вава, записать в массив, взять БПФ, написать эквалайзер, потом все это обратно закодировать и воспроизвести - да ну его нафиг.
Kа Ка
Kа Ка
410