Кодирование
Б.1 Введение
Приложение обеспечивает инструкции для создания типичного структурированного аудио кодера. Приложение описывает возможные функции инструментов для создания потока битов. Методы, описанные здесь, носят справочный характер.
Б.2 Основное кодирование
Б.2.1 Введение
Этот подпункт описывает работу basic encoder. Основной структурированный аудио кодер берет, как входной компонент, модули потока битов и преобразовывает их в узаконенное представление потока битов.
Предполагается, что компонентные модули находятся в следующих форматах: SAOL и программы SASL в соответствующих текстовых форматах. Звуковые выборки индивидуально сохранены в компьютерном формате звукового файла, таком как AIFF или WAVE. Данные MIDI хранятся как стандартный файл MIDI. Банки sasbf сохранены как файлы двоичных данных.
Шаги, требуемые в создании потока битов, следующие: tokenisation SAOL и программ SASL, дизассемблирования звуковых выборок блока информации о конфигурации декодера и реорганизации счета и событий MIDI в потоковую передачу данных.
Б.2.2 Tokenisation данных SAOL
Этот процесс преобразовывает программу SAOL, данную в текстовом формате, в двоичный блок данных. Во время этого процесса, перечисляя имена инструментов, определяемых пользователем кодов операции, звуковых таблиц и сигнальных переменных в оркестре, может быть создана symbol table, связывающая каждого из них с числовым значением. Эта таблица может быть включена в заголовок конфигурации декодера потока битов.
Б.2.3 Tokenisation данных SASL
Этот процесс преобразовывает программу SASL, данную в текстовом формате, в двоичный блок данных. Любые символы, используемые в счете SASL, могут быть включены в таблицу символов, если они созданы в процессе, описанном в подпункте Б.2.2.
Б.2.4 Дизассемблирование звуковых выборок
Звуковые выборки, сохраненные как компьютерные звуковые файлы, дизассемблируются в блоки демонстрационных значений. Недопустимо включать звуковые выборки с отформатированными данными (такие как AIFF или файл WAVE) непосредственно в структурированный аудио поток битов. Длина (в выборках), частота дискретизации (в Гц), основная частота (в Гц), цикл запуска и конечные точки (в демонстрационном числе) считаются от отформатированной информации в компьютерном звуковом файле. Звуковые выборки преобразовываются из любого формата, если они были сохранены в компьютерном звуковом файле в любом 16-разрядном целочисленном значении со знаком (то есть, значения масштабируются в диапазон [-32768, 32767]), или в 32-разрядное значение с плавающей запятой со знаком. Любой формат может использоваться для выборки в структурированном аудиопотоке битов.
Б.2.5 Блок информации о конфигурации декодера
Заголовок конфигурации декодера создается согласно формату от маркируемого оркестра SAOL и одного или более маркируемого множества SASL, звуковых выборок, файлов MIDI и банков sasbf. Блоки могут быть в любом требуемом порядке и индексируются битовыми полями more_data и chunk_type. Бит каждого события счета high_priority в заголовке может быть установлен для каждой строки счета или для любого требуемого набора важных событий.
Б.2.6 Блок потоковой передачи потока битов
В структурированном аудиоформате потока битов передавать данные потоком в форме устройств доступа строго не требуется. Вся информация, запрошенная для того чтобы декодировать, может присутствовать в заголовке конфигурации декодера.
Звуковые выборки, события счета и команды MIDI могут все быть включены в часть данных потоковой передачи структурированного аудиопотока битов. Звуковая выборка включается, упаковывая звуковые данные, после того, как это было дизассемблировано от компьютерного формата звукового файла в устройство доступа. Событие счета может быть включено с или без метки времени. Если событие счета включается с меткой времени, то это подвергается внутреннему управлению темпом оркестра. Если событие счета включается без меток времени, это легче перенести на уровне устройства доступа. Если нет никакой явной метки времени, синхронизацией события управляет информация о синхронизации в устройстве доступа. В этом случае может использоваться тег use_if_late.
Команды MIDI сначала преобразовываются из стандартного формата файла MIDI в представленные MIDI данные. Чтобы выполнить это, абсолютное время каждого события в стандартном MIDIFile вычисляется согласно синтаксису и семантике. Затем события не включаются с дельта-временами, а помещаются непосредственно в устройстве доступа так, чтобы информация о синхронизации в устройстве доступа управляла синхронизацией для событий MIDI. Данные MIDI в каждом устройстве доступа в потоке битов являются теми же самыми, которые передаются в протоколе MIDI.