extracted_text:
О цифровом звуке
В последнее время возможности мультимедийного
оборудования значительно выросли, однако этой области
почемуто не уделяется достаточно внимания. Рядовой
пользователь страдает от нехватки информации и вынужден
учиться лишь на собственном опыте и ошибках. Этой статьей
мы постараемся устранить это досадное недоразумение. Данная
статья ориентирована на рядового пользователя и ставит своей
целью помочь ему разобраться в теоретических и практических
основах цифрового звука, выявить возможности и основные
приемы его использования.
Что именно мы знаем о звуковых возможностях компьютера,
кроме того, что в нашем домашнем компьютере установлена
звуковая плата и две колонки? К сожалению, вероятно изза
недостаточности литературы или по какимлибо другим
причинам, но пользователь, чаще всего, не знаком ни с чем,
кроме встроенного в Windows микшера аудио входов/выходов и
Recorder’а. Единственное использование звуковой карты,
которое находит простой пользователь – это вывод звука в
играх, да прослушивание коллекции аудио. А, ведь, даже самая
простая на сегодняшний день звуковая плата, установленная
почти в каждом компьютере, умеет намного больше  она открывает широчайшие возможности для всех, кто любит и
интересуется музыкой и звуком, а для тех, кто хочет создавать
свою музыку, звуковая карта может стать всемогущим
инструментом. Для того чтобы узнать что же умеет компьютер
в области звука нужно только поинтересоваться и перед вами
откроются возможности, о которых вы, может быть, даже не
догадывались. И все это не так сложно, как может показаться
на первый взгляд.
Некоторые факты и понятия, без которых тяжело обойтись:
В соответствии с теорией математика Фурье, звуковую волну
можно представить в виде спектра входящих в нее частот.
Частотные составляющие спектра  это синусоидальные
колебания (так называемые чистые тона), каждое из которых имеет свою собственную амплитуду и частоту. Таким образом,
любое, даже самое сложное по форме колебание (например,
человеческий голос), можно представить суммой простейших
синусоидальных колебании определенных частот и амплитуд. И
наоборот, сгенерировав различные колебания и наложив их друг
на друга (смикшировав, смешав), можно получить различные
звуки.
Справка: человеческий слуховой аппарат/мозг способен
различать частотные составляющие звука в пределах от 20 Гц
до ~20 КГц (верхняя граница может колебаться в зависимости
от возраста и других факторов). Кроме того, нижняя граница
сильно колеблется в зависимости от интенсивности звучания.
Оцифровка звука и его хранение на цифровом носителе
«Обычный» аналоговый звук представляется в аналоговой
аппаратуре непрерывным электрическим сигналом. Компьютер
оперирует с данными в цифровом виде. Это означает, что и звук
в компьютере представляется в цифровом виде. Как же
происходит преобразование аналогового сигнала в цифровой?
Цифровой звук – это способ представления электрического
сигнала посредством дискретных численных значений его
амплитуды. Допустим, мы имеем аналоговую звуковую дорожку хорошего качества (говоря «хорошее качество» будем
предполагать нешумную запись, содержащую спектральные
составляющие из всего слышимого диапазона частот –
приблизительно от 20 Гц до 20 КГц) и хотим «ввести» ее в
компьютер (то есть оцифровать) без потери качества. Как этого
добиться и как происходит оцифровка? Звуковая волна – это
некая сложная функция, зависимость амплитуды звуковой
волны от времени. Казалось бы, что раз это функция, то можно
записать ее в компьютер «как есть», то есть описать
математический вид функции и сохранить в памяти
компьютера. Однако практически это невозможно, поскольку
звуковые колебания нельзя представить аналитической
формулой (как y=x2, например). Остается один путь – описать
функцию путем хранения ее дискретных значений в
определенных точках. Иными словами, в каждой точке времени
можно измерить значение амплитуды сигнала и записать в виде
чисел. Однако и в этом методе есть свои недостатки, так как
значения амплитуды сигнала мы не можем записывать с
бесконечной точностью, и вынуждены их округлять. Говоря
иначе, мы будем приближать эту функцию по двум
координатным осям – амплитудной и временной (приближать в
точках – значит, говоря простым языком, брать значения
функции в точках и записывать их с конечной точностью).
Таким образом, оцифровка сигнала включает в себя два
процесса  процесс дискретизации (осуществление выборки) и процесс квантования. Процесс дискретизации  это процесс
получения значений величин преобразуемого сигнала в
определенные промежутки времени.
Квантование  процесс замены реальных значений сигнала
приближенными с определенной точностью (рис. 3). Таким образом, оцифровка – это фиксация амплитуды сигнала
через определенные промежутки времени и регистрация
полученных значений амплитуды в виде округленных цифровых
значений (так как значения амплитуды являются величиной
непрерывной, нет возможности конечным числом записать
точное значение амплитуды сигнала, именно поэтому прибегают
к округлению). Записанные значения амплитуды сигнала
называются отсчетами. Очевидно, что чем чаще мы будем
делать замеры амплитуды (чем выше частота дискретизации) и
чем меньше мы будем округлять полученные значения (чем
больше уровней квантования), тем более точное представление
сигнала в цифровой форме мы получим. Оцифрованный сигнал
в виде набора последовательных значений амплитуды можно
сохранить.
Теперь о практических проблемах. Вопервых, надо иметь в
виду, что память компьютера не бесконечна, так что каждый раз
при оцифровке необходимо находить какойто компромисс
между качеством (напрямую зависящим от использованных при
оцифровке параметров) и занимаемым оцифрованным сигналом
объемом.
Вовторых, согласно теореме Котельникова частота дискретизации устанавливает верхнюю границу частот
оцифрованного сигнала, а именно, максимальная частота
спектральных составляющих равна половине частоты
дискретизации сигнала. Попросту говоря, чтобы получить
полную информацию о звуке в частотной полосе до 22050 Гц,
необходима дискретизация с частотой не менее 44.1 КГц.
Существуют и другие проблемы и нюансы, связанные с
оцифровкой звука. Не сильно углубляясь в подробности
отметим, что в «цифровом звуке» изза дискретности
информации об амплитуде оригинального сигнала появляются
различные шумы и искажения (под фразой «в цифровом звуке
есть такието частоты и шумы» подразумевается, что когда этот
звук будет преобразован обратно из цифрового вида в
аналоговый, то в его звучании будут присутствовать
упомянутые частоты и шумы). Так, например, джиттер (jitter) –
шум, появляющийся в результате того, что осуществление
выборки сигнала при дискретизации происходит не через
абсолютно равные промежутки времени, а с какимито
отклонениями. То есть, если, скажем, дискретизация
проводится с частотой 44.1 КГц, то отсчеты берутся не точно
каждые 1/44100 секунды, а то немного раньше, то немного
позднее. А так как входной сигнал постоянно меняется, то
такая ошибка приводит к «захвату» не совсем верного уровня
сигнала. В результате во время проигрывания оцифрованного
сигнала может ощущаться некоторое дрожание и искажения. Появление джиттера является результатом не абсолютной
стабильности аналоговоцифровых преобразователей. Для
борьбы с этим явлением применяют высокостабильные
тактовые генераторы. Еще одной неприятностью является шум
дробления. Как мы говорили, при квантовании амплитуды
сигнала происходит ее округление до ближайшего уровня.
Такая погрешность вызывает ощущение «грязного» звучания.
Небольшая справка: стандартные параметры записи аудио
компактдисков следующие: частота дискретизации  44.1 КГц,
уровень квантования – 16 бит. Такие параметры соответствуют
65536 (216) уровням квантования амплитуды при взятии ее
значений 44100 раз в секунду.
На практике, процесс оцифровки (дискретизация и квантование
сигнала) остается невидимым для пользователя  всю черновую
работу делают разнообразные программы, которые дают
соответствующие команды драйверу (управляющая
подпрограмма операционной системы) звуковой карты. Любая
программа (будь то встроенный в Windows Recorder или
мощный звуковой редактор), способная осуществлять запись
аналогового сигнала в компьютер, так или иначе оцифровывает
сигнал с определенными параметрами, которые могут оказаться
важными в последующей работе с записанным звуком, и именно
по этой причине важно понять как происходит процесс
оцифровки и какие факторы влияют на ее результаты. Преобразование звука из цифрового вида в аналоговый
Как после оцифровки прослушивать звук? То есть, как
преобразовывать его обратно из цифрового вида в аналоговый?
Для преобразования дискретизованного сигнала в аналоговый
вид, пригодный для обработки аналоговыми устройствами
(усилителями и фильтрами) и последующего воспроизведения
через акустические системы, служит цифроаналоговый
преобразователь (ЦАП). Процесс преобразования представляет
собой обратный процесс дискретизации: имея информацию о
величине отсчетов (амплитуды сигнала) и беря определенное
количество отсчетов в единицу времени,
путем интерполирования происходит восстановление
исходного сигнала (рис. 4).
Еще совсем недавно воспроизведение звука в домашних
компьютерах было проблемой, так как компьютеры не оснащались специальными ЦАП. Сначала в качестве
простейшего звукового устройства в компьютере использовался
встроенный динамик (PC speaker). Вообще говоря, этот динамик
до сих пор имеется почти во всех PC, но никто уже не помнит
как его «раскачать», чтобы он заиграл. Если вкратце, то этот
динамик присоединен к порту на материнской плате, у которого
есть два положения – 1 и 0. Так вот, если этот порт быстро
быстро включать и выключать, то из динамика можно извлечь
болееменее правдоподобные звуки. Воспроизведение
различных частот достигается за счет того, что диффузор
динамика обладает конечной реакцией и не способен мгновенно
перескакивать с места на место, таким образом он «плавно
раскачивается» вследствие скачкообразного изменения
напряжения на нем. И если колебать его с разной скоростью, то
можно получить колебания воздуха на разных частотах.
Естественной альтернативой динамику стал так называемый
Covox – это простейший ЦАП, выполненный на нескольких
подобранных сопротивлениях (или готовой микросхеме),
которые обеспечивают перевод цифрового представления
сигнала в аналоговый – то есть в реальные значения амплитуды.
Covox прост в изготовлении и поэтому он пользовался успехом
у любителей вплоть до того времени, когда звуковая карта
стала доступной всем.
В современном компьютере звук воспроизводится и
записывается с помощью звуковой карты, подключаемой либо встроенной в материнскую плату компьютера. Задача звуковой
карты в компьютере – ввод и вывод аудио. Практически это
означает, что звуковая карта является тем преобразователем,
который переводит аналоговый звук в цифровой и обратно.
Если описывать упрощенно, то работа звуковой карты может
быть пояснена следующим образом. Предположим, что на вход
звуковой карты подан аналоговый сигнал и карта включена
(программно) в режим записи. Сначала входной аналоговый
сигнал попадает в аналоговый микшер, который занимается
смешением сигналов и регулировкой громкости и баланса.
Микшер необходим, в частности, для предоставления
возможности пользователю управлять уровнями записи. Затем
отрегулированный и сбалансированный сигнал попадает в
аналоговоцифровой преобразователь, где сигнал
дискретизуется и квантуется, в результате чего в компьютер по
шине данных направляется битпоток, который и представляет
собой оцифрованный аудио сигнал. Вывод аудио информации
почти аналогичен вводу, только происходит в обратную
сторону. Поток данных, направленный в звуковую карту,
преодолевает цифроаналоговый преобразователь, который
образует из чисел, описывающих амплитуду сигнала,
электрический сигнал; полученный аналоговый сигнал может
быть пропущен через любые аналоговые тракты для дальнейших
преобразований, в том числе и для воспроизведения. Надо
отметить, что если звуковая карта оборудована интерфейсом для обмена цифровыми данными, то при работе с цифровым
аудио никакие аналоговые блоки карты не задействуются.
Способы хранения цифрового звука
Для хранения цифрового звука существует много различных
способов. Как мы говорили, оцифрованный звук являет собой
набор значений амплитуды сигнала, взятых через определенные
промежутки времени. Таким образом, вопервых, блок
оцифрованной аудио информации можно записать в файл «как
есть», то есть последовательностью чисел (значений
амплитуды). В этом случае существуют два способа хранения
информации.
Первый  PCM (Pulse Code Modulation  импульснокодовая модуляция)  способ цифрового кодирования сигнала при
помощи записи абсолютных значений амплитуд (бывают
знаковое или беззнаковое представления). Именно в таком виде
записаны данные на всех аудио CD.
Второй способ  ADPCM (Adaptive Delta PCM  адаптивная
относительная импульснокодовая модуляция) – запись
значений сигнала не в абсолютных, а в относительных
изменениях амплитуд (приращениях). Вовторых, можно сжать
или упростить данные так, чтобы они занимали меньший объем
памяти, нежели будучи записанными «как есть». Тут тоже
имеются два пути.
Кодирование данных без потерь (lossless coding)  это способ
кодирования аудио, который позволяет осуществлять
стопроцентное восстановление данных из сжатого потока. К
такому способу уплотнения данных прибегают в тех случаях,
когда сохранение оригинального качества данных критично.
Например, после сведения звука в студии звукозаписи, данные необходимо сохранить в архиве в оригинальном качестве для
возможного последующего использования. Существующие
сегодня алгоритмы кодирования без потерь (например, Monkeys
Audio) позволяют сократить занимаемый данными объем на 20
50%, но при этом обеспечить стопроцентное восстановление
оригинальных данных из полученных после сжатия. Подобные
кодеры – это своего рода архиваторы данных (как ZIP, RAR и
другие), только предназначенные для сжатия именно аудио.
Имеется и второй путь кодирования, на котором мы
остановимся чуть подробнее, – кодирование данных с
потерями (lossy coding). Цель такого кодирования  любыми
способами добиться схожести звучания восстановленного
сигнала с оригиналом при как можно меньшем объеме
упакованных данных. Это достигается путем использования
различных алгоритмов «упрощающих» оригинальный сигнал
(выкидывая из него «ненужные» слабослышимые детали), что
приводит к тому, что декодированный сигнал фактически
перестает быть идентичным оригиналу, а лишь похоже звучит.
Методов сжатия, а также программ, реализующих эти методы,
существует много. Наиболее известными являются MPEG1
Layer I,II,III (последним является всем известный MP3), MPEG
2 AAC (advanced audio coding), Ogg Vorbis, Windows Media
Audio (WMA), TwinVQ (VQF), MPEGPlus, TAC, и прочие. В
среднем, коэффициент сжатия, обеспечиваемый такими кодерами, находится в пределах 1014 (раз). Надо особо
подчеркнуть, что в основе всех lossyкодеров лежит
использование так называемой психоакустической модели,
которая как раз и занимается «упрощением» оригинального
сигнала. Говоря точнее, механизм подобных кодеров выполняет
анализ кодируемого сигнала, в процессе которого определяются
участки сигнала, в определенных частотных областях которых
имеются неслышные человеческому уху нюансы
(замаскированные или неслышимые частоты), после чего
происходит их удаление из оригинального сигнала. Таким
образом, степень сжатия оригинального сигнала зависит от
степени его «упрощения»; сильное сжатие достигается путем
«агрессивного упрощения» (когда кодер «считает» ненужными
множественные нюансы), такое сжатие, естественно, приводит к
сильной деградации качества, поскольку удалению могут
подлежать не только незаметные, но и значимые детали
звучания.
Как мы сказали, современных lossyкодеров существует
достаточно много. Наиболее распространенный формат –
MPEG1 Layer III (всем известный MP3). Формат завоевал свою
популярность совершенно заслуженно – это был первый
распространенный кодек подобного рода, который достиг столь
высокого уровня компрессии при отличном качестве звучания.
Сегодня этому кодеку имеется множество альтернатив, выбор
остается за пользователем. К сожалению, рамки статьи не позволяют привести здесь тестирования и сравнения
существующих кодеков, однако авторы статьи позволят себе
привести некоторую информацию, полезную при выборе
кодека.
Итак, преимущества MP3 – широкая распространенность и
достаточно высокое качество кодирования, которое объективно
улучшается благодаря разработкам различных кодеров MP3
энтузиастами (например, кодер Lame). Мощная альтернатива
MP3 – кодек Microsoft Windows Media Audio (Файлы .WMA
и .ASF). По различным тестам этот кодек показывает себя от
«как MP3» до «заметно хуже MP3» на средних битрейтах, и,
чаще, «лучше MP3» на низких битрейтах. Ogg Vorbis (файлы
.OGG) – совершенно свободный от лицензирования кодек,
создаваемый независимыми разработчиками. Чаще всего ведет
себя лучше MP3, недостатком является лишь малая
распространенность, что может стать критическим аргументом
при выборе кодека для длительного хранения аудио. Вспомним
и еще молодой кодек MP3 Pro, анонсированный в июле 2001
года компанией Coding Technologies совместно с Thomson
Multimedia. Кодек является продолжением, или, точнее,
развитием старого MP3 – он совместим с MP3 назад
(полностью) и вперед (частично). За счет использования новой
технологии SBR (Spectral Band Replication), кодек ведет себя
заметно лучше других форматов на низких битрейтах, однако
качество кодирования на средних и высоких битрейтах чаще уступает качеству почти всех описанных кодеков. Таким
образом, MP3 Pro пригоден больше для ведения аудио
трансляций в Internet, а также для создания превью песен и
музыки.
Говоря о способах хранения звука в цифровом виде нельзя не
вспомнить и о носителях данных. Всем привычный аудио
компактдиск, появившийся в начале 80х годов, широкое
распространение получил именно в последние годы (что связано
с сильным удешевлением носителя и приводов). А до этого
носителями цифровых данных являлись кассеты с магнитной
лентой, но не обычные, а специально предназначенные для так
называемых DATмагнитофонов. Ничего примечательного –
магнитофоны как магнитофоны, однако цена на них всегда была
высокой, и такое удовольствие было не всем «по зубам». Эти
магнитофоны использовались, в основном, в студиях
звукозаписи. Преимущество таких магнитофонов было в том,
что, не смотря на использование привычных носителей, данные
на них хранились в цифровом виде и практически никаких
потерь при чтении/записи на них не было (что очень важно при
студийной обработке и хранении звука). Сегодня появилось
большое количество различных носителей данных, кроме
привычных всем компакт дисков. Носители совершенствуются
и с каждым годом становятся более доступными и
компактными. Это открывает большие возможности в области
создания мобильных аудио проигрывателей. Уже сегодня продается огромное количество различных моделей переносных
цифровых плееров. И, можно предположить, что это еще далеко
не пик развития такого рода техники.
Преимущества и недостатки цифрового звука
С точки зрения обычного пользователя выгоды много
компактность современных носителей информации позволяет
ему, например, перевести все диски и пластинки из своей
коллекции в цифровое представление и сохранить на долгие
годы на небольшом трехдюймовом винчестере или на десятке
другом компакт дисков; можно воспользоваться специальным
программным обеспечением и хорошенько «почистить» старые
записи с бобин и пластинок, удалив из их звучания шумы и
треск; можно также не просто скорректировать звучание, но и
приукрасить его, добавить сочности, объемности, восстановить
частоты. Помимо перечисленных манипуляций со звуком в
домашних условиях, Интернет тоже приходит на помощь аудио
любителю. Например, сеть позволяет людям обмениваться
музыкой, прослушивать сотни тысяч различных Интернетрадио
станций, а также демонстрировать свое звуковое творчество
публике, и для этого нужен всего лишь компьютер и Интернет.
И, наконец, в последнее время появилась огромная масса
различной портативной цифровой аудио аппаратуры,
возможности даже самого среднего представителя которой зачастую позволяют с легкостью взять с собой в дорогу
коллекцию музыки, равную по длительности звучания десяткам
часов.
С точки зрения профессионала цифровой звук открывает
поистине необъятные возможности. Если раньше звуковые и
радио студии размещались на нескольких десятках квадратных
метров, то теперь их может заменить хороший компьютер,
который по возможностям превосходит десять таких студий
вместе взятых, а по стоимости оказывается многократно
дешевле одной. Это снимает многие финансовые барьеры и
делает звукозапись более доступной и профессионалу и
простому любителю. Современное программное обеспечение
позволяет делать со звуком все что угодно. Раньше различные
эффекты звучания достигались с помощью хитроумных
приспособлений, которые не всегда являли собой верх
технической мысли или же были просто устройствами
кустарного изготовления. Сегодня, самые сложные и просто
невообразимые раньше эффекты достигаются путем нажатия
пары кнопок. Конечно, вышесказанное несколько утрировано и
компьютер не заменяет человека – звукооператора, режиссера
или монтажера, однако с уверенностью можно сказать, что
компактность, мобильность, колоссальная мощность и
обеспечиваемое качество современной цифровой техники,
предназначенной для обработки звука, уже сегодня почти
полностью вытеснило из студий старую аналоговую аппаратуру.
Конечно, цифровая техника тоже имеет свои недостатки.
Многие (профессионалы и любители) отмечают, что аналоговый
звук слушался живее. И это не просто дань прошлому. Как мы
сказали выше, процесс оцифровки вносит определенную
погрешность в звучание, кроме того, различная усиливающая
цифровая аппаратура привносит так называемые
«транзисторные шумы» и другие специфические искажения.
Термину «транзисторный шум», пожалуй, нет точного
определения, но можно сказать, что это хаотичные колебания в
области высоких частот. Не смотря на то, что слуховой аппарат
человека способен воспринимать частоты до 20 кГц, похоже,
всетаки, человеческий мозг улавливает и более высокие
частоты. И именно на подсознательном уровне человек все же
ощущает аналоговое звучание чище, чем цифровое.
Впрочем, у цифрового представления данных есть одно
неоспоримое и очень важное преимущество – при сохранном
носителе данные на нем не искажаются с течением времени.
Если магнитная лента со временем размагничивается и качество
записи теряется, если пластинка царапается и к звучанию
прибавляются щелчки и треск, то компактдиск / винчестер /
электронная память либо читается (в случае сохранности), либо
нет, а эффект старения отсутствует. Важно отметить, мы не
говорим здесь об Audio CD (CDDA – стандарт, устанавливающий параметры и формат записи на аудио
компакт диски) так как несмотря на то, что это носитель
цифровой информации, эффект старения его, все же, не минует.
Это связано с особенностями хранения и считывания аудио
данных с Audio CD.
Информация на всех типах компактдисков хранится покадрово
и каждый кадр имеет заголовок, по которому его возможно
идентифицировать. Однако различные типы CD имеют
различную структуру и используют различные методы
маркировки кадров. Поскольку компьютерные приводы CD
ROM рассчитаны на чтение в основном DataCD (надо сказать,
что существуют различные разновидности стандарта DataCD,
каждый из которых дополняет основной стандарт CDDA), они
часто не способны правильно «ориентироваться» на Audio CD,
где способ маркировки кадров отличен от DataCD (на аудио
CD кадры не имеют специального заголовка и для определения
смещения каждого кадра необходимо следить за информацией в
кадре). Это означает, что если при чтении DataCD привод
легко «ориентируется» на диске и никогда не перепутает
кадры, то при чтении с аудио компакт диска привод не может
ориентироваться четко, что при появлении, скажем, царапины
или пыли может привести к чтению неправильного кадра и, как
следствие, скачку или треску звучания. Эта же проблема
(неспособность большинства приводов правильно
позиционироваться на CDDA) является причиной еще одного неприятного эффекта: копирование информации с Audio CD
вызывает проблемы даже при работе с полностью сохранными
дисками вследствие того, что правильное «ориентирование на
диске» полностью зависит от считывающего привода и не может
быть четко проконтролировано программным путем.
Повсеместное распространение и дальнейшее развитие уже
упомянутых lossyкодеров аудио (MP3, AAC и других) открыло
широчайшие возможности распространения и хранения аудио.
Современные каналы связи уже давно позволяют пересылать
большие массивы данных за сравнительно небольшое время,
однако самой медленной остается передача данных между
конечным пользователем и поставщиком услуг связи.
Телефонные линии, по которым пользователи в большинстве
своем связываются с Интернетом, не позволяют осуществлять
быструю передачу данных. Нечего и говорить, что такие объемы
данных, какие занимает несжатая аудио и видео информация,
передавать по привычным каналам связи придется очень долго.
Однако появление lossyкодеров, обеспечивающих десяти
пятнадцати кратное сжатие, превратило передачу и обмен
аудио данными в повседневное занятие каждого пользователя
Интернета и сняло все преграды, образованные слабыми
каналами связи. Касательно этого нужно сказать, что
развивающаяся сегодня семимильными шагами цифровая
мобильная связь во многом обязана именно lossyкодированию.
Дело в том, что протоколы передачи аудио по каналам мобильной связи работают на приблизительно тех же
принципах, что и известные всем музыкальные кодеры. Поэтому
дальнейшее развитие в области кодирования аудио неизменно
ведет к уменьшению стоимости передачи данных в мобильных
системах, от чего конечный пользователь только выигрывает:
дешевеет связь, появляются новые возможности, продлевается
время работы батарей мобильных устройств и т.д. Не в меньшей
степени lossyкодирование помогает экономить деньги на
покупке дисков с любимыми песнями – сегодня стоит только
зайти в Интернет и там можно найти почти любую
интересующую песню. Безусловно, такое положение вещей
давно «мозолит глаза» звукозаписывающим компаниям – у них
под носом люди вместо покупки дисков обмениваются песнями
прямо через Интернет, что превращает некогда золотое дно в
малоприбыльный бизнес, но это уже вопрос этики и финансов.
Одно можно сказать с уверенностью: с таким положением
вещей уже ничего нельзя поделать и бум обмена музыкой через
Интернет, порожденный именно появлением lossyкодеров, уже
ничем не остановить. А это только на руку рядовому
пользователю.
К вопросу об обработке звука
Под обработкой звука следует понимать различные
преобразования звуковой информации с целью изменения какихто характеристик звучания. К обработке звука относятся
способы создания различных звуковых эффектов, фильтрация, а
также методы очистки звука от нежелательных шумов,
изменения тембра и т.д. Все это огромное множество
преобразований сводится, в конечном счете, к следующим
основным типам:
Амплитудные преобразования. Выполняются над амплитудой
сигнала и приводят к ее усилению/ослаблению или изменению
по какомулибо закону на определенных участках сигнала.
Частотные преобразования. Выполняются над частотными
составляющими звука: сигнал представляется в виде спектра
частот через определенные промежутки времени, производится
обработка необходимых частотных составляющих, например,
фильтрация, и обратное «сворачивание» сигнала из спектра в
волну.
Фазовые преобразования. Сдвиг фазы сигнала тем или иным
способом; например, такие преобразования стерео сигнала,
позволяют реализовать эффект вращения или «объёмности»
звука.
Временные преобразования. Реализуются путем наложения,
растягивания/сжатия сигналов; позволяют создать, например, эффекты эха или хора, а также повлиять на пространственные
характеристики звука.
Обсуждение каждого из названных типов преобразований может
стать целым научным трудом. Стоит привести несколько
практических примеров использования указанных видов
преобразований при создании реальных звуковых эффектов:
Echo (эхо). Реализуется с помощью временных преобразований.
Фактически для получения эха необходимо на оригинальный
входной сигнал наложить его задержанную во времени копию.
Для того, чтобы человеческое ухо воспринимало вторую копию
сигнала как повторение, а не как отзвук основного сигнала,
необходимо время задержки установить равным примерно 50
мс. На основной сигнал можно наложить не одну его копию, а
несколько, что позволит на выходе получить эффект
многократного повторения звука (многоголосного эха). Чтобы
эхо казалось затухающим, необходимо на исходный сигнал
накладывать не просто задержанные копии сигнала, а
приглушенные по амплитуде.
Reverberation (повторение, отражение). Эффект заключается
в придании звучанию объемности, характерной для большого
зала, где каждый звук порождает соответствующий, медленно
угасающий отзвук. Практически, с помощью реверберации можно «оживить», например, фонограмму, сделанную в
заглушенном помещении. От эффекта «эхо» реверберация
отличается тем, что на входной сигнал накладывается
задержанный во времени выходной сигнал, а не задержанная
копия входного. Иными словами, блок реверберации упрощенно
представляет собой петлю, где выход блока подключен к его
входу, таким образом уже обработанный сигнал каждый цикл
снова подается на вход смешиваясь с оригинальным сигналом.
Chorus (хор). В результате его применения звучание сигнала
превращается как бы в звучание хора или в одновременное
звучание нескольких инструментов. Схема получения такого
эффекта аналогична схеме создания эффекта эха с той лишь
разницей, что задержанные копии входного сигнала
подвергаются слабой частотной модуляции (в среднем от 0.1 до
5 Гц) перед смешиванием со входным сигналом. Увеличение
количества голосов в хоре достигается путем добавления копий
сигнала с различными временами задержки.
Безусловно, как и во всех других областях, в обработке
сигналов также имеются проблемы, которые являются своего
рода камнем преткновения. Так, например, при разложении
сигналов в спектр частот существует принцип
неопределенности, который невозможно преодолеть. Принцип
гласит, что нельзя получить точную спектральную картину сигнала в конкретный момент времени: либо для получения
более точной спектральной картины нужно проанализировать
больший временной участок сигнала, либо, если нас интересует
больше время, когда происходило то или иное изменение
спектра, нужно пожертвовать точностью самого спектра.
Иными словами нельзя получить точный спектр сигнала в точке
 точный спектр для большого участка сигнала, либо очень
