Windows wave что это

The WAVE file format is a subset of Microsoft’s RIFF specification
for the storage of multimedia files. A RIFF file starts out with
a file header followed by a sequence of data chunks. A WAVE file
is often just a RIFF file with a single «WAVE» chunk which consists
of two sub-chunks — a «fmt » chunk specifying the data format and
a «data» chunk containing the actual sample data. Call this form
the «Canonical form». Who knows how it really all works.

I use the standard WAVE format as created by the
sox program:

Offset  Size  Name             Description

The canonical WAVE format starts with the RIFF header: 0 4 ChunkID Contains the letters "RIFF" in ASCII form (0x52494646 big-endian form). 4 4 ChunkSize 36 + SubChunk2Size, or more precisely: 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size) This is the size of the rest of the chunk following this number. This is the size of the entire file in bytes minus 8 bytes for the two fields not included in this count: ChunkID and ChunkSize. 8 4 Format Contains the letters "WAVE" (0x57415645 big-endian form). The "WAVE" format consists of two subchunks: "fmt " and "data": The "fmt " subchunk describes the sound data's format: 12 4 Subchunk1ID Contains the letters "fmt " (0x666d7420 big-endian form). 16 4 Subchunk1Size 16 for PCM. This is the size of the rest of the Subchunk which follows this number. 20 2 AudioFormat PCM = 1 (i.e. Linear quantization) Values other than 1 indicate some form of compression. 22 2 NumChannels Mono = 1, Stereo = 2, etc. 24 4 SampleRate 8000, 44100, etc. 28 4 ByteRate == SampleRate * NumChannels * BitsPerSample/8 32 2 BlockAlign == NumChannels * BitsPerSample/8 The number of bytes for one sample including all channels. I wonder what happens when this number isn't an integer? 34 2 BitsPerSample 8 bits = 8, 16 bits = 16, etc. 2 ExtraParamSize if PCM, then doesn't exist X ExtraParams space for extra parameters The "data" subchunk contains the size of the data and the actual sound: 36 4 Subchunk2ID Contains the letters "data" (0x64617461 big-endian form). 40 4 Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8 This is the number of bytes in the data. You can also think of this as the size of the read of the subchunk following this number. 44 * Data The actual sound data.

As an example, here are the opening 72 bytes of a WAVE file with
bytes shown as hexadecimal numbers:

52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 
22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 
24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d 

Here is the interpretation of these bytes as a WAVE soundfile:


Notes:

  • The default byte ordering assumed for WAVE data files is little-endian.
    Files written using the big-endian byte ordering scheme have the identifier
    RIFX instead of RIFF.
  • The sample data must end on an even byte boundary. Whatever that means.
  • 8-bit samples are stored as unsigned bytes, ranging from 0 to 255.
    16-bit samples are stored as 2’s-complement signed integers,
    ranging from -32768 to 32767.

  • There may be additional subchunks in a Wave data stream. If so,
    each will have a char[4] SubChunkID, and unsigned long SubChunkSize,
    and SubChunkSize amount of data.

  • RIFF stands for Resource Interchange File Format.

General discussion of RIFF files:

Multimedia applications require the storage and management of a
wide variety of data, including bitmaps, audio data, video data,
and peripheral device control information. RIFF provides a
way to store all these varied types of data. The type of data a
RIFF file contains is indicated by the file extension. Examples of
data that may be stored in RIFF files are:

  • Audio/visual interleaved data (.AVI)
  • Waveform data (.WAV)
  • Bitmapped data (.RDI)
  • MIDI information (.RMI)
  • Color palette (.PAL)
  • Multimedia movie (.RMN)
  • Animated cursor (.ANI)
  • A bundle of other RIFF files (.BND)

NOTE:

At this point, AVI files are the only type of RIFF files that have
been fully implemented using the current RIFF specification. Although
WAV files have been implemented, these files are very simple, and
their developers typically use an older specification in constructing
them.

For more info see

http://www.ora.com/centers/gff/formats/micriff/index.htm


References:

  1. http://netghost.narod.ru/gff/graphics/summary/micriff.htm RIFF Format Reference (good).

  2. http://www.lightlink.com/tjweber/StripWav/WAVE.html






craig@ccrma.stanford.edu

(Updated by Scott Wilson Jan 20, 2003)

Описание формата WAVE

Формат WAVE был разработан корпорацией Майкрософт, является контейнером для хранения и записи оцифрованных аудиопотоков. Представляет из себя сжатый формат, отличается отсутствием потери качества и основан на расширении RIFF.

Зачастую рассматриваемый тип файла занимает довольно много места на цифровом диске или каком-либо прочем накопителе. В процессе сжатия могут быть использованы различные кодеки. Открыть файл WAVE возможно в штатном медиапроигрывателе Microsoft Windows Media Player, для этого следует закачать на компьютер соответствующий кодек.

Одним из самых распространенных кодеков, является MS ADPCM, его полное название — Microsoft Adaptive Differential Pulse Code Modulation. Крайне редко используются в сети Всемирной паутины из-за того, что обладают достаточно объёмными размерами, что невыгодно для большинства пользователей как при воспроизведении, так и при загрузке.

Отлично подходит для хранения исходных файлов в архиве, потому как имеет один из наиболее высоких показателей качества среди аналогов. По сей день распространены в сфере записи звука, среди же обычной среды использования их рейтинг был значительно снижен в связи с вытеснением со-стороны более компактного и универсального MP3.

Рассматриваемый формат файла разрабатывался при поддержке компании IBM, чаще всего его можно встретить в пределах операционной системы Windows, а также Mac OS, в последней платформе открыть WAVE можно при помощи Apple QuickTime Player или Roxio Toast. Достаточно часто WAV используется в файлах WAVE.

Программы для работы с WAVE в Windows

Mac

Решение проблем с файлами WAVE

Наиболее распространенная проблема — файл не открывается.
Мы подготовили набор программ, с помощью которых вы гарантированно сможете открыть нужный файл в вашей операционной системе.

Какой программой открыть WAVE?

Для конвертации файлов используйте Мовавика Конвертер:

  • Сверхбыстрая конвертация
  • Любое количество файлов любого размера
  • Без потери качества, даже для 4К-видео
  • Редактирование и сжатие в пару кликов

WAV (или WAVE) – один из старейших форматов кодирования звука, используемых до сих пор. Разработан Microsoft и IBM. Сегодня он преимущественно используется для хранения и воспроизведения несжатого аудио в системах Windows. Из-за фактического отсутствия сжатия файлы имеют огромный размер. Поэтому ту же музыку редко скачивают в WAV, предпочитая формату более легкие файлы.

Что означает WAV? Название созвучно слову «wave» – «волна». Это формат для хранения акустических волн, и его название произносится как «вейв». Расширение файла – .wav. Все просто и логично.

Работать с ним можно в Мовавика Конвертер – это простой и эффективный инструмент для перевода из формата в формат видео, аудио и изображений.

Происхождение .wav

Формат файла WAV существует с 1991 года. При его разработке IBM и Microsoft хотели создать формат для звуковых файлов, который мог бы работать на медленных процессорах с ограниченной памятью, выпускаемых в то время. Сжатие могло бы уменьшить размер файлов, но одновременно оно бы сильно нагружало процессор. В WAV каждый сэмпл кодируется напрямую как его битовое значение. Решение не кажется эффективным сегодня, но изначально предполагалось использовать формат для звуковых файлов длительностью в секунду или две, а не для симфоний.

