Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Звуковые эффекты и музыка

Листинг 7.11. Трехмерный астероид (AFIELD.С). | ВЫСОКОСКОРОСТНЫЕ ТРЕХМЕРНЫЕ СПРАЙТЫ | Формула 8.1. Аксонометрическая проекция спрайта. | Формула 8.2. Расчет масштабирования. | Листинг 8.1. Новая функция масштабирования спрайтов (без отсечения). | Листинг 8.2. Демонстрационная программа новой функции масштабирования (VYREN.C). | Алгоритм 8.1. Масштабирование спрайта. | Формула 8.3. Вычисление вектора скорости. | Формула 8.4. Вычисление угла между наблюдателем и объектом. | Листинг 8.3. Последний Шаттл (FINVYREN.C). |


Читайте также:
  1. II.3.2. Эффекты взаимного влияния элементов
  2. III. МУЗЫКА
  3. IX. Звуковые сигналы на железнодорожном транспорте
  4. IX. МУЗЫКА ДЛЯ КИНО, ТЕАТРА, ТЕЛЕ- И РАДИО ПОСТАНОВОК
  5. Авторы и музыканты
  6. Бедный музыкант
  7. Блок I. Фоновое музыкальное воздействие

Игры без звука подобны бассейну без воды. Это просто нонсенс! Звук тесно связан с действиями, происходящими в игре. Звуковые эффекты и музыка - это основа магии игр. Они могут изобразить чувство страха, волнения и неприязни. Я считаю, что хороший звук намного важнее хорошей графики. Потому что даже прекрасная, замечательно работающая в реальном времени, трехмерная графика с трассированным пространством без звука превращаетсяпросто в двигающиеся картинки. В этой главе мы узнаем, что же такое Звук и как его реализовать на персональном компьютере. Мы ограничимся звуковой картой Sound Blaster фирмы Creative Labs и совместимыми с ней устройствами. В этой главе мы рассмотрим:

§ Основы звука;

§ Устройство и архитектуру звуковой карты Sound Blaster;

§ Создание и воспроизведение оцифрованных звуковых эффектов;

§ Частотный синтез звука;

§ MIDI-музыку;

§ Специальные методы работы со звуком.

§ Основы звука

Со звуком мы сталкиваемся каждый день. Это одно из понятий, определить которое не очень тяжело. Звук - это человеческое восприятие волн давления, распространяющихся в воздушной среде, точно так же, как свет - восприятие электромагнитных волн, распространяющихся в пространстве. Вокруг звучащего объекта воздух расширяется и сжимается. Это расширение и сжатие порождает волны, которые, в конце концов, и достигают вашего уха, создавая переменное давление на барабанные перепонки. На рисунке 9.1 изображен источник звука и распространение звуковых волн от него.

Распространение звуковых волн из одной точки в другую по воздуху является механическим, так как оно происходит за счет передачи молекулами воздуха своей кинетической энергии друг другу. Когда волна распространяется, она теряет свою энергию из-за трения (мы воспринимаем это как снижение уровня громкости) до тех пор, пока, наконец, ее энергия окончательно не поглотится воздухом.

Звуковые волны имеют некоторые интересные свойства. Например, известный эффект Доплера. Все мы знаем разницу между звуком приближающегося и удаляющегося поезда. Данный эффект обусловлен тем, что скорость распространения звуковых волн зависит от скорости самого поезда. Не забывайте, что в отличие от световых волн, звук распространяется медленно. В среднем их скорость составляет 600 миль в час, так что поезд, двигающийся со скоростью 60 миль в час, может в достаточной степени повлиять на распространение звука. Если вы вспомните, звук приближающегося поезда выше и его тон (или частота колебаний) постепенно возрастает. После того как поезд прошел, тон (частота) снижается. Все это происходит из-за того, что передвигающийся объект порождает фронт звуковой волны в результате локального повышения давления. Таким образом, поезд одновременно и передвигается, и порождает звук, вследствие чего частота звука приближающегося и удаляющегося поезда различаются.

Теперь поговорим о специфических терминах, которые мы будем использовать при рассмотрении различных звуковых эффектов. Для наглядного представления звуков обычно используют двухмерные графики (см. рис. 9.2).

По оси Х обычно откладывают время, а по оси Y — амплитуду звука. Чистая нота ДО первой октавы (440Гц) будет выглядеть так, как это показано на рисунке 9.3.