приблизительный спектр, но для короткого участка.
Механизмы для обработки сигналов существуют как в
программном, так и в аппаратном исполнениях (так называемые
эффектпроцессоры). Например, вокодеры и гитарные
процессоры, хорусы и ревербераторы существуют в виде
аппаратуры, а также в виде программ.
Практическую обработку сигналов можно разделить на два
типа: обработка «на лету» и постобработка. Обработка «на
лету» подразумевает мгновенное преобразование сигнала (то
есть с возможностью осуществлять вывод обработанного
сигнала почти одновременно с его вводом). Простой пример –
гитарные «примочки» или реверберация во время живого
исполнения на сцене. Такая обработка происходит мгновенно,
то есть, скажем, исполнитель поет в микрофон, а эффект
процессор преобразует его голос и слушатель слышит уже
обработанный вариант голоса. Постобработка – это обработка
уже записанного сигнала. Скорость такой обработки может быть сильно ниже скорости воспроизведения. Такая обработка
преследует те же цели, то есть придание звуку определенного
характера, либо изменение характеристик, однако применяется
на стадии мастеринга или подготовки звука к тиражированию,
когда не требуется спешка, а важнее качество и скрупулезная
проработка всех нюансов звучания. Существует множество
различных операций над звуком, которые вследствие
недостаточной производительности сегодняшних процессоров
нельзя реализовать «на лету», поэтому такие преобразования
проводят лишь в пострежиме.
Обработка сигнала – это сложная и, главное, ресурсоемкая
процедура. Она сравнительно недавно стала проводиться в
цифровых устройствах – раньше различные эффекты звучания и
другие достигались путем обработки звука в аналоговых
приборах. В аналоговой аппаратуре звук в виде электрических
колебаний проходит через различные тракты (блоки
электрических элементов), чем достигается изменение фазы,
спектра и амплитуды сигнала. Однако такой способ обработки
имеет массу недостатков. Вопервых, страдает качество
обработки, ведь каждый аналоговый элемент имеет свою
погрешность, а несколько десятков элементов могут
критически повлиять на точность и качество желаемого
результата. А вовторых, и это, пожалуй, самое главное, почти
каждый отдельный эффект достигается путем использования
отдельного устройства, когда каждое такое устройство может стоить очень дорого. Возможность же использования цифровых
устройств имеет неоспоримые преимущества. Качество
обработки сигналов в них намного меньше зависит от качества
аппаратуры, главное – это качественно оцифровать звук и иметь
возможность качественно его воспроизводить, и тогда качество
обработки ложится уже только на программный механизм.
Кроме того, для различных манипуляций со звуком не
требуется постоянная смена оборудования. И, самое главное,
поскольку обработка ведется программным путем, для нее
открываются просто невероятные возможности, которые
ограничены лишь мощностью компьютеров (а она увеличивается
с каждым днем) и фантазией человека. Однако, (по крайней
мере сегодня) здесь имеются и свои неприятности. Так,
например, часто, даже для осуществления несложной обработки
сигнала необходимо осуществить его разложение в спектр
частот. В этом случае обработка сигнала на лету может быть
затруднена именно изза ресурсоемкости этапа разложения.
Поэтому преобразования, требующие спектрального
разложения, выполняют чаще в пострежиме.
Аппаратура
Немаловажная часть разговора о звуке связана с аппаратурой.
Существует много различных устройств для обработки и
ввода/вывода звука. Касательно обычного персонального компьютера следует подробнее остановиться на звуковых
картах. Звуковые карты принято делить на звуковые,
музыкальные и звукомузыкальные. По конструкции же все
звуковые платы можно разделить на две группы: основные
(устанавливаемые на материнской плате компьютера и
обеспечивающие ввод и вывод аудио данных) и дочерние
(имеют принципиальное конструктивное отличие от основных
плат  они чаще всего подключаются к специальному разъему,
расположенному на основной плате). Дочерние платы служат
чаще всего для обеспечения или расширения возможностей
MIDIсинтезатора.
Звукомузыкальные и звуковые платы выполняются в виде
устройств, вставляемых в слот материнской платы (либо уже
встроены в нее изначально). Визуально они имеют обычно два
аналоговых входа  линейный и микрофонный, и несколько
аналоговых выходов: линейные выходы и выход для наушников.
В последнее время карты стали оснащаться также и цифровым
входом и выходом, обеспечивающим передачу аудио между
цифровыми устройствами. Аналоговые входы и выходы обычно
имеют разъемы, аналогичные разъемам головных наушников
(1/8”). Вообще, входов у звуковой платы немного больше, чем
два: аналоговые CD, MIDI и другие входы. Они, в отличие от
микрофонного и линейного входов, расположены не на задней
панели звуковой платы, а на самой плате; могут иметься и
другие входы, например, для подключения голосового модема. Цифровые входы и выходы обычно выполнены в виде
интерфейса S/PDIF (интерфейс цифровой передачи сигналов) с
соответствующим разъемом (S/PDIF – сокращение от
Sony/Panasonic Digital Interface  цифровой интерфейс
Sony/Panasonic). S/PDIF  это «бытовой» вариант более
сложного профессионального стандарта AES/EBU (Audio
Engineering Society / European Broadcast Union). Сигнал S/PDIF
используется для цифровой передачи (кодирования) 16
разрядных стерео данных с любой частотой дискретизации.
Помимо перечисленного, на звукомузыкальных платах имеется
MIDIинтерфейс с разъемами для подключения MIDIустройств
и джойстиков, а также для подсоединения дочерней
музыкальной карты (хотя в последнее время возможность
подключения последней становится редкостью). Некоторые
модели звуковых карт для удобства пользователя оснащаются
фронтальной панелью, устанавливаемой на лицевой стороне
системного блока компьютера, на которой размещаются
разъемы, соединенные с различными входами и выходами
звуковой карты.
Определим несколько основных блоков, из которых состоят
звуковые и звукомузыкальные платы.
1. Блок цифровой обработки сигналов (кодек). В этом блоке
осуществляются аналогоцифровые и цифроаналоговые
преобразования (АЦП и ЦАП). От этого блока зависят такие характеристики карты, как максимальная частота
дискретизации при записи и воспроизведении сигнала,
максимальный уровень квантования и максимальное количество
обрабатываемых каналов (моно или стерео). В немалой степени
от качества и сложности составляющих этого блока зависят и
шумовые характеристики.
2. Блок синтезатора. Присутствует в музыкальных картах.
Выполняется на основе либо FM, либо WTсинтеза, либо на
обоих сразу. Может работать как под управлением
собственного процессора, так и под управлением специального
драйвера.
3. Интерфейсный блок. Обеспечивает передачу данных по
различным интерфейсам (например, S/PDIF). У чисто звуковой
карты этот блок чаще отсутствует.
4. Микшерный блок. В звуковых платах микшерный блок
обеспечивает регулировку:
 уровней сигналов с линейных входов;
 уровней с MIDI входа и входа цифрового звука;
 уровня общего сигнала;
 панорамирования;  тембра.