Хотя WAV примитивен по сравнению с альтернативами, простота позволила ему занять свободную нишу и использоваться в качестве формата для архивирования и редактирования звука.

WAV является частным случаем RIFF (Resource Interchange File Format), универсального формата для упаковки данных и метаданных. Файл RIFF состоит из «фрагментов», каждый из которых имеет четырехсимвольный тип. Фрагмент содержит определенный вид информации, такой как закодированный звук, временные метки и параметры кодирования.

Формат похож на AIFF, который раньше использовала для кодирования звука компания Apple. Они имеют схожую структуру фрагментов, однако несовместимы друг с другом.

В Windows 2000 Microsoft представила Wave Format Extensible. Он обеспечивает лучшую поддержку многоканального звука – в том числе, возможность определения данных нескольких аудиоканалов вместе с позициями динамиков.

Для WAV никогда не публиковалось никаких официальных стандартов. Определение формата дается разработчиками Microsoft преимущественно в терминах API. Они допускают некоторые разночтения. Однако общедоступной информации достаточно для создания и воспроизведения обычных файлов WAV, для этого не требуется лицензия. Информация о правах собственности и лицензирование могут потребоваться лишь для некоторых кодеков.

Как воспроизводить файлы WAV

Большинство мультимедийных проигрывателей для ПК поддерживает WAV. Это один из самых простых форматов музыкальных файлов для реализации в программном обеспечении. И так как он создан Microsoft, то его работа наилучшим образом поддерживается компьютерами с операционной системой Windows. Проигрывать музыкальные файлы этого формата также можно с помощью многих бесплатных кроссплатформенных проигрывателей – например, VLC. 

Мобильные приложения, воспроизводящие файлы WAV, найти сложнее. Смартфоны на базе iOS и Android обычно не способны воспроизводить файлы WAV с помощью предустановленного софта, однако пользователь может загрузить стороннее программное обеспечение.

Причина отсутствия поддержки в том, что она не слишком оправдана. Файлы WAV огромны, они быстро заполнят память телефона: «вес» аудио может составлять до 27 мегабайт на каждую минуту звука. Лучшим выходом из ситуации будет его конвертация в сжатый формат, такой как MP3 или Ogg Vorbis, для дальнейшего воспроизведения на мобильном устройстве менее объемных аудиофайлов.

В целом, файлы WAV часто конвертируются в другие форматы. Они являются хорошим способом хранения необработанного звука с исходным качеством, но «весят» слишком много для свободного распространения, скачивания и сохранения на различных устройствах.

Как работают файлы WAV

Перейдем к конкретике: узнаем, что такое файл WAV и как в них кодируется звук? Как и многие медиаформаты, WAV является примером парадигмы контейнер-кодек. Контейнер устанавливает структуру файла. Он содержит метаданные о записи, а также техническую информацию о том, как кодируется звук. Допускается несколько вариантов кодировок. Программное обеспечение, которое обрабатывает биты аудиоданных, – это кодек (кодер-декодер).

Причина, по которой файлы WAV сохраняются такими большими, заключается в том, что обычно они используют кодек LPCM. Он не сжимает аудиоданные. Сохранение происходит без потери качества, что обеспечивает наилучшее возможное представление исходного звука. При этом можно использовать и другие кодеки. В частности, программное обеспечение Microsoft поддерживает кодек с потерями качества при кодировании ADPCM, который позволяет создавать файлы меньшего размера. Их часто называют файлами ADPCM, а не WAVE. Формат допускает использование и других кодеков, однако не все программное обеспечение поддерживает их.

Важно отметить, что сжатие файла с помощью ZIP или GZIP не приносит желаемых результатов. Аудиосэмплы слишком похожи на случайные значения, чтобы их можно было эффективно сжать, прибегнув к самым простым и универсальным методам.

Однако WAV во многих отношениях является гибким. Формат позволяет файлу иметь тысячи каналов и фактически неограниченное количество бит на каждый сэмпл. Большинство программ ограничивает реализацию этих значений, однако проблем, например, с восемью 32-битными каналами, возникнуть не должно. Частота дискретизации – это 32-битное число, поэтому формат может обрабатывать частоты, находящиеся далеко за пределами человеческого слуха. Максимальный размер файла – 4 гигабайта.

Одно из важных преимуществ формата заключается в том, что закодированные файлы могут поддерживать любые виды метаданных.

Поскольку спецификация расплывчата, некоторые программы могут не прочитать файл, который другое приложение обрабатывает без проблем. Однако разработчики стараются делать программы «строгими» при записи файлов и «снисходительными» при их чтении, поэтому проблемы с воспроизведением возникают не слишком часто.

Трансляция WAV

Европейский вещательный союз установил в качестве используемого усовершенствованный формат WAV – Broadcast Wave Format или BWF. Он применяется для обмена аудиофайлами между различными средами вещания. Также он рекомендован к использованию Библиотекой Конгресса США.

Основное отличие BWF от «классического» WAV заключается в том, что усовершенствованный формат определяет новый тип фрагмента – Broadcast Audio Extension («bext»). Он идентифицирует создателя файла, дату и время создания, а также фиксирует различные технические и административные данные. Каждый файл Broadcast WAV должен иметь фрагмент «bext».

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

BWF поддерживает новые типы фрагментов для метаданных. Они включают XMP, который широко используется для создания медиафайлов, и iXML, который применяется в основном в BWF. Обычные ридеры WAV могут поддерживать эти типы фрагментов, либо пропускать их.

Одна из вариаций формата BWF – RF64. Он немного изменяет спецификацию RIFF, чтобы преодолеть ограничение в 4 гигабайта на размер файла.

Использование WAV

Файлы WAV редко скачивают с музыкальных сайтов. Они намного больше, чем их аналоги, сохраненные в других форматах, но при этом не дают слушателю большого преимущества. Если вам нужен файл высокого качества, то при сопоставимых характеристиках звука формат FLAC сжимает данные практически так же, но одновременно обеспечивает меньший «вес» аудиозаписи.

Студии звукозаписи часто используют WAV для хранения оригинальных треков. Важно понимать, что записываемые с потерей качества файлы немного ухудшаются каждый раз, когда сохраняются повторно. А вот редактирование аудиофайла в WAV предотвращает потерю качества.

Архивы, библиотеки и организации часто используют WAV, когда могут позволить себе достаточный объем памяти для их хранения. Формат гибок в параметрах метаданных, при необходимости его можно преобразовать в сжатые и более «легкие» форматы. Также он менее подвержен битроту (деградации данных). Даже если проблема с оборудованием изменит байт аудиоданных, то худшее, что может произойти в этой ситуации, – слышимый хлопок.

Альтернативы WAV

Сжатые форматы медленнее заполняют память на устройстве. Ранее мы уже упоминали FLAC, обеспечивающий сжатие без потерь и способный обеспечить качество, эквивалентное WAV, при меньшем размере файла. Для повседневного прослушивания подходят аудиофайлы в еще более «легких» форматах с небольшим или нулевым слышимым ухудшением исходного качества звука. Среди них AAC, Ogg Vorbis и MP3.

Файлы WAV могут использоваться для хранения записей. Но вполне вероятно, что вам потребуется преобразовать их в файлы другого формата – более подходящего для повседневного использования. Воспользуйтесь программой Мовавика Конвертер, которая позволяет легко конвертировать все типы медиафайлов из одного формата в другой. Среди её главных преимуществ быстрая конвертация, высокая эффективность и удобный интерфейс. Мовавика Конвертер особенно удобна, если вам приходится регулярно конвертировать медиафайлы разных форматов.

