Форматы звуковых файлов
Cуществуют различные форматы звуковых файлов. Рассмотрим некоторые из них. Прежде всего, это звуковые форматы WAVE, AU и AIFF, Эти форматы могут содержать собственно звук. Иногда они могут содержать также сжатые звуковые данные, однако оформленные в стандартном формате, причем для их воспроизведения в системе должны быть установлены соответствующие модули. Звуковые файлы занимают обычно большой объем (даже в сжатом виде). Поэтому очень часто употребляют также музыкальные файлы в формате MIDI. MIDI-файлы не содержат собственно звуковой информации. Они содержат только набор команд типа клавишу ДО первой октавы нажать через 2 секунды после начала, отпустить еще через 0.5 секунды (конечно, это очень примитивное описание MIDI-команды, но в целом дает представление о том, что это такое). Эти команды исполняются синтезатором, встроенным в звуковую карту пользователя (или внешним модулем, если таковой имеется). Поэтому качество звучания, услышанное пользователем, сильно зависит от имеющегося у него оборудования. Однако файлы, написанные для стандарта GM (General MIDI) обычно звучат очень похоже на всех синтезаторах, поддерживающих его, а его поддерживают практически все современные звуковые карты.
Поскольку набор МIDI-команд занимает намного меньший объем, чем звуковая информация, МIDI-файлы загружаются намного быстрее. Основная проблема использования формата MIDI заключается в том, что если у нас уже есть готовая музыкальная запись (например на компакт-диске), то ее никак нельзя перевести в формат MIDI, кроме как заново «сочинив» и записав ее в МIDI-редакторе. Просто такой технологии сегодня еще нет. Кроме того, если надо поместить на веб-страницу песню со словами, то тоже нельзя использовать для этого формат MIDI. Поэтому часто все же приходится использовать звуковые форматы, несмотря на их большой объем.
Формат wav-файла
Данные, имеющие отношение к мультимедиа (звук, видео и т. п.) хранятся в файлах в так называемом RIFF-формате (Resource Interchange File Format - формат файла для обмена ресурсами). Как wav-файлы, содержащие звук, так и avi-файлы, содержащие видеоинформацию, имеют формат RIFF.
Файл в формате RIFF содержит вложенные фрагменты (chunk's ). Внешний фрагмент состоит из заголовка и области данных (рис.1).
Рис. 1 Фрагмент "RIFF"
Первое двойное слово заголовка содержит четырехбуквенный код FOURCC, который идентифицирует данные, хранящиеся во фрагменте. Второе двойное слово заголовка - размер области данных в байтах (без учета размера самого заголовка).
Область данных имеет переменную длину, однако она должна быть выравнена на границу слова и при необходимости дополнена в конце нулевым байтом до целого числа слов.
Заметим, что формат RIFF не описывает формат данных. Практически файл в формате RIFF может содержать любые данные для мультимедиа, причем формат данных зависит от типа данных.
Область, обозначенная на рис.1 как "Данные", может содержать внутри себя другие фрагменты. Для файла, в котором хранятся звуковые данные (wav-файл), эта область содержит идентификатор данных "WAVE", фрагмент формата звуковых данных "fmt " (три символа "fmt" и пробел на конце), а также фрагмент звуковых данных (рис. 2). Файл может дополнительно содержать фрагменты других типов, поэтому не следует думать, что заголовок wav-файла имеет фиксированный формат. Например, в файле может присутствовать фрагмент "LIST" или "INFO", содержащий информацию о правах копирования и другую дополнительную информацию.
Рис. 2 Формат wav-файла
Область, обозначенная на рис. 2 как "Формат данных", описывает звуковые данные.