Рассмотрим важнейшие параметры, характеризующие звуковые
и звукомузыкальные платы. Наиболее важными
характеристиками являются: максимальная частота
дискретизации (sampling rate) в режиме записи и в режиме
воспроизведения, максимальный уровень квантования или
разрядность (max. quantization level) в режиме записи и
воспроизведения. Кроме того, так как звукомузыкальные платы
имеют еще и синтезатор, то к их характеристикам относят и
параметры установленного синтезатора. Естественно, чем с
большим уровнем квантования карта способна кодировать
сигналы, тем большее качество сигнала при этом достигается.
Все современные модели звуковых карт способны кодировать
сигнал с уровнем 16 бит. Одной из важных характеристик
является возможность одновременного воспроизведения и
записи звуковых потоков. Особенность карты одновременно
воспроизводить и записывать называют полнодуплексной (full
duplex). Есть еще одна характеристика, которая зачастую
играет решающую роль при покупке звуковой карты
 отношение сигнал/шум (Signal/Noise Ratio, S/N). Этот
показатель влияет на чистоту записи и воспроизведения
сигнала. Отношение сигнал/шум – это отношение мощности
сигнала к мощности шума на выходе устройства, этот показатель принято измерять в дБ. Хорошим можно считать
отношение 8085 дБ; идеальным – 95100 дБ. Однако нужно
учитывать, что на качество воспроизведения и записи сильно
влияют наводки (помехи) со стороны других компонент
компьютера (блока питания и проч.). В результате этого
отношение сигнал/шум может изменяться в худшую сторону. На
практике методов борьбы с этим существует достаточно много.
Некоторые предлагают заземлить компьютер. Другие, дабы как
можно более тщательно уберечь звуковую карту от наводок,
«выносят» ее за пределы корпуса компьютера. Однако
полностью уберечься от наводок очень тяжело, так как даже
элементы самой карты создают наводки друг на друга. С этим
тоже пытаются бороться и для этого экранируют каждый
элемент на плате. Но сколько бы усилий не прилагалось к
решению этой проблемы, полностью исключить влияние
внешних помех невозможно.
Еще одна не менее важная характеристика – коэффициент
нелинейных искажений или Total Harmonic Distortion, THD.
Этот показатель также критическим образом влияет на чистоту
звучания. Коэффициент нелинейных искажений измеряется в
процентах: 1%  «грязное» звучание; 0.1%  нормальное
звучание; 0.01%  чистое звучание класса HiFi; 0.002%
звучание класса HiFi – Hi End.. Нелинейные искажения –
результат неточности в восстановлении сигнала из цифрового вида в аналоговый. Упрощенно, процесс измерения этого
коэффициента проводится следующим образом. На вход
звуковой карты подается чистый синусоидальный сигнал. На
выходе устройства снимается сигнал, спектр которого
представляет собой сумму синусоидальных сигналов (сумма
исходной синусоиды и ее гармоник). Затем по специальной
формуле рассчитывается количественное соотношение
исходного сигнала и его гармоник, полученных на выходе
устройства. Это количественное соотношение и есть
коэффициент нелинейных искажений (THD).
Что такое MIDIсинтезатор? Термин «синтезатор» обычно
используется применительно к электронному музыкальному
инструменту, в котором звук создается и обрабатывается,
меняя свою окраску и характеристики. Естественно, название
этого устройства пошло от его основного предназначения –
синтеза звука. Основных методов синтеза звука существует
всего два: FM (Frequency modulation – частотная модуляция) и
WT (Wave Table – табличноволновой). Поскольку мы не
можем здесь подробно останавливаться на их рассмотрении,
опишем лишь основную идею методов. В основе FMсинтеза
лежит идея, что любое даже самое сложное колебание является
по сути суммой простейших синусоидальных. Таким образом,
можно наложить друг на друга сигналы от конечного числа
генераторов синусоид и путем изменения частот синусоид получать звуки, похожие на настоящие. Табличноволновой
синтез основывается на другом принципе. Синтез звука при
использовании такого метода достигается за счет манипуляций
над заранее записанными (оцифрованными) звуками реальных
музыкальных инструментов. Эти звуки (они называются
сэмплами) хранятся в постоянной памяти синтезатора.
MIDIсинтезатор – это синтезатор, отвечающий требованиям
стандарта, о котором мы сейчас поговорим. MIDI – это
общепринятая спецификация, связанная с организацией
цифрового интерфейса для музыкальных устройств,
включающая в себя стандарт на аппаратную и программную
части. Эта спецификация предназначена для организации
локальной сети электронных инструментов (рис. 7). К MIDI
устройствам относятся различные аппаратные и музыкальные
инструменты, отвечающие требованиям MIDI. Таким образом,
MIDIсинтезатор – это музыкальный инструмент,
предназначенный обычно для синтеза звука и музыки, а также
удовлетворяющий спецификации MIDI. Давайте разберемся
кратко, почему выделен отдельный класс устройств, названный
MIDI.
Дело в том, что осуществление программной обработки звука
часто сопряжено с неудобствами, обусловленными различными
техническими особенностями этого процесса. Даже возложив операции по обработке звука на звуковую карту или любую
другую аппаратуру, остается множество различных проблем.
Вопервых, зачастую желательно пользоваться аппаратным
синтезом звучания музыкальных инструментов (как минимум
потому, что компьютер – это слишком общий инструмент, часто
необходим просто аппаратный синтезатор звуков и музыки, не
более). Вовторых, программная обработка звука часто
сопровождается временными задержками, в то время как при
концертной работе необходимо мгновенное получение
обработанного сигнала. По этим и другим причинам и
прибегают к использованию специальной аппаратуры для
обработки, а не компьютеров со специальными программами.
Однако при использовании аппаратуры возникает
необходимость в едином стандарте, который позволил бы
соединять устройства друг с другом и комбинировать их. Эти
предпосылки и заставили в 1982 году несколько ведущих в
области музыкального оборудования компаний утвердить
первый MIDIстандарт, который впоследствии получил
продолжение и развивается по сей день. Что же в конечном
счете представляет собой MIDIинтерфейс и устройства в него
входящие с точки зрения персонального компьютера?
 Аппаратно  это установленные на звуковой карте:
синтезатор различных звуков и музыкальных инструментов,
микропроцессор, контролирующий и управляющий работу
MIDIустройств, а также различные стандартизованные разъемы и шнуры для подключения дополнительных
устройств.
 Программно  это протокол MIDI, представляющий собой
набор сообщений (команд), которые описывают различные
функции системы MIDI и с помощью которых
осуществляется связь (обмен информацией) между
устройствами MIDI. Сообщения можно рассматривать как
средство удаленного управления.
Рамки данной статьи не позволяют нам углубляться в частности
описания MIDI, следует отметить однако, что в отношении
синтезаторов звука MIDI устанавливает строгие требования к
их возможностям, примененным в них способам синтеза звука, а
также к управляющим параметрам синтеза. Кроме того, для
того, чтобы музыка созданная на одном синтезаторе могла бы
быть легко перенесена и успешно воспроизведена на другом,
были установлены несколько стандартов на соответствие
инструментов (голосов) и их параметров в различных
синтезаторах: стандарт General MIDI (GM), General Synth (GS)
и eXtended General (XG). Базисным стандартом является GM,
остальные два являются его логическими продолжениями и
расширениями.
В качестве практического примера устройства MIDI, можно
рассмотреть обычную MIDIклавиатуру. Упрощенно, MIDI клавиатура представляет собой укороченную клавиатуру рояля
в корпусе с которой находится MIDIинтерфейс, позволяющий
подключать ее к другим MIDIустройствам, например, к MIDI
синтезатору, который установлен в звуковой карте компьютера.
Используя специальное программное обеспечение (например,
MIDIсеквенсор) можно включить MIDIсинтезатор в режим
игры, например, на рояле, и нажимая на клавиши MIDI
клавиатуры слышать звуки рояля. Естественно, что роялем дело
не ограничивается – в стандарте GM имеются 128
мелодических инструментов и 46 ударных. Кроме того,
используя MIDIсеквенсор можно записывать исполняемые на
MIDIклавиатуре ноты в компьютер, для последующего
редактирования и аранжировки, либо просто для элементарной
распечатки нот.
Надо отметить, что поскольку MIDIданные – это набор
команд, то музыка, которая написана с помощью MIDI, также
записывается с помощью команд синтезатора. Иными словами,
MIDIпартитура – это последовательность команд: какую ноту
играть, какой инструмент использовать, какова
продолжительность и тональность ее звучания и так далее.
Знакомые многим MIDIфайлы (.MID) есть нечто иное, как
набор таких команд. Естественно, что поскольку имеется
великое множество производителей MIDIсинтезаторов, то и
звучать один и тот же файл может на разных синтезаторах по
разному (потому что в файле сами инструменты не хранятся, а есть лишь только указания синтезатору какими инструментами
играть, в то время как разные синтезаторы могут звучать по
разному).
Вернемся к рассмотрению звукомузыкальных плат. Поскольку
мы уже уточнили, что такое MIDI, нельзя обойти стороной
характеристики встроенного аппаратного синтезатора звуковой
карты. Современный синтезатор, чаще всего, основан на так
называемой «волновой таблице»  WaveTable (вкратце, принцип
работы такого синтезатора состоит в том, что звук в нем
синтезируется из набора записанных звуков путем их
динамического наложения и изменения параметров звучания),
раньше же основным типом синтеза являлся FM (Frequency
Modulation – синтез звука посредством генерирования простых
синусоидальных колебаний и их смешения). Основными
характеристиками WTсинтезатора являются: количество
инструментов в ПЗУ и его объем, наличие ОЗУ и его
максимальный объем, количество возможных эффектов
обработки сигналов, а также возможность поканальной эффект
обработки (конечно, в случае наличия эффектпроцессора),
количество генераторов, определяющих максимальное число
голосов в полифоническом (многоголосном) режиме и, может
быть самое главное, стандарт, в соответствии с которым
выполнен синтезатор (GM, GS или XG). Кстати, объем памяти
синтезатора  не всегда величина фиксированная. Дело в том,
что в последнее время синтезаторы перестали иметь свое ПЗУ, а пользуются основным ОЗУ компьютера: в этом случае все
используемые синтезатором звуки хранятся в файле на диске и
при необходимости считываются в ОЗУ.
Программное обеспечение
Наиболее важный класс программ – редакторы цифрового
аудио. Основные возможности таких программ это, как
минимум, обеспечение возможности записи (оцифровки) аудио
и сохранение на диск. Развитые представители такого рода
программ позволяют намного больше: запись, многоканальное
сведение аудио на нескольких виртуальных дорожках,
обработка специальными эффектами (как встроенными, так и
подключаемыми извне – об этом позже), очистка от шумов,
имеют развитую навигацию и инструментарий в виде
спектроскопа и прочих виртуальных приборов,
управление/управляемость внешними устройствами,
преобразование аудио из формата в формат, генерация
сигналов, запись на компакт диски и многое другое.
Не менее важная в функциональном смысле группа программ
– секвенсоры (программы для написания музыки). Чаще
всего, такие программы используют MIDIсинтезатор
(аппаратный внешний или встроенный почти в любую звуковую
карту, либо программный, организуемый специальным программным обеспечением). Такие программы предоставляют
пользователю либо привычный нотный стан (как, например,
программа Finale от CODA), либо более распространенный
способ редактирования аудио на компьютере, так называемый,
pianoroll (это более понятное представление музыки для
людей, не знакомых с нотами; в таком представлении
вертикально имеется ось с изображением клавиш пианино, а
горизонтально откладывается время, таким образом, ставя на
пересечении штрихи разной длинны, добиваются звучания
определенной ноты с определенной продолжительностью).
Встречаются и программы, позволяющие просматривать и
редактировать аудио в обоих представлениях. Развитые
секвенсоры помимо редактирования аудио во многом могут
дублировать возможности редакторов цифрового аудио –
осуществлять запись на CD, совмещать MIDIдорожки с
цифровыми сигналами и осуществлять мастеринг.
В наборе программ пользователя, занимающегося обработкой
звука, имеется множество разных инструментов, так было
раньше и так будет впредь – универсальных комбайнов для
работы со звуком не бывает. Однако, не смотря на все
разнообразие ПО, в программах часто используются схожие
механизмы для обработки звука (например, процессоры
эффектов и прочие). На какомто этапе разработки аудио ПО,
производители поняли, что удобнее сделать в своих программах
возможность подключения внешних инструментов, чем каждый раз создавать заново инструменты для каждой отдельной
программы. Так что многие программы, относящиеся к той или
иной группе ПО, позволяют подключать так называемые «плаг
ины»  внешние подключаемые модули, расширяющие
возможности обработки звука. Это стало возможным в
результате появления нескольких стандартов на интерфейс
между программой и подключаемым модулем. На сегодняшний
день существуют два основных стандарта на
интерфейс: DX и VST. Существование стандартов позволяет
подключать один и тот же плагин к совершенно разным
программам, не заботясь о возникновении конфликтов и
неполадок. Говоря о самих плагинах, надо сказать, что это
просто огромное семейство программ. Обычно, один плагин
является механизмом, реализующим какойто конкретный
эффект, например, реверберацию или низкочастотный фильтр.
Обработка звука и написание музыки – это не только
творческий процесс. Иногда нужен скрупулезный анализ
данных, а также осуществление поиска огрехов их звучания.
Кроме того, аудио материал, с который приходится иметь дело,
не всегда желаемого качества. В этой связи нельзя не вспомнить
о целом ряде программанализаторов аудио, специально
предназначенных для осуществления измерительных анализов
аудио данных. Такие программы помогают представить аудио
данные удобнее, чем обычные редакторы, а также внимательно изучить их с помощью различных инструментов, таких как FFT
анализаторы (построители динамических и статических
амплитудночастотных характеристик), построители
сонограмм, и прочих.
Специализированные реставраторы аудио играют также
немаловажную роль в обработке звука. Такие программы
позволяют восстановить утерянное качество звучания аудио
материала, удалить нежелательные щелчки, шумы, треск,
специфические помехи записей с аудиокассет, и провести
другую корректировку аудио.
Трекеры – это отдельная категория звуковых программ,
предназначенных именно для создания музыки. Ранее мы
рассмотрели два принципиально отличных способа хранения
звуковых данных (музыки): первый  хранение звука в виде
сжатого или несжатого потока аудио, второй  хранение музыки
в виде MIDIфайлов (в виде набора команд MIDIсинтезатору).
Структура и концепция построения трекерных файлов очень
похожа на принцип хранения MIDIинформации. В трекерных
модулях (файлы, созданные в трекерах, принято называть
модулями), также, как и в MIDIфайлах, содержится партитура
в соответствии с которой должны проигрываться инструменты.
Кроме того, в них содержится информация о том, какие
эффекты и в какой момент времени должны быть применены при проигрывании того или иного инструмента. Однако,
принципиальное отличие трекерных модулей от MIDIфайлов
заключается в том, что проигрываемые в этих модулях
инструменты (или, точнее сказать, сэмплы) хранятся в самих
модулях (то есть внутри файлов), а не в синтезаторе (как это
происходит в случае с MIDI). Такой способ хранения музыки
имеет массу преимуществ: размер файлов невелик по
сравнению с непрерывной оцифрованной музыкой (поскольку
записываются только использованные инструменты и партитура
в виде команд), нет зависимости звучания от компьютера, на
котором происходит воспроизведение (в MIDI, как мы
говорили, есть зависимость звучания от используемого
синтезатора), имеется большая свобода творчества, поскольку
автор музыки не ограничен наборов инструментов (как в MIDI),
а может использовать в качестве инструмента любой
оцифрованный звук.
Напоследок следует упомянуть о существовании огромного
количества другого аудио ПО: проигрыватели
аудио, подключаемые модули для
проигрывателей, утилиты для копирования информации с
аудио CD, перехватчики аудио потоков, кодеры
аудио, конвертеры аудио форматов, генераторы речи и
множество других специфических и общих утилит. Безусловно, все перечисленное – только малая толика из того, что может
пригодиться при работе со звуком.
Глоссарий терминов
1) DSP – Digital Signal Processor (цифровой сигнальный
процессор). Устройство (или программный механизм)
предназначенное для цифровой обработки сигналов.
2) Битрейт – применительно к потокам данных  количество бит
в секунду (bits per second). Применительно в звуковым файлам
(например, после lossyкодирования) – каким количеством бит
описывается одна секунда аудио.
3) Звук  акустическая волна, распространяющаяся в
пространстве; в каждой точке пространства может быть
представлена функцией амплитуды от времени.
4) Интерфейс  совокупность программных и аппаратных
средств, предназначенных для организации взаимодействия
различных устройств.
5) Интерполяция  отыскание промежуточных значений
величины по некоторым известным ее значениям; отыскание
значений функции f(x) в точках x, лежащих между точками xo 6) Кодек – программа либо устройство, предназначенное для
кодирования и/или декодирования данных.
7) Ресэмплинг (resampling) – изменение частоты дискретизации
оцифрованных аудио данных.
8) Сонограмма – график, способ представления спектра
сигнала, когда по оси абсцисс откладывается время, по оси
ординат частота, а амплитуды гармонических составляющих на
соответствующих частотах отражает насыщенность цвета на
пересечении временной и частотной координат.
9) Формат файла (звукового)  структура данных в файле.

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