Удобная программа для сверхбыстрой конвертации видео, аудио и изображений

Нас часто спрашивают

Могут ли iPhone воспроизводить файлы WAV?

Вы можете легко воспроизводить файлы WAV на своем iPhone, воспользовавшись программой Мовавика Конвертер. Это мощный инструмент, который позволяет вам конвертировать любой аудиофайл в формат, поддерживаемый смартфоном, – MP3, AAC или M4A. В результате вы сможете воспроизводить аудиофайлы на любом устройстве Apple.

Остались вопросы?

Остались вопросы?

Если вы не можете найти ответ на свой вопрос, обратитесь в нашу службу поддержки.

Подпишитесь и получайте скидки, советы по монтажу и идеи для контента

На нашу рассылку подписалось уже более 1,5 млн. пользователей

Формат WAV изначально использовался в системе Windows для сохранения цифровых аудиоданных. Это самый известный и широко поддерживаемый формат благодаря популярности платформы Windows и большому количеству написанных для неё программ. Почти любая современная программа, работающая со звуком, может прочитать или записать формат WAV, поэтому этот формат очень интересен для разработчиков программного обеспечения. Далее подробно описываются структуры данных формата WAV.

[Форматы данных]

Поскольку формат WAV-файла пришел от операционной системы Windows, в которой традиционно использовались процессоры Intel, все значения данных формата хранятся как Little-Endian, т. е. самый младший значащий байт идет первым.

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

7 ‘e’ ‘x’ ‘a’ ‘m’ ‘p’ ‘l’ ‘e’

Пример формата строки Wave

[Структура файла]

WAV-файл использует стандартную RIFF-структуру, которая группирует содержимое файла из отдельных секций (chunks) — формат выборок аудиоданных, аудиоданные, и т. п. Каждая секция имеет свой отдельный заголовок секции и отдельные данные секции. Заголовок секции указывает на тип секции и количество содержащихся в секции байт. Такой принцип организации позволяет программам анализировать только необходимые секции, пропуская остальные секции, которые не известны или которые не требуют обработки. Некоторые определенные секции могут иметь в своем составе подсекции (sub-chunks). Например, как можно увидеть на диаграмме, описывающий основной формат WAV-файла, секции «fmt » и «data» являются подсекциями секции «RIFF». 

Chunk ID «RIFF»
Chunk Data Size
RIFF Type ID «WAVE»
Chunk ID «fmt «
Chunk Data Size
Sample Format Info
Chunk ID «data»
Chunk Data Size
Digital Audio Samples
Заголовок секции (Chunk Header)
Данные секции (Chunk Data Bytes)

Одна хитрая вещь, связанная с секциями файла RIFF, состоит в том, что адреса начала секций должны быть выровнены на размер слова (2 байта). Это означает, что общий размер секции должен быть кратен 2. Если секция содержит нечетное число байт данных (невыравненное до 2 байт), то добавляется дополнительный нулевой байт данных в конец данных секции. Этот дополнительный байт не учитывается в размере секции заголовка, таким образом программа всегда должна учитывать выравнивание для расчета смещения начала следующей секции.

[Заголовок WAV-файла, секция типа RIFF]

Заголовки WAV-файла используют стандартный формат RIFF. Первые 8 байт файла — стандартный заголовок секции RIFF, который имеет ID секции «RIFF» и размер секции, равный размеру файла минус 8 байт, используемых для RIFF-заголовка. Первые 4 байта данных в секции «RIFF» определяют тип ресурса, который можно найти в секции. WAV-файлы всегда используют тип ресурса «WAVE». После типа ресурса (ID «WAVE») идут все секции звукового файла, которые определяют аудиосигнал.

Смещение Размер Описание Значение
0x00 4 Chunk ID «RIFF» (0x52494646)
0x04 4 Chunk Data Size (file size) — 8
0x08 4 RIFF Type «WAVE» (0x57415645)
0x10 Wave chunks (секции WAV-файла)
Значения полей секции RIFF

[Секции WAV-файла]

Существует довольно много типов секций, заданных для файлов WAV, но большинство WAV-файлов содержат только две из них — секцию формата («fmt «) и секцию данных («data»). Это именно те секции, которые необходимы для описания формата выборок аудиоданных, и для хранения самих аудиоданных. Хотя официальная спецификация не задает жесткий порядок следования секций, наилучшей практикой будет размещение секции формата перед секцией данных. Многие программы ожидают именно такой порядок секций, и он наиболее разумен для передачи аудиоданных через медленные, последовательные источники наподобие Интернет. Иначе если формат придет после данных, то перед стартом воспроизведения необходимо считать и запомнить все аудиоданные, только после получения формата запускать воспроизведение.

Все секции формата RIFF и соответственно секции Wave сохраняются в следующем формате (см. диаграмму). Заметьте, что даже вышеупомянутая секция RIFF соответствует этому формату.

Смещение Размер Описание
0x00 4 Chunk ID
0x04 4 Chunk Data Size
0x08 Chunk Data Bytes
Формат секций RIFF и Wave

Остальная часть этой статьи посвящена описанию различных типов секций Wave, их формату данных и что эти данные означают.

[Секция формата — «fmt «]

Секция формата содержит информацию от том, как сохранены аудиоданные и как они должны воспроизводиться. Информация включает в себя тип используемой компрессии, количество каналов, скорость выдачи выборок (sample rate), количество бит в выборке (bits per sample) и другие атрибуты.

Смещение Размер Описание Значение
0x00 4 Chunk ID «fmt » (0x666D7420)
0x04 4 Chunk Data Size 16 + extra format bytes
0x08 2 Compression code 1 — 65,535
0x0a 2 Number of channels 1 — 65,535
0x0c 4 Sample rate 1 — 0xFFFFFFFF
0x10 4 Average bytes per second 1 — 0xFFFFFFFF
0x14 2 Block align 1 — 65,535
0x16 2 Significant bits per sample 2 — 65,535
0x18 2 Extra format bytes 0 — 65,535
0x1a Дополнительные данные формата (Extra format bytes) *

Значения секции формата (Wave Format Chunk), * читайте для подробностей текст далее

Идентификатор секции (Chunk ID) и объем данных (Data Size)
Идентификатор секции всегда «fmt » (0x666D7420) и объем данных равен размеру стандартного формата WAV (16 байт) плюс размер всех дополнительных байт формата, необходимых для поддержки специфических форматов звука, если он не содержит несжатых данных PCM. Обратите внимание, что идентификатор секции «fmt » оканчивается на символ пробела (0x20).

Код сжатия (Compression Code)
Первое слово данных формата указывает на тип сжатия, используемого для данных звука. В таблице содержится список кодов сжатия, используемых в настоящее время.

Код Описание
0 (0x0000) Unknown
1 (0x0001) PCM/uncompressed
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) Experimental

Общеиспользуемые коды сжатия
(Common Wave Compression Codes)

Количество каналов (Number of Channels)
Количество каналов указывает, сколько отдельных аудиосигналов закодировано в секции данных звука (wave data chunk). Значение 1 означает монофонический сигнал, 2 означает стерео, и т. п.

Скорость выборок (Sample Rate)
Число выборок аудиосигнала, приходящихся на секунду. На эту величину не влияет количество каналов.