Как вы можете видеть, волна порождает сама себя снова и снова и внешне выглядит как функция от времени. Это одно из свойств чистого тона; он может быть описан функцией синуса. Математически это записывается так:

F(t)=sin(2*Pi*F*t)

где F — генерируемая нами частота.

Как легко увидеть на рисунке 9.3, из формы волны мы можем получить несколько параметров. Один из них - амплитуда (или, проще говоря, уровень громкости). Ее обычно измеряют в децибелах. Децибелы изменяются по логарифмической шкале: звук в 5дБ в 10 раз сильнее звука в 4дБ. (По такой же шкале измеряют силу землетрясения. При 5 баллах лишь немного подрагивает, а при 7 уже рушатся горы, ведь такое землетрясение в 100 раз сильнее!)

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

Частота одной волны - 500Гц, а другой - 1000Гц. Тысячегерцовая волна имеет в два раза больше полных циклов за единицу времени, чем пятисотгерцовая.


Теперь мы должны поговорить о частотной характеристике восприятия (frequency response). Обычно человек воспринимает звук, как показано на рисунке 9.5.

Мы слышим в диапазоне 20Гц-15КГц, и восприимчивость обычно сильно падает к 20КГц (большинство людей вообще не воспринимает звук за этим порогом). Следовательно, мы должны создавать наше звуковое сопровождение игры именно в таких пределах.

Достаточно о том, что такое звук. Попробуем его сделать!

Устройство и архитектура звуковой карты Sound Blaster

Sound Blaster — сложная звуковая карта с большими возможностями. Управлять ею не так уж и просто, и мы наверняка не сможем рассмотреть все ее впечатляющие способности в одном-единственном разделе. Поэтому мы приведем здесь только основные характеристики современных моделей Sound Blaster и кратко остановимся на их функциональных различиях.

На данный момент существует четыре различных модификации Sound Blaster. Их характеристики приведены в таблице 9.1.

Sound Blaster может создавать два типа звуков:

§ Синтезированный звук;

§ Оцифрованный звук.

Синтезированный звук создается искусственно с помощью электронной аналоговой или цифровой аппаратуры. В Sound Blaster применяется современный подход к синтезу звука — метод цифровой частотной модуляции (FM synthesis). В этом методе для создания звука используется та самая частотная модуляция, которую используют и музыкальные радиостанции, работающие в УКВ-диапазоне. Мы поговорим об этом подробнее позже в этой главе.

Sound Blaster также имеет процессор цифровых сигналов (digital signal processor, DSP), который помогает в синтезе и воспроизведении MIDI-музыки. По-существу, MIDI (musical instrument digital interface, цифровой интерфейс электромузыкальных инструментов) — это стандарт для оцифровки голоса и инструментальной музыки таким образом, чтобы они могли быть воспроизведены с помощью компьютера или такого синтезатора, как Yamaha.

Кроме синтеза звука Sound Blaster позволяет оцифровывать; а затем воспроизводить такие звуковые фрагменты, как речь или различные эффекты. Это очень полезное свойство, так как некоторые звуки очень сложно или даже невозможно создать только с помощью частотного синтезатора и DSP. В наших играх мы как раз и будем использовать оцифрованные звуковые эффекты вместе с MIDI-музыкой.

В следующем разделе мы рассмотрим как Sound Blaster работает с оцифрованным звуком.

Оцифрованный звук

Итак, начнем! Моя первая попытка оцифровать звук для проигрывания на Sound Blaster была подобна открытию нового континента. Получение именно такого звука, какой вы хотели услышать - это большая победа! Гармония звука и сюжета улучшает игру на порядок. Но для того, чтобы этого достичь, надо вначале разобраться, что же такое оцифрованный звук.

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

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

§ Преобразовать информацию в электронный сигнал;

§ С постоянной частотой дискретизировать этот сигнал.

Во-первых, мы должны конвертировать звук в форму, которую сможем обрабатывать (то есть в цифровую). Это делается с помощью аналогово-цифрового преобразователя- Он преобразует аналоговый сигнал в цепочку цифровых импульсов, состоящих из восьми или шестнадцати битов. Фактически, это означает, что сигнал превращается в последовательность 8- или 16-битных чисел. При использовании восьми битов сигнал может быть представлен числами в - диапазоне от -127 до +128. А если мы используем 16 битов, то диапазон расширяется от -32767 до +32768, что, естественно, дает более высокое качество.