Что именно мы знаем о звуковых возможностях компьютера, кроме того, что в нашем домашнем компьютере установлена звуковая плата и две колонки? К сожалению, вероятно из-за недостаточности литературы или по каким-либо другим причинам, но пользователь, чаще всего, не знаком ни с чем, кроме встроенного в Windows микшера аудио входов/выходов и Recorder’а. Единственное использование звуковой карты, которое находит простой пользователь – это вывод звука в играх, да прослушивание коллекции аудио. А, ведь, даже самая простая на сегодняшний день звуковая плата, установленная почти в каждом компьютере, умеет намного больше - она открывает широчайшие возможности для всех, кто любит и интересуется музыкой и звуком, а для тех, кто хочет создавать свою музыку, звуковая карта может стать всемогущим инструментом. Для того чтобы узнать что же умеет компьютер в области звука нужно только поинтересоваться и перед вами откроются возможности, о которых вы, может быть, даже не догадывались. И все это не так сложно, как может показаться на первый взгляд.

title: О цифровом звуке


extracted_text:
MIDI в деталях. MIDI Show Control. Часть 2

5
Двухэтапное подтверждение (2PC, Two Phase Commit) — это
особый метод взаимодействия устройств, при котором все
команды подтверждаются и до выполнения, и по завершении.
Технически — это набор команд, расширяющих базовую версию
протокола MIDI Show Control. Этот набор появился в 1996 году
и описан в документе RP014, выпущенном организацией MMA.
Вместе с исходной спецификацией MSC (документ RP002) он
образует новую версию протокола (MIDI Show Control 1.1).
При разработке метода 2PC стояла непростая задача —
обеспечить связь нескольких устройств закрытой архитектуры
друг с другом, при которой все они работают согласованно
либо не работают совсем, независимо от наличия ошибок в
коммутационных каналах. Задача была решена с
использованием двух фаз (этапов) в коммуникации. На первом
этапе все стороны соглашаются о том, что должно быть сделано. На втором этапе стороны реализуют это соглашение и
сообщают о результатах.
Метод двухэтапного подтверждения напоминает метод
сценической координации, применяемый при взаимодействии
стейджменеджера и оператора устройства. Первая фаза —
ожидания (STANDBY), соответствует команде
"приготовиться". Вторая фаза — "выполнить" или "пошел"
(GO).
Метод 2PС предлагается использовать для тщательно
спланированных шоу и тогда, когда в целях безопасности
требуются дополнительные проверки и избыточность в
механизмах управления (например, при работе с машинерией
или пиротехникой). При этом обеспечиваются проверка данных
и обнаружение ошибок в коммутационных каналах.
2PC требует взаимной коммутации устройств. Это значит, что,
кроме соединения главного контроллера с контролируемым
устройством, требуется и обратное, то есть MIDIвыход пульта
управления прибором соединяется с MIDIвходом главного
контроллера. Команды 2PC образуют четвертый
рекомендованный набор (о первых трех см. предыдущую
статью), он приведен в таблице на рис. 1. Спецификация предполагает, что в системе 2PC около каждого
контроллера и контролируемого устройства присутствует
человекоператор, который называется в данном случае
"локальный оператор". Локальный оператор может просто
наблюдать за процессом, либо выполнять дополнительную
проверку безопасности и ручное вмешательство в управление
при сбое оборудования. Предполагается, что локальный
оператор выполняет свои функции через специальную панель
управления (пульт или схожий интерфейс), который называется
"интерфейс локального оператора".
Сообщения 2PC
В отсутствие сбойных ситуаций для выполнения одной сцены в
протоколе 2PC используются четыре сообщения. Они показаны
в таблице на рис. 2 с указанием порядка следования и стороны
отправителя. Сначала главный контроллер посылает подчиненному
устройству сообщение STANDBY ("приготовиться"). Это
сообщение "разогревает" прибор и уведомляет его о том, что
скоро должна быть выполнена заданная сцена. В ответ на это
устройство отвечает контроллеру сообщением STANDING_BY
("наготове"), показывая свою готовность выполнить данную
сцену. Для выполнения сцены главный контроллер посылает
сообщение GO_2PC. Последнее сообщение серии, COMPLETE
("выполнено"), посылается прибором главному контроллеру и
сообщает о том, что выполнение сцены завершено успешно.
Предусмотрены также три сообщения на случай, если
произошел сбой: ABORT, CANCEL и CANCELLED.
Если контролируемое устройство обнаруживает сбойную
(исключительную) ситуацию, то есть ситуацию, когда
нормальное выполнение сцены невозможно, оно уведомляет об
этом главный контроллер посредством сообщения ABORT. Для
указания причины сбоя в это сообщение помещается код
состояния, на основании которого главный контроллер может выбрать дальнейший вариант действий.
Сообщение CANCEL посылается от контроллера к прибору и
говорит о том, что предыдущее сообщение (STANDBY и/или
GO_2PC) нужно отменить. В ответ на это прибор может
ответить сообщением CANCELLED ("отменено"), подтверждая
отмену предыдущих команд.
Сообщения 2PC имеют несколько общих элементов, таких как
номер секвенции (nn nn), контрольная сумма (сс), код
состояния (s1 s2) и данные сцены (d1 d2 d3 d4). Эти элементы
описаны далее, в соответствующих разделах. На рисунках 39
показана структура сообщений 2PC. Номер секвенции
Нумерация сцен в сообщениях от контроллера к
контролируемому устройству происходит в протоколе 2PC так
же, как и в обычных сообщениях MSC (то есть с помощью
полей Q_number, Q_list или Q_path, см. предыдущую статью).
Кроме того, для каждого из сообщений STANDBY, GO_2PC и
CANCEL главный контроллер генерирует уникальный номер
(от 1 до 16383), который называется номером секвенции. Этот
же номер передается в обратных сообщениях (STANDING_BY,
COMLETE, CANCELLED и ABORT), и по нему главный
контроллер определяет, к какой сцене относится сообщение.
Таким образом, в обратных сообщениях достаточно
использовать только номер секвенции, полный номер сцены
передавать не нужно. Номера секвенций позволяют работать по методу 2PC простым
устройствам, таким как различные детекторы и датчики.
Например, детектор газа может не понимать концепцию сцен.
При получении сообщения STANDBY он просто проверяет
наличие газа. Если газ не обнаружен, детектор отвечает
сообщением ABORT, если обнаружен — сообщением
STANDING_BY. Детектор игнорирует поля типа Q_number и
просто копирует номер секвенции из входящего сообщения в
исходящее. Кроме того, номера секвенций облегчают
отслеживание ответных сообщений от контролируемых
устройств оператору главного контроллера.
Контрольные суммы
Каждое сообщение 2PC содержит контрольную сумму,
состоящую из двух MIDIбайт (14 бит). При расчете
контрольной суммы поля command_format, command и data
сообщения рассматриваются как массив двухбайтовых
значений. Если число байт в этих полях нечетное, для расчета
суммы в конец добавляется один нулевой байт. Перед расчетом
те байты, которые занимает контрольная сумма, обнуляются.
Контрольная сумма рассчитывается путем простого сложения
элементов полученного массива, при этом переполнения
игнорируются. После чего к полученному результату прибавляется номер устройства. В завершении над полученным
числом и константой 0x7F7F (32639) выполняется логическая
операция AND (см. статью цикла "Передача данных.").
Сторона, принимающая сообщение, проверяет его
правильность, заново рассчитывая контрольную сумму и сверяя
ее с полученным значением в сообщении. Если контрольная
сумма отличается на стороне контролируемого устройства, оно
посылает контроллеру сообщение ABORT с кодом состояния
"ошибка контрольной суммы". Если сумма отличается на
стороне контроллера, он реагирует на это так, будто было
получено сообщение ABORT.
Коды состояния
Коды состояния используются в сообщениях ABORT и
CANCELLED и отражают причину ошибки или состояние
отмененной сцены. Код состояния представляет собой
беззнаковое двухбайтовое целое число. Чтобы оно могло быть
передано по MIDI, два младших бита числа должны быть
нулевыми. Соответственно, наименьший код состояния будет
равен 4, наибольший 0xFFFC (65532). В описании сообщений
статускод выглядит как "s1 s2". Метод преобразования кода
состояния в значения s1 и s2, и наоборот, показан на рис. 10. Есть три числовых диапазона кодов состояния. Первый
диапазон — общий для всех форматов команд, коды состояния
в нем применимы для любых типов контроллеров. Характерная
особенность этих кодов в том, что все они являются
отрицательными числами, если рассматривать код как целое
число со знаком (подробнее о представлении целых
отрицательных чисел см. четвертую статью цикла). Все коды,
возвращаемые в сообщениях CANCELLED, попадают в этот
первый диапазон.
Второй диапазон зависит от формата команды, то есть
специфичен для устройств определенного типа. Например, код
состояния 0x1008 означает "низкое давление воды", если
получен от устройства типа "спецэффект" (формат команды от
0x50 до 0x5F). Но когда тот же код получен от устройства
управления звуком (формат команды от 0x10 до 0x1F), он
означает "неполадки в усилителе".
Третий диапазон зависит как от формата команды, так и от
производителя. То есть, производители используют коды состояния в третьем диапазоне по своему усмотрению.
Информация об этих кодах обязательно должна быть
опубликована. Естественно, наибольшая совместимость систем
достигается в том случае, если коды из этого диапазона
используются как можно реже. Спецификация 2PC рекомендует
всегда, когда это возможно, использовать коды состояния из
второго диапазона.
Код состояния 0 зарезервирован на случай неизвестной ошибки
или ошибки, для обозначения которой другие коды не
подходят. Таблица на рис. 11 подытоживает вышесказанное.
В таблицах на рис. 12 и 13 приведены все коды состояния, не
зависящие от формата команды. Буквы в столбце "Сообщения"
показывают, какие сообщения могут привести к получению
ответа от устройства с данным кодом состояния (S=STANDBY,
G=GO_2PC, C=CANCEL). Первая таблица содержит коды
состояния, используемые в сообщении CANCELLED, вторая —
в сообщении ABORT. Обратите внимание, что сообщение
ABORT, посланное прибором в результате обработки сообщения CANCEL, может иметь только два кода состояния:
"неизвестная/неопределенная ошибка" и "ошибка контрольной
суммы". Код состояния "таймаут" никогда не появляется в
реально передаваемых сообщениях, он включен для упрощения
внутреннего устройства контроллера. В таблице на рис. 14 перечислены коды состояния из второго
диапазона, то есть коды, которые зависят от формата команды,
но применимы ко всем производителям устройств. Данные сцены
В сообщениях STANDBY и GO_2PC используются четыре
семибитных байта данных. Эти байты должны присутствовать
обязательно, независимо от того, используются ли они контролируемым устройством или нет. Если корректные
значения d1d4 для данной сцены (или для данного прибора)
неизвестны, на их месте должны быть переданы нули.
Байты данных позволяют сопоставить со сценой
дополнительную информацию. Например, в световых пультах,
работающих по принципу "Go On, Go Off", используется
величина "Go Level", или gl, которая задается выражением gl =
d1 + (d2*128). Последовательность команд STANDBYGO_2PC
со значением gl=255 эквивалентна команде Go On. Та же
последовательность со значением gl=0 эквивалентна команде
Go Off. Допустимы и промежуточные значения gl от 0 до 255.
Например, значение gl=128 эквивалентно команде "Go Cue To
50%". Любое значение gl вне диапазона 0255 в настоящее
время является некорректным, а при его получении прибор
должен отправить сообщение ABORT со статускодом
"некорректное значение данных сцены d1". Значения gl=256 и
выше зарезервированы для возможных будущих расширений.
В других типах устройств использование байтов d1d4
определяется производителем и должно быть описано в
документации. Если устройство получает некорректные данные
d1d4, оно должно ответить сообщением ABORT с одним из
кодов состояния "некорректное значение данных сцены dx".
Например, некорректное значение d1 должно привести к
сообщению ABORT с кодом "некорректное значение данных сцены d1". В тех случаях, когда ошибка данных касается более
чем одного байта d1d4, сообщение ABORT должно содержать
код состояния, соответствующий наименьшему ошибочному
байту. Устройства, которые понимают только часть байтов
данных, например, d1 и d3, должны игнорировать значения
остальных байт.
Взаимодействие устройств
Итак, выполнение сцены начинается с команды "приготовиться"
(STANDBY), которую главный контролер посылает
контролируемому устройству. Главный контроллер ожидает
ответного сообщения STANDING_BY в течение двух секунд.
Если за это время оно не приходит, главный контроллер
считает, что прибор ответил сообщением ABORT. Если по
любой из причин прибор не может подготовить данную сцену к
выполнению, то он отвечает сообщением ABORT явно.
Ответное сообщение STANDING_BY посылается только в том
случае, если запрошенная сцена известна прибору, находится в
его памяти и готова к немедленному выполнению. В сообщении
STANDING_BY прибор передает также максимальное время,
требуемое для выполнения сцены. Позже контроллер
использует это время, чтобы определить, не произошел ли сбой
в контролируемом устройстве. Максимальное время может быть значительно больше реально требуемого для сцены, но
никак не меньше. Если для выполнения сцены требуется
вмешательство оператора, то время ожидания действий
оператора также должно учитываться.
После успешного обмена STANDBYSTANDING_BY главный
контроллер посылает сообщение GO_2PC, которое приводит к
выполнению заданной сцены. По завершении сцены прибор
отправляет в главный контроллер сообщение COMPLETE. Если
во время выполнения сцены происходит сбой, прибор
немедленно передает сообщение ABORT с соответствующим
кодом состояния. Если сообщение GO_2PC пришло с тем
номером сцены, для которого еще не поступало сообщения
STANDBY (вероятно, изза ошибки в главном контроллере), то
прибор должен ответить сообщением ABORT с кодом
состояния "не в режиме ожидания".
Контролируемое устройство не обязано помнить акт обмена
STANDBYSTANDING_BY для какойлибо сцены
продолжительное время. Например, если сцена была успешно
согласована, а главный контроллер послал сообщение GO_2PC
только через час после согласования, прибор может просто
напросто забыть, "о чем идет речь", и ответить сообщением
ABORT с кодом состояния "не в режиме ожидания".
Возможен также случай предварительного согласования STANDBYSTANDING_BY для нескольких сцен с одним и тем
же прибором до того, как будет передана первая команда
GO_2PC. В этом случае устройству нужно помнить несколько
сцен, находящихся в режиме ожидания. Производители должны
публиковать максимальное число таких сцен. Хранимый в
памяти акт обмена STANDBYSTANDING_BY очищается по
получении сообщения GO_2PC. Чтобы выполнить сцену
повторно, требуется новое согласование.
Таймауты
Основной метод обнаружения ошибок по методу 2PC состоит в
отслеживании временного интервала между отправкой
сообщения прибору и получением от него ответа. Если этот
интервал превышает максимально допустимый, наступает тайм
аут. Главный контроллер расценивает таймаут так, будто
прибор передал сообщение ABORT с кодом состояния "тайм
аут". Этот "искусственный" код (поскольку он никогда не
посылается прибором явно) говорит контроллеру о том, что
контролируемое устройство перешло в неуправляемый режим
(по крайней мере, по протоколу 2PC).
Для сообщений STANDBY и CANCEL таймаут равен двум
секундам. Поэтому, например, сообщения STANDBY должны
посылаться как минимум за две секунды до предполагаемого времени отправки сообщения GO_2PC.
Таймаут на сообщение GO_2PC (то есть время между
отправкой этого сообщения и прихода ответного COMPLETE)
не является величиной постоянной и зависит от
продолжительности сцены, переданной прибором в сообщении
STANDING_BY. Если после запуска сцены сообщение
COMPLETE не пришло в течение 125% от указанной
продолжительности, то контроллер расценивает это как тайм
аут. Дополнительные 25% нужны для учета "разброса часов" в
контроллере и контролируемом устройстве.
Ожидание сообщений
Метод 2PC был разработан так, чтобы контролируемые
устройства никогда не ожидали сообщений от главного
контроллера. Прибор просто принимает сообщение, выполняет
предписанные им действия и возвращает ответное сообщение.
Даже в состоянии "наготове" прибор лишь помнит обмен
STANDBYSTANDING_BY, который был произведен в
недавнем времени, но не находится в постоянном ожидании
команды GO_2PC.
Преимущество такого способа работы очевидно. Так как
контролируемое устройство никогда не ждет сообщений, оно всегда готово принять команды ручного управления от
локального оператора. Следовательно, если даже главный
контроллер даст сбой, шоу может продолжаться с
использованием ручного управления на каждом из устройств.
Главный контроллер по определению должен ожидать
сообщений STANDING_BY, COMPLETE и CANCELLED в
течение определенного времени. Более того, он должен
одновременно ожидать многочисленные сообщения, чей
порядок отправки не определен. Поэтому в контроллере
применяется некий алгоритм обнаружения таймаутов для
множества сообщений от множества приборов.
Обработка исключительных ситуаций
Подобная обработка основана в методе 2PC на простом
принципе. Если на очередную команду главного контроллера
какойлибо прибор отвечает сообщением ABORT, то вся
система переходит в специальную фазу восстановления.
Главный контроллер посылает всем приборам системы
сообщения CANCEL, информируя их об отклонении от
безошибочной последовательности сцен. Это сообщение
посылается для тех сцен, которые находятся в состоянии
"наготове" или уже выполняются. Если отменяемая сцена находится в состоянии "наготове", то
акт согласования STANDBYSTANDING_BY просто
забывается. Если сцена уже исполняется, прибор может
выполнить одно из действий:
1) завершить сцену как обычно;
2) приостановить сцену, ожидая дальнейшего ее выполнения;
3) прекратить сцену без возможности дальнейшего ее
выполнения;
4) вернуться к состоянию, которое было до начала выполнения
команды GO_2PC;
5) выполнить сцену в обратном порядке.
Кроме того, в процесс может вмешаться локальный оператор и
перевести прибор в режим ручного управления.
Какое из этих действий будет выполнено, зависит от
оборудования и обстоятельств, при которых получено
сообщение CANCEL. Если выполняемая сцена приводит к
какомулибо вреду, вероятно, лучший выбор в данном случае —
завершить сцену. Если сцена приводит к неопределенной,
ненадежной ситуации, ее следует приостановить, сбросить или
выполнить в обратном порядке. Конечное решение зависит от
оборудования и ситуации в шоу.
Некоторые приборы всегда выполняют одно из перечисленных
восстановительных действий, другие позволяют это действие запрограммировать. Поведение прибора при получении
сообщения CANCEL должно быть документировано
производителем.
Если устройство решит завершить сцену в обычном порядке,
оно должно послать как сообщение CANCELLED с кодом "в
процессе завершения", так и сообщение COMPLETE. Первое из
них посылается в ответ на сообщение CANCEL немедленно,
второе — после фактического завершения сцены. Сцены,
приостановленные сообщением CANCEL, могут продолжить
выполнение после обмена STANDBYSTANDING_BY
GO_2PC.
В любом случае, на сообщение CANCEL прибор должен
ответить либо сообщением CANCELLED, либо сообщением
ABORT. Последнее допустимо только в том случае, если в
сообщении CANCEL обнаружена ошибка контрольной суммы.
Если на сообщение CANCEL не получен ответ в течение двух
секунд, контроллер обработает ситуацию так, будто было
передано сообщение ABORT.
Сообщение ABORT, как говорилось ранее, посылается
контролируемым устройством в случае сбоя при выполнении
команд STANDBY, GO_2PC или CANCEL. Номер секвенции в
этом сообщении говорит контроллеру о том, какое из
сообщений STANDBY, GO_2PC или CANCEL вызвало сбой. Код состояния показывает наиболее значимую причину сбоя,
однако могут быть и дополнительные, менее важные причины.
Поэтому исправления сбойной ситуации на основе одного кода
состояния может быть недостаточно.
Значимость кода состояния пропорциональна легкости, с
которой сбойная ситуация может быть исправлена. Например,
код "блокирующий переключатель не установлен" менее
значим, чем "сбой в моторе". Первый сбой может быть
исправлен немедленным вмешательством человека; второй,
возможно, удастся исправить, только разобрав мотор.
Код состояния "manual overriding in progress" ("сцена в
процессе ручного управления") показывает, что локальный
оператор контролируемого устройства взял на себя контроль за
выполнением сцены. Некоторые устройства могут игнорировать
все сообщения 2PC, пока локальный оператор использует
ручное управление.
Иногда сообщение ABORT не означает сбой устройства, а
просто говорит о том, что ожидаемое событие все еще не
произошло. Подобное поведение характерно для всевозможных
датчиков и детекторов. Для таких приборов главный
контроллер не передает сообщение CANCEL.
Пример работы 2PC Посмотрим, как может использоваться метод 2PC на практике.
Для простоты возьмем небольшую координированную
последовательность команд, образующих сцену. Сначала
опишем процесс обмена сообщениями без ошибок, затем
рассмотрим несколько сбойных ситуаций и то, как они могут
быть обработаны.
В сцене будет задействован моторизированный поворотный
стол, на котором находится некая конструкция (предположим,
небольшая декорация). Изначально декорация повернута к
зрителю "спиной", так что задача стола — развернуть ее на 180
градусов, лицом к зрителю. Поворот стола происходит в
течение 30 секунд. В начале сцены декорация дополнительно
закрыта от зрителя иллюстрированным полотнищем, которое
прикреплено к механическому штанкету №12 и поднимается
перед поворотом стола. Система сценического подъема и
поворотный стол работают по MIDI и имеют независимые
консоли управления у операторов.
Перед началом сцены со стола должна выйти актриса. К
сожалению, она выходит так, что этого не видит ни один из
операторов (в реальной жизни это маловероятно, но здесь
необходимо, чтобы показать большинство функций 2PC).
Поэтому используется "электронный глаз", установленный так, что актриса во время своего ухода обязательно перекрывает его
луч. Перед тем как начнет работать механика сцены,
электронный глаз должен определить, что актриса вышла.
Естественно, ко всему этому добавляются свет и звук. Есть две
звуковые и три световые сцены. Первая звуковая сцена
начинается, когда актриса пересекает луч глаза, вторая —
когда стол повернется наполовину, то есть на 90 градусов.
Первая световая сцена начинается, когда полотнище
приоткрывает декорацию, вторая — когда стол начинает
поворачиваться, финальная сцена — когда декорация
полностью развернется к залу.
Весь процесс управляется главным контроллером —
компьютерной программой. Он разбит на несколько этапов так,
чтобы программа могла отслеживать ключевые события.
Например, поворот стола разбит на два этапа по 90 градусов
вместо одного, полного поворота на 180. В таблице на рис. 15
показан список сцен с коротким описанием. Все происходит в следующей последовательности:
1. Ожидать выполнения сцены EE6.
2. Запустить сцену S109.
3. Подождать 3 секунды (дать время актрисе уйти).
4. Запустить сцены F28 и L118.
5. Подождать завершения сцены F28.
6. Запустить сцены F28.1, ТТ34 и L118.1
7. Ожидать завершения сцены ТТ34.
8. Запустить сцены ТТ34.1 и S110
9. Ожидать завершения сцены ТТ34.1
10. Запустить сцену L119.
Названия сцен (типа "L119") приведены здесь для удобства, в
MIDIсообщениях они не передаются. Например, сообщение
для сцены TT34.1 будет содержать следующие параметры:
command_format=24, Q_number=34.1, а L119 —
command_format=01, Q_number=119.
Обмен сообщениями без ошибок
Последовательность сообщений 2PC в упрощенном виде при
безошибочном выполнении сцен данного примера приведена в
таблице на рис. 16. Примечания:
A. Контролер посылает сообщения STANDBY для сцен,
которые должны начаться до того, как стол повернется на 90
градусов. Эти сообщения посылаются заблаговременно, с
учетом возможного двухсекундного таймаута. B. Получена серия ответных сообщений STANDING_BY.
Сцена, к которой относится STANDING_BY, задается только
номером секвенции. Видно также, что сообщения
STANDING_BY получены не в том порядке, в каком
отправлены сообщения STANDBY. В данном случае система
сценического подъема послала два сообщения STANDING_BY
одно за другим.
C. Электронный глаз ответил на сообщение STANDBY
сообщением ABORT, так как актриса еще не пересекла луч.
D. Электронный глаз ответил на сообщение STANDBY
сообщением STANDING_BY — актриса, наконец, пересекла
луч. Поскольку больше нам электронный глаз не нужен, мы не
будем посылать ему сообщение GO_2PC. Однако это
равносильно отмене сцены, и в соответствии со спецификацией
2PC мы должны были бы послать для сцены EE6 сообщение
CANCEL. Но для простых устройствдетекторов вроде
электронного глаза это необязательно, так как для них команда
GO_2PC все равно никогда не посылается.
E. Обратите внимание на столбец секунд. Между приемом
сообщения STANDING_BY от электронного глаза в момент
времени 06.010 и отправкой сообщения GO_2PC для света и
системы подъема прошла задержка примерно в три секунды (время, необходимое для ухода актрисы).
F. Сообщение GO_2PC для сцены 28.1 отправлено перед
получением сообщения COMPLETE для сцены 28. Контроллер
системы подъема понимает это так, что штанкет №12 должен
продолжать подъем и после завершения сцены 28.
G. По получении сообщения COMPLETE для сцены 28 можно
приступать к выполнению сцен 34 поворотного стола и света
118.1. В это время происходит также обмен сообщениями
STANDBY STANDING_BY для оставшихся сцен.
H. Штанкет №12 поднят до колосников.
I. Сообщение GO_2PC для сцены 34.1 поворотного стола
отправлено перед получением сообщения COMPLETE для
сцены 34. Так же, как и система подъема, контроллер стола
интерпретирует это как сигнал не прекращать движения после
отправки сообщения COMPLETE для сцены 34.
J. После завершения сцены 34 включается звуковая сцена 110.
K. После завершения сцены 34.1 включается световая сцена
119.
Ошибки, обнаруженные на ранней стадии Теперь предположим, что во время выполнения нашей сцены
произошли коекакие ошибки. Сначала рассмотрим ошибку,
которая приводит к прекращению всей сцены. Предположим,
контроллер системы подъема обнаружил неполадку одного из
лебедочных моторов, связанных с двенадцатым штанкетом.
Тогда система подъема вместо STANDING_BY вернет
сообщение ABORT. После чего главный контроллер
(компьютерная программа) ответит сообщением CANCEL для
всех сцен, которым было отправлено сообщение STANDBY.
Последовательность сообщений может выглядеть так, как
показано на рис. 17.
Примечания: A. Первая сцена системы подъема возвращает сообщение
ABORT с кодом состояния "сбой в моторе". Этот код
преобразуется в текстовое сообщение, которое выводится
оператору системы.
B. Всем контролируемым устройствам посылается сообщение
CANCEL для тех сцен, которые еще не завершились. Это в
соответствии с требованиями 2PC по восстановлению после
сбоя (см. ранее). Так как отдельные приборы все еще
обрабатывают сообщения STANDBY, сообщения
STANDING_BY и CANCEL перемешиваются во времени друг с
другом.
C. К главному контролеру начинают приходить сообщения
CANCELLED. Как и в случае с сообщениями STANDING_BY,
они приходят не в том порядке, в каком были отправлены
сообщения CANCEL. Статускод сообщений CANCELLED —
"terminated", так как ни одна из отмененных сцен не начала
выполняться.
D. Главному контроллеру не остается ничего другого, как
отменить сцену F28.1 (сообщение CANCEL в момент времени
0.018 с). Так как контроллер системы подъема уже забыл, что
сцена F28.1 была в состоянии "наготове", он отправляет
главному контроллеру сообщение CANCELLED со статус
кодом "не в режиме ожидания". Как видно из этого гипотетического примера, протокол 2PC
успешно выявил неполадку с лебедочным мотором. Начало
поворота площадки было автоматически остановлено.
Декорация на площадке не повернулась и не порвала
полотнище, которое осталось неподвижно висеть. Кроме того,
стейджменеджер за главным контроллером был
проинформирован о неполадке сообщением на экране
компьютера.
Ошибки, произошедшие во время выполнения сцены
Они обрабатываются почти так же, как и вышеуказанная
ошибка. Все ожидающие или выполняющиеся сцены
завершаются сообщением CANCEL от главного контроллера.
Отличие здесь в том, что число возможных вариантов
выключения безобразия на сцене значительно увеличивается. И
выбор правильного решения не всегда очевиден.
Спецификация рекомендует разработчикам тщательно
рассмотреть все варианты — от продолжения работы как ни в
чем не бывало до возврата в исходное состояние. Предположим,
что мотор поворотного стола из нашего примера сломался
после поворота стола на 45 градусов. Тогда, спустя гдето 18
секунд от начала сцены (см. рис. 16), главному контроллеру будет передано сообщение ABORT.
Поле чего все сцены получат сообщения CANCEL. Две из них,
находящиеся в состоянии "наготове" (S110 и L119),
обработают отмену "попростому", забыв, что им было послано
сообщение "приготовиться". Однако обработка сообщения
CANCEL в сцене F28, которая к этому моменту еще не
завершилась, более проблематична. Так как полотнище
продолжает подъем, то вероятно, лучше всего поднять его до
конца, дав сцене F28 полностью завершиться, с возвращением
статускода "completing" в сообщении CANCELLED и
последующим сообщением COMPLETE. Но если бы по
сценарию полотнище должно было не подниматься, а
опускаться, показывая зрителю нанесенную на него картину,
сцену F28 следовало бы, наверное, завершить немедленно.
Сравнительная характеристика 2PC и MSC
Подытожим сказанное выше сравнительной характеристикой
обоих наборов команд.
Обычные команды MSC посылаются в любой момент времени и
выполняются немедленно. Команды 2PC планируются, образуя
нечто вроде сценария, в котором последовательность сцен
должна выполняться совершенно определенным образом и никак иначе. Обычные сообщения MSC хорошо подходят для
мероприятий типа Live Show (например, для рокконцертов, где
нет жесткого планирования) и для медиаэлементов, которые не
представляют угрозы безопасности, таких как свет, звук и
видео. Команды 2PC больше подходят для
запрограммированных шоу и для медиаэлементов, которые
влияют на безопасность, например, машинерия и пиротехника.
В наборе команд MSC есть несколько сообщений, которые
приводят к различным электрическим или механическим
процессам в контролируемом устройстве, например, команды
GO, SET, FIRE, STOP и RESUME. Набор команд 2PC содержит
лишь одно сообщение, приводящее к действию — GO_2PC. К
какому результату приведет данное сообщение, зависит от
списка сцен, сохраненного в контролируемом устройстве, и от
того, как этот сценарий будет интерпретирован.
Главное преимущество MSC перед 2PC — быстрый отклик на
запрошенное действие и простая конфигурация системы
("отрытая петля"). Быстрый отклик происходит по двум
причинам. Вопервых, MSC требует одного сообщения для
одного действия. 2PC требует, по крайней мере, трех. Во
вторых, 2PC включает задержку (таймаут)
продолжительностью до двух секунд между запросом на
действие и началом выполнения этого действия. Метод 2PC имеет два преимущества перед MSC. Вопервых,
2PC может координировать действия множества
контролируемых устройств, с четко определенными
последствиями при сбое одного из устройств. Вовторых, в 2PC
встроена система обнаружения ошибок и восстановления после
сбоя.
Отличия между сообщениями 2PC и рядовыми сообщениями
MSC настолько принципиальны, что каждый конкретный
прибор, как правило, поддерживает только один набор команд
— либо 2PC, либо MSC, но не оба сразу.

intro:
Двухэтапное подтверждение (2PC, Two Phase Commit) — это особый метод взаимодействия устройств, при котором все команды подтверждаются и до выполнения, и по завершении. Технически — это набор команд, расширяющих базовую версию протокола MIDI Show Control. Этот набор появился в 1996 году и описан в документе RP-014, выпущенном организацией MMA. Вместе с исходной спецификацией MSC (документ RP-002) он образует новую версию протокола (MIDI Show Control 1.1).

При разработке метода 2PC стояла непростая задача — обеспечить связь нескольких устройств закрытой архитектуры друг с другом, при которой все они работают согласованно либо не работают совсем, независимо от наличия ошибок в коммутационных каналах. Задача была решена с использованием двух фаз (этапов) в коммуникации. На первом этапе все стороны соглашаются о том, что должно быть сделано. На втором этапе стороны реализуют это соглашение и сообщают о результатах.

Метод двухэтапного подтверждения напоминает метод сценической координации, применяемый при взаимодействии стейдж-менеджера и оператора устройства. Первая фаза — ожидания (STANDBY), соответствует команде "приготовиться". Вторая фаза — "выполнить" или "пошел" (GO).

Метод 2PС предлагается использовать для тщательно спланированных шоу и тогда, когда в целях безопасности требуются дополнительные проверки и избыточность в механизмах управления (например, при работе с машинерией или пиротехникой). При этом обеспечиваются проверка данных и обнаружение ошибок в коммутационных каналах.

музыка

group: Дисциплины

доп. образование взрослых

group: Другое