Среднее количество байт в секунду (Average Bytes Per Second)
Величина, показывающая, сколько байт за секунду данных должно быть пропущено через цифроаналоговый преобразователь (D/A converter, DAC) во время воспроизведения файла. эта информация полезна, чтобы определить — могут ли данные поступать от источника с нужной скоростью, чтобы не отставать от воспроизведения. Эта величина просто вычисляется по формуле:
AvgBytesPerSec = SampleRate * BlockAlign

Выравнивание блока (Block Align)
Количество байт на одну выборку. Эта величина может быть вычислена по формуле:
BlockAlign = SignificantBitsPerSample / 8 * NumChannels

Количество используемых бит на выборку (Significant Bits Per Sample)
Величина указывает количество бит, формирующих каждую выборку сигнала. Обычно эта величина 8, 16, 24 или 32. Если число бит не выравнено по байту (не делится нацело на 8), количество используемых байт на выборку округляется вверх к наименьшему количеству байт. Неиспользуемые биты устанавливаются в 0 и игнорируются. Такие форматы (с числом бит на выборку, некратным 8) встречаются редко.

Дополнительные данные формата (Extra Format Bytes)
Величина указывает, сколько далее идет дополнительных данных, описывающих формат. Она отсутствует, если код сжатия 1 (uncompressed PCM file), но может присутствовать и иметь любую другую величину для других типов сжатия, зависящую от количества необходимых для декодирования данных. Если величина не выравнена на слово (не делится нацело на 2), должен быть добавлен дополнительный байт в конец данных, но величина должна оставаться невыровненной.

Область Extra format bytes очень удобна для добавления дополнительных данных в WAV-файл. Это может понадобиться, например, когда нужно в WAV-файл сохранить какую-то дополнительную информацию, привязанную к записанным звуковым данным. Если Ваш прибор сохраняет измерения в звуковые данные WAV-файла, то он также получает возможность добавить какие-то описательные данные — какой вход прибора использовался, какие были настройки входа (постоянный ток, переменный ток), какой коэффициент усиления был задан и т. п. Ниже на рисунках показаны примеры дампов двух WAV-файлов. В файле слева заголовок чистый (размер области Extra format bytes равен нулю), а в файле справа в секцию «fmt » добавлены 256 байт данных Extra format bytes.

Для наглядности отдельные секции стандартного заголовка выделены разными цветами. 256 байт в области Extra Format Bytes показаны розовым цветом, а их размер — красным.

[Секция данных — «data»]

Секция данных Wave (Wave Data Chunk) содержит данные цифровых выборок аудиосигнала, которые можно декодировать с использованием формата и метода компрессии, указанных в секции формата Wave (Wave Format Chunk). Если код компрессии 1 (несжатый PCM, Pulse Code Modulation), то данные представлены в виде сырых, непреобразованных (raw) величин выборок. Эта статья описывает, как сохранены несжатые данные PCM, однако не вдается в подробности многих используемых форматов с компрессией.

WAV-файлы обычно содержат только одну секцию данных, но секций может быть несколько, если они содержатся в секции списка Wave (Wave List Chunk «wavl»).

Смещение Длина Тип Описание Значение
0x00 4 char[4] chunk ID «data» (0x64617461)
0x04 4 dword chunk size зависит от количества выборок и компрессии
0x08 данные выборок (sample data)

Формат секции данных «data»

Аудиовыборки многоканального цифрового аудио сохраняются как чередуемые (interlaced) данные, которые просто означают последовательные аудиовыборки нескольких каналов (таких как стерео и каналы окружения surround). Выборки каналов сохранены последовательно друг за другом, перед тем как произойдет переход к следующему времени выборки. Это сделано с целью возможности последовательного проигрывания файла даже тогда, когда еще не весь файл прочитан целиком. Это удобно, когда проигрывается большой файл с диска (который не может быть размещен целиком в памяти) или файл передается в последовательном потоке данных через сетевое соединение (например Интернет). Значения в диаграмме ниже были бы сохранены в WAV-файле в порядке, как они перечислены в столбце значений (от начала до конца).

Время Канал Значение
0 1 (левый) 0x0053
2 (правый) 0x0024
1 1 (левый) 0x0057
2 (правый) 0x0029
2 1 (левый) 0x0063
2 (правый) 0x003C

Чередуемые выборки стерео Wave

Один момент, касающийся данных выборок, который может вызвать некоторое замешательство — когда выборки представлены 8 битами, они определены как значения без знака (unsigned). Все другие битовые размеры указываются как величины со знаком (signed). Например, выборка 16 бит может иметь значение в диапазоне от -32768 до +32767, где средняя точка (напряжение сигнала равно 0) соответствует значению 0.

Как уже было указано ранее, все секции RIFF (включая секции WAVE «data») должны быть выровнены по размеру на слово (2 байта). Если данные выборок содержатся в нечетном количестве байт, в конец данных выборок должен быть добавлен выравнивающий нулевой байт. За заголовке секции «data» размер не должен учитывать этот выравнивающий байт.

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

Секция fact содержит информацию о содержимом WAV-файла, зависящую от кода компрессии. Она требуется для всех форматов WAVE со сжатием, и требуется, если данные сигнала содержатся внутри секции списка (LIST) «wavl», но не требуется для несжатого формата PCM WAVE (код компрессии 1), который содержит аудиоданные в секции «data».

Смещение Размер Описание Величина
0x00 4 Chunk ID «fact» (0x66616374)
0x04 4 Chunk Data Size зависит от формата
0x08 Данные, зависящие от формата (Format Dependant Data)

Формат секции Fact

Данные, зависящие от формата (Format Dependant Data)
В настоящий момент задано только одно поле для данных, зависящих от формата. Это единственное 4-байтное значение, которое указывает число выборок в секции данных аудиосигнала. Эта величина может использоваться вместе с количеством выборок в секунду (Samples Per Second value) указанном в секции формата — для вычисления продолжительности звучания сигнала в секундах.

По мере появления новых форматов WAVE секция fact будет расширена с добавлением полей после поля числа выборок. Программы могут использовать размер секции fact для определения, какие поля представлены в секции.

Секция списка wave (wave list chunk) используется для указания нескольких чередований секций «slnt» и «data». Эти секции могут помочь уменьшить размер файла путем указания слышимых сегментов выборок, когда поток аудиоданных содержит несколько интервалов тишины.

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

Смещение Размер Описание Значение
0x00 4 Chunk ID «wavl» (0x736C6E74)
0x04 4 Chunk Data Size зависит от размера секций «data» и «slnt»
0x08 Список чередования секций «slnt» и «data»

Формат секции Wave List

Секция тишины (silent chunk) используется для указания сегмента паузы звучания, которая имеет некоторую продолжительность в выборках сигнала. Секция тишины всегда содержится только внутри секции списка wave (wave list chunk). Когда эта секция объявляет тишину, не нужно задавать нулевую громкость или базовую выборку. Это фактически удерживается последняя выборка сигнала, считанная в предыдущей секции данных ((Wave Data Chunk)) секции списка Wave (wave list chunk). Если не было предыдущих секций данных, должно использоваться базовое значение выборки, равное 127 для 8-битных данных, 0 для 16-битных данных или всех данных с бОльшим количеством бит на выборку. Эти требования могут казаться тривиальными, но если это не выполнить, то могут появится нежелательные щелчки и перепады в аудиосигнале.

Смещение Размер Описание Величина
0x00 4 Chunk ID «slnt» (0x736C6E74)
0x04 4 Chunk Data Size 4
0x08 4 Number of Silent Samples 0 — 0xFFFFFFFF

