Что такое wave музыка
Что такое файлы WAV и WAVE?
Содержание:
Что такое WAV?
Файлы с расширением WAV или WAVE (Waveform Audio file) — это стандартный формат для хранения музыки и звука в цифровом виде в ОС Windows. Чаще всего файлы WAV хранят звук в оригинальном виде, без сжатия, но они поддерживают сжатие, поэтому не всегда звук или музыка, которые имеют расширение WAV являются оригинальными.
WAV занимают значительное место в памяти, гораздо больше, чем популярные MP3 или AAC, поэтому очень мало людей используют этот формат для хранения собственной аудиотеке на компьютере. Однако, если вы занимаетесь редактирование звуков и музыки, либо создание аудиоэффектов для компьютерных игр — тогда формат WAV будут лучшим вариантом для хранения.
Если уходить ещё дальше в историю, то окажется, что формат WAV является одним из форков формата RIFF (Resource Interchange File Format). Можно даже сказать, что WAV это тоже самое, что и AIFF или 8SVX, которые более распространены среди пользователей компьютеров от Apple.
Помните: в виде давности создания этого формата у него имеются ограничения, например, размер одного файла не может превышать 4 Гб, а некоторые программы не смогут открыть WAV файл уже в том случае, когда он будет превышать 2 Гб.
Как открыть файлы Wav или Wave
WAV открываются почти любым современным мультимедийным проигрывателем, за свою жизнь я ещё не встретил ни одного проигрывателя, который бы мог открыть, например, MP3, но не справился бы с WAV.
Но чтобы было нагляднее, я перечислю программы, которые гарантированно открывают WAV: Windows Media Player, VLC, iTunes, QuickTime, Microsoft Groove Music, Winamp, Clementine, XMMS и многие другие.
Как конвертировать WAV файлы
WAV являются идеальным источником, который мы будем конвертировать в любой другой формат, т.к. он хранит музыку без сжатия.
Именно из таких файлов принято получать следующие форматы: MP3, AAC, FLAC, OGG, M4A, M4B, M4R и другие файлы, которые хранят музыку с сжатием.
Конвертацию можно произвести с помощью некоторых бесплатных аудио редакторов, таких как: Freemake Audio Converter, MediaHuman Audio Converter, Hamster Free Audio Converter, Switch и многих других.
Также можно воспользоваться онлайн сервисами, они удобны в тех случаях, когда вам нужно обработать всего несколько файлов: FileZigZag или Zamzar.
Что такое файлы WAV и WAVE?
Как открыть файл WAV / WAVE
Если первая запись, которую вы видите, это «RIFF», то ваш файл WAV / WAVE — это аудиофайл, который должен открываться одной из перечисленных выше программ. Если это не так, то ваш конкретный файл может быть поврежден (попробуйте загрузить или скопировать его снова). Если текст читает что-то еще, или вы точно знаете, что это не аудиофайл, вы можете попытаться найти другое слово или фразу в файле, которые могут помочь начать поиск того, каким типом файла это может быть.
В крайне маловероятной ситуации, когда ваш WAV-файл является просто текстовым документом, что было бы в случае, если текст читабельный, а не бессмысленный, тогда любой текстовый редактор можно использовать для открытия и чтения файла.
Принимая во внимание все количество программ аудиоплеера и вероятность того, что в данный момент у вас установлено более одной программы, вы можете обнаружить, что одна программа автоматически открывает файлы WAV и WAVE, когда вы на самом деле предпочитаете другую. Если это так, обратитесь к нашему руководству « Как изменить сопоставление файлов в Windows», чтобы получить помощь в этом.
Как конвертировать файл WAV / WAVE
Если у вас установлен iTunes, вы можете конвертировать WAV в MP3 без необходимости загружать дополнительное программное обеспечение. Вот как:
Открыв iTunes, перейдите в меню « Правка»> «Настройки» в Windows или « iTunes»> «Настройки» на Mac.
С General выбранной вкладки, нажмите или нажмите Импортировать настройки кнопки.
Нажмите OK пару раз, чтобы выйти из окна настроек.
Дополнительная информация о файлах WAV и WAVE
Этот формат файла не может содержать файлы, размер которых превышает 4 ГБ, а некоторые программы могут даже ограничить это до 2 ГБ.
Формат звуковых файлов WAV
Данный формат использует Microsoft-скую версию формата IFF (Interchange File Format) от Electronic Arts для хранения данных в виде «секций» (так называемых «чанков», «chunks»).
Форматы данных
WAV-файлы могут содержать строки текста, например метки секций, информационные комментарии и т. д. Строки сохраняются в стиле Pascal. Первый байт – счетчик количества текстовых байтов ASCII, за которым следует указанное количество текстовых байтов. Общее количество байтов в этом типе данных должно быть четным. Для этого в конец текста можно добавить байт-заполнитель. Этот байт заполнения не отражается в счетчике размера.
Структура файла
WAV-файл использует стандартную RIFF-структуру, которая группирует содержимое файла из отдельных секций (chunks) – формат выборок аудиоданных, аудиоданные, и т.п. Каждая секция имеет свой отдельный заголовок и отдельные данные. Заголовок секции указывает на тип секции и количество содержащихся в секции байт. Такой принцип организации позволяет программам анализировать только необходимые секции, пропуская остальные, которые неизвестны, или которые не требуют обработки. Некоторые секции могут иметь в своем составе подсекции (sub-chunks). Например, как можно увидеть на рисунке ниже, описывающем формат простейшего WAV-файла, секции » fmt » и » data » являются подсекциями секции » RIFF «.
Рисунок 1 – Формат простейшего WAV-файла
Еще одна особенность, связанная с секциями файла RIFF, – адреса начала секций должны быть выровнены на размер слова (2 байта). Это означает, что общий размер секции должен быть кратен 2. Если секция содержит нечетное число байт данных, то в конец данных секции добавляется дополнительный нулевой байт данных. Этот дополнительный байт не учитывается в размере секции в заголовке, таким образом, программа всегда должна учитывать выравнивание для расчета смещения начала следующей секции.
Заголовок WAV-файла, секция типа RIFF
Заголовки WAV-файла используют стандартный формат RIFF. Первые 8 байт файла – стандартный заголовок секции RIFF, который содержит ID секции, равный » RIFF «, и размер секции, равный размеру файла минус 8 байт, используемых для RIFF-заголовка. Первые 4 байта данных в секции » RIFF » определяют тип ресурса, который содержится в секции. WAV-файлы всегда используют тип ресурса » WAVE «. После типа ресурса (ID » WAVE «) идут все остальные секции файла, которые определяют аудиосигнал.
Секции WAV-файла
Для WAV-файлов, определено довольно много типов секций, но большинство файлов содержат только две из них – секцию формата (» fmt «) и секцию данных (» data «). Это именно те секции, которые необходимы для описания формата выборок аудиоданных, и для хранения самих аудиоданных.
Итак, в простейшем случае в WAV-файле должна быть обязательная секция формата (» fmt «), которая содержит важные параметры, описывающие сигнал, такие как частота дискретизации, и секция данных (» data «), которая содержит непосредственно данные сигнала (рисунок 1). Все остальные секции необязательны.
Среди необязательных секций могут быть те, которые определяют ключевые точки, перечисляют параметры инструментов, хранят информацию о приложении и т.д. Все эти секции подробно описаны ниже.
Все приложения, использующие WAV-файлы, должны иметь возможность читать 2 обязательных секции и выборочно игнорировать необязательные секции. Программа, копирующая WAV-файл, должна копировать все секции WAV-файла, даже те, которые она не интерпретирует.
На порядок секций в WAV-файле нет никаких ограничений, за исключением того, что секция формата должен предшествовать секции данных. Некоторые жестко написанные программы ожидают, что секция формата будет первым секцией (после заголовка RIFF), хотя они не должны этого делать потому, что спецификация этого не требует.
Все секции формата RIFF и соответственно секции WAVE сохраняются в следующем формате (таблица ниже). Заметьте, что даже вышеупомянутая секция RIFF соответствует этому формату.
Смещение | Размер | Название | Описание |
---|---|---|---|
0 | 4 | Chunk ID | ID секции |
4 | 4 | Chunk Data Size | Размер данных секции |
8 | Байты данных секции |
Остальная часть этой статьи посвящена описанию различных типов секций Wave, их формату данных и что эти данные означают.
Секция формата » fmt «
Секция формата содержит информацию о том, как сохранены аудиоданные и как они должны воспроизводиться. Информация включает в себя тип используемой компрессии, количество каналов, частоту дискретизации, разрядность выборок и другие атрибуты.
Идентификатор секции всегда » fmt » ( 0x666D7420 ).
Поле размера данных равно размеру стандартного формата WAV (16 байт) плюс размер всех дополнительных байтов формата, необходимых для поддержки специфических форматов звука, если он не содержит несжатых данных PCM. Обратите внимание, что идентификатор секции » fmt » оканчивается на символ пробела ( 0x20 ).
Код формата сжатия (Compression Code)
Первое слово в данных формата указывает на тип сжатия, используемого для данных звука. В таблице приведен список примеров кодов сжатия.
Код | Описание |
---|---|
0 (0x0000) | Неизвестный формат |
1 (0x0001) | PCM / несжатые данные |
2 (0x0002) | Microsoft ADPCM |
6 (0x0006) | ITU G.711 a-law |
7 (0x0007) | ITU G.711 µ-law |
17 (0x0011) | IMA ADPCM |
20 (0x0016) | ITU G.723 ADPCM (Yamaha) |
49 (0x0031) | GSM 6.10 |
64 (0x0040) | ITU G.721 ADPCM |
80 (0x0050) | MPEG |
65,535 (0xFFFF) | Экспериментальный формат |
Количество каналов (Number of Channels)
Количество каналов указывает, сколько отдельных аудиосигналов закодировано в секции данных звука. Значение 1 означает монофонический сигнал, 2 означает стерео, и т.п.
Частота дискретизации (Sample Rate)
Число выборок аудиосигнала, приходящихся на секунду.
Количество байт в секунду (Average Bytes Per Second)
Величина, показывающая, сколько байт данных должно быть пропущено за секунду через цифро-аналоговый преобразователь во время воспроизведения файла. Эта информация полезна, чтобы определить, могут ли данные поступать от источника с нужной скоростью, чтобы не отставать от воспроизведения. Эта величина просто вычисляется по формуле:
Количество байт в секунду = Частота дискретизации × Размер блока
Размер блока (Block Align)
Количество байт на одну выборку. Эта величина может быть вычислена по формуле:
Размер блока = Количество значащих бит на выборку / 8 × Количество каналов
Количество значащих бит на выборку (Significant Bits Per Sample)
Значение указывает количество бит, формирующих каждую выборку сигнала. Обычно эта величина 8, 16, 24 или 32. Если число бит не выровнено по байту (не делится на 8 без остатка), количество используемых байт на выборку округляется вверх. Неиспользуемые биты устанавливаются в 0 и игнорируются.
Размер дополнительных данных формата (Extra Format Bytes)
Указывает, сколько далее идет дополнительных данных, описывающих формат. Если код сжатия равен 1 (файл с несжатыми PCM данными), то дополнительных данных о формате нет. Для других типов сжатия дополнительные данные могут присутствовать и иметь любой размер, зависящий от количества необходимых для декодирования данных. Если размер дополнительных данных не выровнен на слово (не делится на 2 без остатка), то в конец данных должен быть добавлен дополнительный байт; но при этом значение в поле размера не меняется.
Секция данных » data «
Секция данных Wave (Wave Data Chunk) содержит данные цифровых выборок аудиосигнала, которые можно декодировать с использованием формата и метода компрессии, указанных в секции формата Wave (Wave Format Chunk). Если код сжатия равен 1 (несжатый PCM), то данные представлены в виде сырых, необработанных (raw) величин выборок. Данная статья описывает, как сохраняются несжатые данные PCM, и не вдается в подробности форматов с компрессией.
WAV-файлы обычно содержат только одну секцию данных, но таких секций может быть несколько, если они содержатся в секции списка Wave (Wave List Chunk » wavl «).
Смещение | Длина | Название | Описание | Значение |
---|---|---|---|---|
0 | 4 | Chunk ID | ID секции | » data » ( 0x64617461 ) |
4 | 4 | Chunk Data Size | Размер данных секции | зависит от количества выборок и формата сжатия |
8 | Данные выборок |
Аудиовыборки многоканального цифрового звука сохраняются как чередуемые данные, которые просто означают последовательные аудиовыборки нескольких каналов. Выборки каналов сохраняются последовательно друг за другом, перед тем как произойдет переход к следующему времени выборки. Это сделано, чтобы можно было проигрывать файл без необходимости перед этим прочитать этот файл целиком. Значения в таблице ниже были бы сохранены в WAV-файле в порядке, как они перечислены в столбце «Значение» (сверху вниз).
Момент времени | Канал | Значение |
---|---|---|
0 | 1 (левый) | 0x0053 |
2 (правый) | 0x0024 | |
1 | 1 (левый) | 0x0057 |
2 (правый) | 0x0029 | |
2 | 1 (левый) | 0x0063 |
2 (правый) | 0x003C |
Как уже было указано ранее, все секции RIFF (включая секции WAVE » data «) должны быть выровнены по размеру на слово (2 байта). Если данные выборок содержатся в нечетном количестве байт, то в конец данных должен быть добавлен выравнивающий нулевой байт. За заголовке секции » data » размер не должен учитывать этот выравнивающий байт.
Секция » fact «
Смещение | Размер | Название | Описание | Значение |
---|---|---|---|---|
0 | 4 | Chunk ID | ID секции | » fact » ( 0x66616374 ) |
4 | 4 | Chunk Data Size | Размер данных секции | зависит от формата |
8 | Format Dependant Data | Данные, зависящие от формата |
Данные, зависящие от формата (Format Dependant Data)
В настоящий момент задано только одно поле для данных, зависящих от формата. Это единственное 4-байтное значение, которое указывает число выборок в секции данных аудиосигнала. Эта значение может использоваться вместе с количеством выборок в секунду (Samples Per Second value), указанным в секции формата, для вычисления продолжительности звучания сигнала в секундах.
По мере появления новых форматов WAVE секция fact будет расширяться добавлением полей после поля числа выборок. Приложения могут использовать размер секции fact для определения, какие поля представлены в секции.
Секция списка Wave – » wavl «
Секция списка Wave (wave list chunk) используется для указания нескольких чередований секций » slnt » и » data «. Эти секции могут помочь уменьшить размер файла путем указания слышимых сегментов выборок, когда поток аудиоданных содержит несколько интервалов тишины.
Этот тип секции, по мнению многих программистов, является злоупотреблением в формате WAV-файла, и его использование не рекомендуется. Также много приложений не будут распознавать этот тип секции, просто игнорируя его. Этот формат сжатия без надобности усложняет структуру WAV-файла и может быть выгодно реализован другими способами, включая несколько существующих форматов компрессии.
Смещение | Размер | Название | Описание | Значение |
---|---|---|---|---|
0 | 4 | Chunk ID | ID секции | » wavl » ( 0x736C6E74 ) |
4 | 4 | Chunk Data Size | Размер данных секции | зависит от размера секций » data » и » slnt « |
8 | Список чередования секций » slnt » и » data « |
Секция тишины – «slnt»
Секция тишины (silent chunk) используется для указания сегмента паузы звучания, которая имеет некоторую продолжительность в выборках сигнала. Секция тишины всегда содержится только внутри секции списка Wave (wave list chunk). Когда эта секция объявляет тишину, не нужно задавать нулевую громкость или базовую выборку. Она фактически удерживает последнюю выборку сигнала, считанную из предыдущей секции данных (Wave Data Chunk) секции списка Wave (wave list chunk). Если предыдущих секций данных не было, то необходимо использовать базовое значение выборки, равное 127 для 8-битных данных, 0 для 16-битных данных и всех данных с большим количеством бит на выборку. Эти требования могут казаться тривиальными, но если их не выполнить, то в аудиосигнале могут появиться нежелательные щелчки и хлопки.
Секция ключевых точек – » cue «
Секция » cue » определяет одно или более смещения выборок, которые часто используются, чтобы отметить ключевые разделы аудиоданных. Например, у начала и конца куплета в песне могут быть установлены метки, по которым их легче найти. Секция ключевых точек является необязательной, и если она добавлена, то одна секция ключевых точек должна указать все ключевые точки секции » WAVE «. Внутри секции » WAVE » не допускается содержание более одной секции » cue «.
Смещение | Размер | Название | Описание | Значение |
---|---|---|---|---|
0 | 4 | Chunk ID | ID секции | » cue » ( 0x63756520 ) |
4 | 4 | Chunk Data Size | Размер данных секции | Зависит от количества ключевых точе |
8 | 4 | Num Cue Points | Количество ключевых точек в списке | |
12 | List of Cue Points | Список ключевых точек |
Идентификатор секции и объем данных (Chunk ID и Chunk Data Size) Идентификатор секции для секции ключевых точек всегда » cue » ( 0x666D7420 ). Обратите внимание, что строка ID оканчивается на символ пробела ( 0x20 ). Размер данных секции равен размеру поля Num Cue Points (4 байта) плюс количество последующих ключевых точек, помноженное на размер данных каждой точки (24 байта). Для вычисления размера данных секции ключевых точек может использоваться следующая формула:
ChunkDataSize = 4 + ( NumCuePoints × 24) Количество ключевых точек (Num Cue Points) Эта величина указывает количество последующих ключевых точек в этой секции. Список ключевых точек (List of Cue Points)
Список ключевых точек – это просто набор описаний последовательных точек, который имеет следующий формат.
Смещение | Размер | Название | Значение |
---|---|---|---|
0 | 4 | ID | Уникальный идентификатор |
4 | 4 | Position | Позиция порядка воспроизведения |
8 | 4 | Data Chunk ID | RIFF ID соответствующей секции данных |
12 | 4 | Chunk Start | Байтовое смещение секции данных |
16 | 4 | Block Start | Байтовое смещение к выборке первого канала |
20 | 4 | Sample Offset | Байтовое смещение к байту выборки первого канала |
ID Каждая ключевая (cue) точка имеет уникальный идентификатор, используемый для связи ключевых точек с информацией в других секциях. Например, секция метки (Label chunk) содержит текст, который описывает точку в WAV-файле со ссылкой на связанную с ней ключевую точку. Позиция (Position) Определяет смещение выборки, связанное ключевой точкой, с точки зрения позиции выборки в заключительном потоке выборок, сгенерированных списком воспроизведения. Другими словами, если указана секция списка воспроизведения (play list chunk), значение позиции равно номеру выборки, на которой эта ключевая точка встретится при воспроизведении всего списка (play list) в заданном порядке. Если нет секции списка воспроизведения (play list chunk), то значение позиции должно быть равно 0. ID секции данных (Data Chunk ID) Указывает ID из 4 байт, используемый секцией, содержащей выборку, которая соответствует этой ключевой точке. В WAV-файле без списка воспроизведения (play list chunk) это значение всегда » data «. В WAV-файле, имеющем список воспроизведения (play list chunk) с секциями данных и тишины, это значение может быть либо » data «, либо » slnt «. Начало секции (Chunk Start) Указывает байтовое смещение в секции списка Wave (Wave List Chunk) секции, содержащей выборку, соответствующую этой точке. Это та же самая секция, описанная значением ID секции данных (Data Chunk ID). Если в WAV-файле нет секции списка Wave (Wave List Chunk), это значение равно 0, иначе это значение равно смещению в секции » wavl «. Первая секция в секции списка (Wave List Chunk) указывается значением 0. Начало блока (Block Start) Указывает смещение в байтах в секции » data » или секции » slnt » для начала блока, содержащего выборку. Начало блока задает первый байт несжатых аудиоданных PCM или последний байт в сжатых данных звука, где для нахождения соответствующего значения выборки может начаться декодирование. Смещение выборки (Sample Offset) Указывает смещение в блоке (указанном в Block Start) для выборки, соответствующей ключевой точке. В несжатых аудиоданных PCM это просто байтовое смещение в секции » data «. В сжатых данных звука это значение равно количеству выборок (которое может и не быть в байтах) от Block Start до выборки, соответствующей ключевой точке.
Секция списка воспроизведения (плейлиста) – » plst «
Секция плейлиста указывает порядок воспроизведения последовательности ключевых точек (cue points). Эти точки заданы в секции » cue «, где-то в другом месте файла. Плейлист состоит из массива сегментов, каждый из которых содержит информацию о том, с какой выборки сегмент должен начать проигрывание, длительность сегмента (в выборках), и сколько раз должен повториться сегмент перед переходом к следующему по списку сегменту.
Список сегментов – просто набор следующих друг за другом описаний сегментов, которые составлены по формату, приведенному в таблице ниже. Сегменты не должны идти в каком-то определенном порядке потому, что для определения порядка воспроизведения используется позиция ключевой точки, связанной с сегментом.
Секция связанного списка данных – » list «
Секция связанного списка данных (Associated Data List Chunk) используется для задания текстовых меток и имен, которые связаны с ключевыми точками, для предоставления для каждой позиции текстовой метки или имени.
Смещение | Размер | Название | Описание | Значение |
---|---|---|---|---|
0 | 4 | Chunk ID | ID секции | » list » ( 0x6C696E74 ) |
4 | 4 | Chunk Data Size | Размер данных секции | зависит от содержащегося текста |
8 | 4 | Type ID | Идентификатор типа | » adtl » ( 0x6164746C ) |
12 | Список текстовых меток и имен |
Type ID Идентификатор типа используется для обозначения типа связанного списка данных и всегда имеет значение » adtl «. Список текстовых меток и имен Просто список сортированных секций, которые определяют текст различными способами. В файлах WAVE используются три основных типа секций – секция метки (Label Chunk), секция примечания (Note Chunk) и секция помеченного текста (Labeled Text Chunk).
Секция метки – » labl «
Секция метки (Label Chunk) всегда содержится внутри секции связанного списка данных (Associated Data List Chunk). Она используется для связывания текстовой метки с ключевой точкой (Cue Point). Эта информация часто отображается на маркерах или флажках в аудиоредакторах.
Секция примечания или комментария – » note «
Секция примечания (Note Chunk) всегда содержится внутри секции связанного списка данных (Associated Data List Chunk). Она используется для связывания текстового комментария с ключевой точкой. Эта информация сохраняется тем же способом, что и метки в секции метки.
Секция помеченного текста – » ltxt «
Секция помеченного текста (Labeled Text Chunk) всегда содержится внутри секции связанного списка данных (Associated Data List Chunk). Она используется для связывания текстовой метки с областью или секцией данных звука. Эта информация часто отображается в помеченных областях звука в аудиоредакторах.
Секция семплера – » smpl «
Секция семплера (Sampler Chunk) задает основные параметры инструмента, как например семплер MIDI, который должен использоваться для воспроизведения данных звука. Наиболее важно, что она включает в себя информацию о зацикливаниях звука во время воспроизведения. Конечно, вы можете решить, что это является дублированием информации, которую можно найти в секциях ключевых точек и списка воспроизведения формата WAVE, но, к счастью, в секции семплера это сделано более гибко, непротиворечиво, и более задокументированным способом.
Поле производителя указывает код MIDI Manufacturer’s Association (MMA) для семплера предназначенного для приема звука этого файла. Каждый производитель продуктов MIDI имеет свой уникальный ID, который идентифицирует компанию. Если не указан конкретный производитель, то должно быть уставлено значение 0.
В значении имеется некоторая дополнительная информация, которую можно использовать для трансляции в значение, используемое в передаче на семплер формата MIDI System Exclusive. Старший байт показывает количество младших байт (1 или 3), которые значимы для кода производителя. Например, значение для Digidesign будет 0x01000013 (0x13), и значение для Microsoft будет 0x03000041 (0x00, 0x00, 0x41).
Product Поле продукта указывает ID модели MIDI, заданный производителем. Для получения идентификаторов продукта связывайтесь с производителем семплера. Если не указан конкретный продукт производителя, то должно быть уставлено значение 0. Sample Period Период выборки указывает длительность времени воспроизведения одной выборки в наносекундах (обычно равно 1 / количество выборок в секунду, где количество выборок в секунду равно величине, указанной в секции формата). MIDI Unity Note Величина, имеющая то же самое значение, как и MIDI Unshifted Note секции инструмента (instrument chunk). Поле MIDI Unshifted Note указывает музыкальную ноту, на которой выборка будет воспроизведена с её исходной частотой дискретизации (частота дискретизации указана в секции формата). MIDI Pitch Fraction Указывает доли полутона вверх от величины, указанной в поле MIDI Unity Note. Значение 0x80000000 означает 1/2 полутона (50 cents), и значение 0x00000000 означает неточную настройку между полутонами. SMPTE Format
Указывает формат времени Society of Motion Pictures and Television E, используемый в следующем поле SMPTE Offset. Если установлено значение 0, SMPTE Offset также должно быть равно 0.
Список зацикливаний – простой набор последовательных описаний циклов, которые следуют нижеописанному формату. Зацикливания не имеют какого-либо определенного порядка, поскольку каждый цикл выборок связан с ключевой точкой, позиция которой используется для определения порядка воспроизведения. Секция семплера не является обязательной.
Поле типа задает, каким образом зацикливаются выборки звука.
Секция инструмента – » inst «
Секция инструмента (instrument chunk) используется для описания, каким образом звук должен быть проигран как звук инструмента. Эта информация полезна для обмена музыкальной информацией между музыкальными редакторами-семплерами, основанными на выборках (семплах), трекерами или программными таблицами звука. Эта секция является необязательной, и не может встречаться в WAVE-файле больше одного раза.
Изменения формата
Обратная сторона популярности формата файла WAVE – из сотен программ, которые поддерживают этот формат, многие злоупотребляют или неправильно используют формат из-за плохой разработки программного обеспечения и/или плохой документации. Как только некоторые из этих «непослушных» программ становятся довольно популярными и производят в большом количестве миллионы неправильных WAVE файлов, остальная часть отрасли программного обеспечения вынуждена иметь дело с этим и создавать код, который может распознавать эти неправильные файлы. Новый код не должен записывать эти ошибки, но должен читать ошибочный WAV-файл. Ниже описано несколько таких исключений, которые были сделаны в дополнение к строгому/исходному формату WAVE.