Затем мы должны дискретизировать сигнал с постоянной частотой. Например, представим, что мы дискретизируем разговор человека с частотой 8КГц, используя восемь битов, на протяжении 10 секунд. Это займет 80 кило6айт!!! Как вы;можете видеть, оцифрованный звук требует очень много памяти, вот почему такое большое значение имеют частотные синтезаторы.

Вы можете возразить: «Ну так давайте понизим частоту оцифровки». Это, конечно, можно сделать, но тогда в результате мы потеряем часть данных о звуке вследствие так называемого шума квантования. Пусть наш сигнал имеет частоту 10КГц и мы дискретизируем его с частотой 6КГц. В результате мы не сможем точно воспроизвести форму волны. Практически, а точнее, не столько практически, сколько в полном соответствии со строгим законом Шеннона, вы должны дискретизировать сигнал с частотой в два раза большей, чем его максимальная частота. Только тогда вы сможете затем точно воспроизвести оцифрованный сигнал. Это значит, что если вы хотите точно воспроизвести звук или человеческую речь с частотным диапазоном приблизительно до 20КГц, вы должны дискретизировать его с частотой в два раза большей, то есть 40КГц. Проигрыватели компакт-дисков как раз и работают с частотой 44,1 КГц. На такой скорости вы не потеряете ничего! Звуковые эффекты DOOM, на мой взгляд, оцифрованы где-то на частоте 11 КГц, что являет собой «золотую середину».

Мы определенно не можем записывать и воспроизводить звуки на такой скорости. Оцифровка, сравнимая по качеству с CD требует слишком много памяти. Для наших целей нам вполне достаточно 6КГц и восьми бит.

На рисунке 9.7 изображен процесс дискретизирования сигнала.

Воспроизведение оцифрованного звука

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

Из этих соображений я снабдил эту главу условно-бесплатной программой Blaster Master. Эта программа работает в среде MS-DOS и позволяет делать с оцифрованным звуком все что угодно. Она может записывать звук в файлы различных форматов и применять к звуку специальные эффекты (эхо, реверберацию, смену тональности и т. д.)

Примечание

Оцифрованный звук, как и любая другая информация, должен иметь определенный формат для хранения данных. На персональных компьютерах наиболее распространены форматы WAV и VOC. Оба из них, кроме собственно звуковых данных, имеют специальные заголовки. Формат WAV был предложен в Windows, а формат VOC является стандартом «де-факто».

Blaster Master способен преобразовывать данные из формата VOC в формат WAV и обратно. Демонстрационные игры, которые мы будем рассматривать в этой книге, используют исключительно формат VOC. Поэтому, прежде чем использовать свои звуковые эффекты с нашими примерами программ, вы должны записать их как VOC-файлы или преобразовать их в этот формат, иначе ничего не выйдет! Мы выбрали этот формат из-за того, что он проще для понимания. Кроме того, WAV-файлы могут быть записаны только с частотой 11,22 или 44КГц, а это приводит к большому расходу памяти.

С чего мы начнем? Неплохой вопрос. Начнем-ка мы с драйвера. Чтобы проигрывать звуки, нам понадобится драйвер CT-VOICE.DRV, поставляемый фирмой Creative Labs. Этот драйвер позволяет нам вызывать функции работы со звуковой картой, точно так же, как мы вызываем системные функции BIOS.

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

(Впервые я столкнулся с этой технологией около семи лет назад. И хотя я уже долгое время занимался программированием, не сразу сообразил, что мне надо самостоятельно загрузить драйвер в память, а затем передать ему управление.)

CT-VOICE.DRV имеет множество команд, и я не буду детально обсуждать каждую из них. Поговорим только о тех, которые потребуются нам для загрузки и воспроизведения оцифрованных звуков. В таблице 9.2 приведены необходи мые нам функции драйвера.

Таблица 9.2. Подмножество функций драйвера CT-VOICE.DRV.

Функция Описание
  Получить версию драйвера
  Установить базовый адрес ввода/вывода
  Установить прерывание DMA
  Инициализировать драйвер
  Включить/выключить динамик
  Установить адрес слова состояния
  Начать вывод звука
  Остановить вывод звука
  Закончить работу драйвера
  Приостановить вывод звука
  Продолжить вывод звука
  Прервать цикл вывода звука

Теперь поговорим о каждой из этих функций в деталях.


Дата добавления: 2015-07-12; просмотров: 179 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Создание студии| Функция 0: Получить версию драйвера

mybiblioteka.su - 2015-2024 год. (0.01 сек.)