Silent Chunk Format

Количество выборок тишины (Number of Silent Samples)
Эта величина указывает число выборок тишины, которое должно появиться в аудиосигнале на точке списка wave (wave list chunk).

Секция cue определяет один или более смещения выборок, которые часто используются, чтобы отметить примечательные разделы аудио. Например, у начала и конца стиха в песне могут быть метки, по которым легче найти начало и конец стиха. Секция cue является необязательной, и если она добавлена, то одна секция cue должна указать все примечательные точки для секции «WAVE». Не допускается больше одной секции cue внутри секции «WAVE».

Смещение Размер Описание Значение
0x00 4 Chunk ID «cue » (0x63756520)
0x04 4 Chunk Data Size depends on Num Cue Points
0x08 4 Num Cue Points количество точек cue в списке
0x0c Список интересующих точек (List of Cue Points)

Формат секции Cue

Идентификатор ID секции и объем данных (Chunk ID and Data Size)
Идентификатор ID секции для секции cue всегда «cue » (0x666D7420). Обратите внимание, что строка ID оканчивается на символ пробела (0x20). Размер данных секции равен размеру Num Cue Points (4) плюс количество последующих точек cue, помноженное на размер данных каждой точки cue (24). Следующая формула может использоваться для вычисления размера данных секции Cue:
ChunkDataSize = 4 + (NumCuePoints * 24)

Количество примечательных точек (Num Cue Points)
Эта величина указывает количество последующих cue-точек в этой секции.

Список примечательных точек (List of Cue Points)
Список точек cue — просто набор описаний последовательных точек, который имеет следующий формат.

Смещение Размер Описание Значение
0x00 4 ID unique identification value
0x04 4 Position play order position
0x08 4 Data Chunk ID RIFF ID of corresponding data chunk
0x0c 4 Chunk Start Byte Offset of Data Chunk *
0x10 4 Block Start Byte Offset to sample of First Channel
0x14 4 Sample Offset Byte Offset to sample byte of First Channel

Формат точки Cue

ID
Каждая примечательная (cue) точка имеет уникальное идентификационное значение, используемое для связи точек cue с информацией в других секциях. Например, секция метки (Label chunk) содержит текст, который описывает точку в WAV-файле со ссылкой на связанную точку cue.

Позиция (Position)
Позиция определяет смещение выборки, связанное точкой cue, с точки зрения позиции выборки в заключительном потоке выборок, сгенерированных списком воспроизведения. Другими словами, если указана секция списка воспроизведения (play list chunk), значение позиции равно номеру выборки, на которой эта точка cue встретится при воспроизведении всего списка (play list) в заданном порядке. Если нет секции списка воспроизведения (play list chunk), то значение позиции должно быть равно 0.

ID секции данных (Data Chunk ID)
Эта величина указывает ID из 4 байт, используемый секцией, содержащей выборку, которая соответствует этой точке cue. 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)
Значение Block Start указывает смещение в байтах в секцию «data» или секцию «slnt» для начала блока, содержащего выборку. Начало блока задает первый байт несжатых данных звука PCM или последний байт в сжатых данных звука, где декомпрессия может начаться для нахождения значения соответствующего значения выборки.

Смещение выборки (Sample Offset)
Смещение выборки указывает смещение в блок (указанный Block Start) для выборки, соответствующей интересующей точке (cue point). В несжатых данных звука PCM это просто байтовое смещение в секцию «data». В сжатых данных звука это значение равно количеству выборок (которое может и не быть в байтах) от Block Start до выборки, соответствующей интересующей точке (cue point).

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

Смещение Размер Описание Величина
0x00 4 Chunk ID «plst» (0x736C6E74)
0x04 4 Chunk Data Size num segments * 12
0x08 4 Number of Segments 1 — 0xFFFFFFFF
0x0a List of Segments

Формат секции Playlist

Количество сегментов (Number of Segments)
Это значение задает количество последующих сегментов в секции плейлиста.

Список сегментов (List of Segments)
Список сегментов — просто набор следующих друг за другом описаний сегментов, которые составлены по формату, приведенному в таблице ниже. Сегменты не должны быть ни в каком определенном порядке, потому что для определения порядка воспроизведения используется позиция интересующей точки (cue point position), связанная с каждым описанием списка.

Смещение Размер Описание Величина
0x00 4 Cue Point ID 0 — 0xFFFFFFFF
0x04 4 Length (in samples) 1 — 0xFFFFFFFF
0x08 4 Number of Repeats 1 — 0xFFFFFFFF

Формат сегмента плейлиста

ID интересующей точки (Cue Point ID)
Cue Point ID указывает начальную выборку для этого сегмента путем указания значения Cue Point, заданного в списке Cue Point List. ID связывающий этот сегмент с интересующей точкой (Cue Point), должен быть уникальным по отношению ко всем другим ID интересующих точек (Cue Point ID).

Длина (Length)
Длина сегмента указывает количество выборок для воспроизведения или зацикливания от начальной выборки, заданной в связанной Cue Point.

Количество повторений (Number of Repeats)
Количество повторений определяет, сколько раз сегмент должен повторить свое воспроизведение, перед продолжением воспроизведения на следующем сегменте.

Секция связанного списка данных (Associated Data List Chunk) используется для задания текстовых меток и имен, которые связаны с интересующими точками — для предоставления для каждой позиции текстовой метки или имени.

Смещение Размер Описание Величина
0x00 4 Chunk ID «list» (0x6C696E74)
0x04 4 Chunk Data Size зависит от содержащегося текста
0x08 4 Type ID «adtl» (0x6164746C)
0x0c список текстовых меток и имен

Формат связанного списка данных

Type ID
Идентификатор типа (type ID) используется для обозначение типа связанного списка данных и всегда имеет значение «adtl».

Список текстовых меток и имен
Список текстовых меток и имен — просто список рассортированных секций, которые определяют текст различными способами. В файлах WAVE используются три основные типы секций — секция метки (Label Chunk), секция примечания (Note Chunk) и секция помеченного текста (Labeled Text Chunk).

Секция метки (Label Chunk) всегда содержится внутри секции связанного списка данных (associated data list chunk). Она используется для связывания текстовой метки с интересующей точкой (Cue Point). Эта информация часто отображается на маркерах или флажках в аудиоредакторах.

Смещение Размер Описание Величина
0x00 4 Chunk ID «labl» (0x6C61626C)
0x04 4 Chunk Data Size зависит от содержащегося текста
0x08 4 Cue Point ID 0 — 0xFFFFFFFF
0x0c текст

Формат секции метки

Cue Point ID
Идентификатор интересующей точки (Cue Point ID) указывает точку расположения выборки, соответствующей этой текстовой метке, путем предоставления ID интересующей точки (Cue Point), заданной в списке интересующих точек (Cue Point List). ID, который связывает эту метку с интересующей точкой (Cue Point), должен быть уникальным по отношению ко всем другим идентификаторам интересующих точек (Cue Point ID).

Текст
Текст — строка символов, оканчивающихся нулем. Если количество символов в строке нечетно, к строке должно быть добавлено однобайтовое выравнивание. Добавленное выравнивание не учитывается в поле размера секции метки.

Секция примечания (Note Chunk) всегда содержится внутри секции связанного списка данных (associated data list chunk). Она используется для связывания текстового комментария с интересующей точкой (Cue Point). Эта информация сохраняется тем же самым способом, как и метки в секции метки.

Смещение Размер Описание Величина
0x00 4 Chunk ID «note» (0x6E6F7465)
0x04 4 Chunk Data Size зависит от содержащегося текста
0x08 4 Cue Point ID 0 — 0xFFFFFFFF
0x0C текст

Формат секции примечания

Cue Point ID
Идентификатор интересующей точки (Cue Point ID) указывает точку расположения выборки, соответствующей этому текстовому примечанию, путем предоставления ID интересующей точки (Cue Point), заданной в списке интересующих точек (Cue Point List). ID, который связывает это примечание с интересующей точкой (Cue Point), должен быть уникальным по отношению ко всем другим идентификаторам интересующих точек (Cue Point ID).

Text
Текст — строка символов, оканчивающихся нулем. Если количество символов в строке нечетно, к строке должно быть добавлено однобайтовое выравнивание. Добавленное выравнивание не учитывается в поле размера секции примечания (комментария).

Секция помеченного текста (Labeled Text Chunk) всегда содержится внутри секции связанного списка данных (associated data list chunk). Она используется для связывания текстовой метки с регионом или секцией данных звука. Эта информация часто отображается в помеченных регионах звука в аудиоредакторах.

Смещение Размер Описание Величина
0x00 4 Chunk ID «ltxt» (0x6C747874)
0x04 4 Chunk Data Size зависит от содержащегося текста
0x08 4 Cue Point ID 0 — 0xFFFFFFFF
0x0c 4 Sample Length 0 — 0xFFFFFFFF
0x10 4 Purpose ID 0 — 0xFFFFFFFF
0x12 2 Country 0 — 0xFFFF
0x14 2 Language 0 — 0xFFFF
0x16 2 Dialect 0 — 0xFFFF
0x18 2 Code Page 0 — 0xFFFF
0x1A текст

Формат секции помеченного текста

Cue Point ID
Идентификатор интересующей точки (Cue Point ID) указывает начальную выборку, которая соответствует этой текстовой метке, с помощью предоставления ID интересующей точки, заданного в списке интересующих точек (Cue Point List). ID интересующей точки, связанный с этой меткой, должен быть уникальным по отношению ко всем другим ID интересующих точек.

Sample Length
Длина выборок (sample length) задает, сколько выборок входит в регион или интервал секции, начиная с интересующей точки.

Purpose ID
Поле предназначения указывает, для чего используется текст. Например, значение «scrp» означает текст скрипта, «capt» означает close-caption (поясняющая подпись, субтитр). Имеется несколько большее количество значений purpose ID, но они предназначены для использования с другими типами файлов формата RIFF (которые обычно не используются в файлах WAVE).

Country, Language, Dialect, Code Page
Эти поля (страна, язык, диалект, кодовая страница) используются для указания информации о месторасположении и языке, используемых в тексте. Обычно они нужны для запросов о получении информации от операционной системы.

Text
Текст — строка символов, оканчивающихся нулем. Если количество символов в строке нечетно, к строке должно быть добавлено однобайтовое выравнивание. Добавленное выравнивание не учитывается в поле размера секции. 

Секция семплера (Sampler Chunk) задает основные параметры инструмента, как например семплер MIDI, который должен использоваться для воспроизведения данных звука. Наиболее важно, что он включает в себя информацию о зацикливаниях звука во время воспроизведения. Конечно, Вы можете найти, что это является дублированием информации, которую можно найти в секциях Cue и Playlist формата WAVE, но, к счастью, в секции семплера это сделано более гибко, непротиворечиво, и лучше задокументированным способом.

Смещение Размер Описание Величина
0x00 4 Chunk ID «smpl» (0x736D706C)
0x04 4 Chunk Data Size 36 + (Num Sample Loops * 24) + Sampler Data
0x08 4 Manufacturer 0 — 0xFFFFFFFF
0x0C 4 Product 0 — 0xFFFFFFFF
0x10 4 Sample Period 0 — 0xFFFFFFFF
0x14 4 MIDI Unity Note 0 — 127
0x18 4 MIDI Pitch Fraction 0 — 0xFFFFFFFF
0x1C 4 SMPTE Format 0, 24, 25, 29, 30
0x20 4 SMPTE Offset 0 — 0xFFFFFFFF
0x24 4 Num Sample Loops 0 — 0xFFFFFFFF
0x28 4 Sampler Data 0 — 0xFFFFFFFF
0x2C List of Sample Loops

Формат секции семплера

Manufacturer
Поле производителя (manufacturer) указывает код MIDI Manufacturer’s Association (MMA) для семплера предназначенного для приема звука этого файла. Каждый производитель продукта MIDI имеет свой уникальный ID, который идентифицирует компанию. Если не указан конкретный производитель, то должно быть подставлено значение 0.

В значении имеется некоторая дополнительная информация, которую можно использовать для трансляции в величину, используемую в передаче на семплер формата MIDI System Exclusive. Старший байт показывает количество младших байт (1 или 3), которые значимы для кода производителя. Например, значение для Digidesign будет 0x01000013 (0x13) и значение для Microsoft будет 0x30000041 (0x00, 0x00, 0x41). См. список MIDI Manufacturers List.

Product
Поле продукта указывает ID модели MIDI, заданный производителем. Для получения идентификаторов продукта связывайтесь с производителем семплера. Если не указан конкретный продукт производителя, то должно быть подставлено значение 0.

Sample Period
Период выборки указывает длительность времени воспроизведения одной выборки в наносекундах (обычно равно 1 / [количество выборок в секунду], где [количество выборок в секунду] равно величине, указанной в секции формата).

MIDI Unity Note
MIDI unity note (что-то типа тональности MIDI, решил этот термин не переводить) — величина, имеющая то же самое значение как и MIDI Unshifted Note секции инструмента (instrument chunk). Поле MIDI Unshifted Note указывает музыкальную ноту, на которой выборка будет воспроизведена на её оригинальной скорости выборок sample rate (sample rate указано в секции формата).

MIDI Pitch Fraction
MIDI pitch fraction (тоже какой-то специфический музыкальный термин, что-то типа «доля высоты звука») указывает доли полутона вверх от величины, указанной в поле MIDI unity note. Значение 0x80000000 означает 1/2 полутона (50 cents) и значение 0x00000000 означает неточную настройку между полутонами (лично для меня это все звучит как китайская грамота).

SMPTE Format
SMPTE формат указывает формат времени Society of Motion Pictures and Television E, используемый в следующем поле SMPTE Offset. Если установлено значение 0, SMPTE Offset также должно быть равно 0.

Значение SMPTE Format
0 нет смещения SMPTE offset
24 24 фрейма в секунду
25 25 фреймов в секунду
29 30 фреймов в секунду с выпадением фрейма (30 выпадает)
30 30 фреймов в секунду

Значения формата SMPTE

SMPTE Offset
Смещение SMPTE Offset — величина, указывающая на смещение времени, используемое для синхронизации / калибровки первой выборки звука. Здесь используется форма 0xhhmmssff, где hh — число со знаком, указывающее количество часов (-23 .. 23), mm — беззнаковая величина количества минут (0 .. 59), ss — (0 .. 59) беззнаковая величина количества секунд и ff — беззнаковая величина количества фреймов (0 .. -1).

Sample Loops
Поле циклов выборок указывает количество определений зацикливания выборок в последующем списке (см. list of sample loops). Это значение может быть установлено в 0, что означает отсутствие последующих зацикливаний.

Sampler Data
Величина данных семплера (sampler data value) указывает количество байт, которые последуют за этой секцией (включая весь список sample loop list). Эта величина больше, чем 0, когда приложение нуждается в сохранении дополнительной информации. Эта величина отражена в значении chunks data size.

List of Sample Loops
Список зацикливаний (list of sample loops) — простой набор последовательных описаний циклов, которые следуют нижеописанному формату. Зацикливания не имеют какой-либо определенный порядок, поскольку каждый цикл выборок, связанный с интересующей точкой, используется для определения порядка воспроизведения. Секция семплера не является обязательной.

Смещение Размер Описание Величина
0x00 4 Cue Point ID 0 — 0xFFFFFFFF
0x04 4 Type 0 — 0xFFFFFFFF
0x08 4 Start 0 — 0xFFFFFFFF
0x0C 4 End 0 — 0xFFFFFFFF
0x10 4 Fraction 0 — 0xFFFFFFFF
0x14 4 Play Count 0 — 0xFFFFFFFF

Формат цикла выборок

Cue Point ID
Идентификатор интересующей точки (Cue Point ID) — указывает уникальный ID, который соответствует одной из заданных интересующих точек в списке (cue point list). Кроме того, этот ID соответствует любой из меток, заданных в связанной секции данных (data list chunk), которая позволяет назначать текстовые метки различным циклам выборок.

Type
Поле типа задает, каким образом зацикливаются выборки звука. 

Значение Loop Type (тип зацикливания)
0 Цикл вперед (обычный)
1 Альтернативный цикл (вперед/назад, известный также как Ping Pong)
2 Цикл назад (обратный)
3 — 31 Зарезервировано для будущих стандартных типов
32 — 0xFFFFFFFF Специфические типы, относящиеся к семплеру (задаются производителем)

Значения Loop Type

Start
Значение старта указывает байтовое смещение в данные звука первой выборки, проигрываемой в цикле.

End
Значение окончания указывает байтовое смещение в данные звука последней выборки, проигрываемой в цикле.

Fraction
Дробное (fractional) значение указывает дробную часть выборки, которая принадлежит циклу. Это позволяет точно настроить длительность цикла с точностью выше, чем позволяет одна выборка. Величина может находиться в диапазоне 0x00000000 .. 0xFFFFFFFF. Значение 0 означает отсутствие дробной части, значение 0x80000000 означает 1/2 от длительности выборки. Значение 0xFFFFFFFF соответствует минимальной дробной части выборки, которую можно задать.

Play Count
Значение счетчика воспроизведений (play count) определяет количество проигрываний цикла. 0 означает постоянный бесконечный цикл, который не прервется, пока не произойдет принудительное внешнее вмешательство (например, музыкант отпустит клавишу). Все другие значения указывают абсолютное количество проигрываний цикла.

Секция инструмента (instrument chunk) используется для описания — каким образом звук должен быть проигран как звук инструмента. Эта информация полезна для обмена музыкальной информацией между музыкальными редакторами-семплерами, основанными на выборках (семплах), трекерами или программными таблицами звука. Эта секция является необязательной, и не может встречаться в WAVE-файле больше одного раза.

Смещение Размер Описание Величина
0x00 4 Chunk ID «ltxt» (0x6C747874)
0x04 4 Chunk Data Size 7
0x08 1 Unshifted Note 0 — 127
0x09 1 Fine Tune (dB) -50 — +50
0x0A 1 Gain -64 — +64
0x0B 1 Low Note 0 — 127
0x0C 1 High Note 0 — 127
0x0D 1 Low Velocity 1 — 127
0x0E 1 High Velocity 1 — 127

Формат секции инструмента

Unshifted Note
Поле несмещенной ноты (unshifted note) имеет то же самое предназначение, что и у MIDI Unity Note секции семплера — указывает музыкальную ноту, на которой выборка будет проиграна с её оригинальной скоростью (sample rate, указывается в секции формата).

Fine Tune
Значение точной настройки (fine tune) указывает, насколько подача выборки должна быть изменена, когда звук воспроизведен в центах (1/100 полутона). Отрицательная величина означает, что высота тона должна быть снижена, а позитивная величина означает, что высота тона должна быть повышена.

Gain
Значение усиления (gain) указывает количество децибел для настройки выхода при проигрывании. Значение 0 dB означает отсутствие изменений, 6 dB означает удвоение амплитуды каждой выборки, -6 dB означает уменьшение амплитуды каждой выборки вдвое. Каждые дополнительные +/- 6 dB удваивают или делят амплитуду надвое соответственно.

Low Note и High Note
Поля нот указывают диапазон нот MIDI, в которых звук должен быть проигран, когда происходит событие приема ноты MIDI (от программного обеспечения или команды контроллера MIDI. Контроллером может выступать, например, клавиатура MIDI). Этот диапазон необязательно должен включать значение Unshifted Note.

Low Velocity и High Velocity
Поля скорости (velocity) указывают диапазон скоростей MIDI (MIDI velocity), с которыми должен проигрываться звук. 1 относится к самому легкому проигрыванию, 127 к самому жесткому.

[Изменения формата]

Обратная сторона популярности формата файла WAVE — из сотен программ, которые поддерживают этот формат, многие злоупотребляют или неправильно используют формат из-за плохого программирования и/или плохой документации. Как только некоторые из этих «непослушных» программ становятся довольно популярными и производят в большом количестве миллионы неправильных WAVE файлов, остальная часть отрасли программного обеспечения вынуждена иметь дело с этим и производить код, который может распознавать эти неправильные файлы. Новый код не должен записывать эти ошибки, но должен читать ошибочный WAVE-файл. Ниже описано несколько таких исключений, которые были сделаны в дополнение к строгому/исходному формату WAVE.

    * Некорректная величина блока выравнивания (Block Alignment) — с этим можно иметь дело, вычисляя Block Alignment по указанной ранее формуле.
    * Некорректная величина среднего количества выборок в секунду (Average Samples Per Second) — с этим можно иметь дело, вычисляя Average Samples Per Second по указанной ранее формуле.
    * Отсутствие пустых байт для выравнивания на слово (Missing word alignment padding) — с этим трудно бороться, но можно давать пользователю предупреждение, если имеется нераспознанный ID блока, и одно смещение побайтового чтения дает возможность распознать ID блока. Это не полное решение, но оно обычно работает, даже если у программы нет полного списка легальных ID.

[Ссылки]

1. Пример простейшей обработки WAV-файла (допускается только несжатый PCM).
2. Простой SD/microSD звуковой плеер на 8-выводном микроконтроллере ATtiny85.
3. Библиотека Petit FatFS: модуль файловой системы FAT.
4. Почему у секции «fmt » размер не равен 16 байтам?
5. Audio File Format Specifications site:ece.mcgill.ca.

На чтение6 мин

Опубликовано

Обновлено

Windows Wave — это новая функция, представленная в операционной системе Windows. Она была разработана для улучшения воспроизведения звука на компьютере. Благодаря Windows Wave пользователи теперь могут наслаждаться качественным и чистым звуком при прослушивании музыки, просмотре фильмов или игре в видеоигры.

Основная особенность Windows Wave — это его простота использования. Для активации этой функции достаточно нажать несколько клавиш на клавиатуре. Благодаря нажатию сочетания клавиш, пользователь может быстро переключаться между различными режимами звука, настраивать громкость и уровень басов.

Кроме того, Windows Wave обладает широким спектром настроек, которые позволяют пользователям индивидуально настроить звуковые эффекты под свои предпочтения. С помощью этих настроек можно управлять эквалайзером, настраивать пространственное звучание и добавлять различные эффекты, такие как эхо или реверберация.

В целом, Windows Wave является очень полезным инструментом для всех, кто хочет получить максимальное удовольствие от прослушивания звука на компьютере. Благодаря своей простоте использования и широкому спектру настроек, Windows Wave предоставляет пользователям возможность наслаждаться качественным и настраиваемым звуком в любое время и в любом месте.

Что такое Windows Wave?

Windows Wave обеспечивает программистам возможность создания приложений, в которых можно использовать аудиофайлы или микрофон для записи звука, а также воспроизводить его через динамики или наушники на устройстве. API позволяет контролировать различные параметры звукового воспроизведения, такие как громкость, битрейт, частота дискретизации и другие.

Windows Wave используется в разнообразных приложениях, включая аудио- и видеоредакторы, приложения для записи и воспроизведения музыки, игры с звуковыми эффектами и другие. Благодаря своей гибкости и мощным возможностям, Windows Wave позволяет создавать приложения с высококачественным звуковым воспроизведением и записью.

Преимущества Windows Wave
Одним из главных преимуществ Windows Wave является его совместимость с большинством аудиоустройств, поддерживаемых операционной системой Windows. Приложения, использующие Windows Wave, могут работать с различными аудиоустройствами, включая встроенные звуковые карты, USB-аудиоинтерфейсы и другие.
Windows Wave предлагает разнообразные возможности обработки звука. Это позволяет программистам добавлять эффекты к звуковым данным, изменять тональность и скорость звука, применять эффекты плавной регулировки громкости и другие возможности.
API Windows Wave предоставляет доступ к низкоуровневым функциям звукового устройства, что позволяет более точно контролировать характеристики звука, записываемого и воспроизводимого приложением. Это идеально подходит для разработчиков, которым требуется максимальный контроль над работой с звуком.

Описание и возможности платформы

Платформа Windows Wave предоставляет набор API и инструментов, которые позволяют разработчикам создавать аудио приложения, работающие с различными форматами звука. С помощью Windows Wave можно записывать звук с микрофона, воспроизводить аудио файлы, изменять громкость и уровень звука, добавлять эффекты и другие операции с аудио.

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

Платформа Windows Wave также поддерживает другие популярные аудио форматы, такие как MP3, AAC, WMA и другие. С помощью API Windows Wave можно производить декодирование и кодирование аудио данных в различные форматы.

Windows Wave обладает мощными возможностями для обработки аудио данных. Платформа предоставляет API для применения различных эффектов к звуку, включая изменение тональности, скорости воспроизведения, эхо, реверберацию, усиление и другие аудио эффекты.

Кроме того, Windows Wave позволяет работать с несколькими аудио потоками одновременно, что позволяет создавать многоканальные приложения и обрабатывать аудио данные в реальном времени.

В целом, платформа Windows Wave предоставляет всесторонние возможности для работы с аудио данными на операционной системе Windows. Она является незаменимым инструментом для разработчиков, создающих аудио приложения, игры, мультимедийные программы и другие проекты, связанные с обработкой звука на компьютере.

Преимущества использования Windows Wave

1. Универсальность и совместимость: Windows Wave поддерживается на большинстве устройств, работающих под управлением операционной системы Windows, как настольных компьютеров, так и мобильных устройств. Это позволяет использовать Windows Wave без ограничений и дополнительных затрат на обновление оборудования.

2. Простота использования: Windows Wave имеет интуитивно понятный и легкий в освоении интерфейс, что делает его доступным даже для новичков. Благодаря простоте использования, пользователи могут быстро настроить и запустить аудио-технологии Windows Wave без необходимости обращения к специалистам.

3. Богатые функциональные возможности: Windows Wave предоставляет широкий набор функций, позволяющих пользователю обрабатывать и управлять звуковыми данными. Среди них: запись и воспроизведение аудио, микширование звуковых потоков, настройка уровней громкости, применение эффектов и многое другое. Благодаря этим возможностям пользователи могут легко создавать высококачественные звуковые материалы.

4. Поддержка различных аудиоформатов: Windows Wave поддерживает большое количество форматов аудиофайлов, включая популярные форматы, такие как WAV, MP3, FLAC, AAC и другие. Это позволяет работать с звуковыми файлами разных типов, а также преобразовывать их из одного формата в другой без необходимости использования дополнительных программ.

5. Возможность интеграции с другими программами: Windows Wave предоставляет удобные и гибкие интерфейсы для интеграции с другими программами и платформами. Это позволяет разработчикам использовать Windows Wave в своих проектах и создавать собственные аудио-приложения, расширяя его функциональность и применение.

6. Поддержка плагинов и расширений: Windows Wave поддерживает использование плагинов и расширений, позволяющих добавить дополнительные возможности и функциональность. Это делает Windows Wave гибким и масштабируемым инструментом, который может быть адаптирован под различные потребности пользователей.

В целом, использование Windows Wave предлагает множество преимуществ, обеспечивая высокую производительность и качество звука на устройствах под управлением операционной системы Windows. Благодаря широкому функциональному набору и простоте использования, Windows Wave является надежным инструментом для работы с аудио и может быть использован как в профессиональных, так и в домашних условиях.

Как использовать Windows Wave для собственных целей?

Для использования Windows Wave вам понадобится компьютер с установленной операционной системой Windows и звуковой картой. Убедитесь, что ваша звуковая карта и драйверы на нее установлены и работают правильно.

Установите Windows Wave на ваш компьютер. Для этого перейдите на официальный сайт разработчика и следуйте инструкциям по установке. После установки запустите программу.

В основном окне Windows Wave вы увидите панель инструментов, панель управления и рабочую область. Панель инструментов содержит различные инструменты для работы с звуком, включая редакторы громкости, частоты, скорости воспроизведения и другие.

Чтобы создать новый звуковой файл, нажмите на кнопку «Создать» на панели инструментов или выберите соответствующий пункт меню. Затем выберите формат файла и настройте его параметры в соответствии с вашими потребностями.

Для редактирования звукового файла загрузите его в программу, нажав на кнопку «Открыть» или выбрав соответствующий пункт меню. После загрузки файла вы сможете прослушать его, вырезать, копировать, вставлять и изменять различные параметры.

Windows Wave также предоставляет возможность добавлять специальные эффекты к звуковым файлам. Для этого выберите соответствующий инструмент из панели инструментов и настройте его параметры.

По завершении работы с файлом сохраните его на вашем компьютере, нажав на кнопку «Сохранить» или выбрав соответствующий пункт меню. Укажите имя файла, формат и расположение для сохранения.

Windows Wave позволяет также экспортировать звуковые файлы в другие форматы или импортировать файлы из других источников. Для этого выберите соответствующие опции из меню «Файл».

Теперь вы можете использовать Windows Wave для создания и редактирования звуковых файлов на своем компьютере. Используйте все доступные функции и инструменты для получения желаемого результата. Учтите, что Windows Wave не является профессиональным аудио-редактором, но предоставляет мощные возможности для работы с звуком на любительском уровне.

Надеюсь, эта статья помогла вам понять, что такое Windows Wave и как использовать его для собственных целей. Желаю вам удачи в создании и редактировании звуковых файлов!

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как поменять язык при входе в windows
  • Hp touchsmart 7320 pc драйвера windows 10
  • Snapchat на windows phone
  • Звуковой эквалайзер для windows 10
  • C windows win ini