Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZX-Review-1992-01-12.pdf
Скачиваний:
241
Добавлен:
28.03.2015
Размер:
2.43 Mб
Скачать

Звук и музыка.

Музыку в программу я добавляю в самый последний момент. Это происходит потому, что музыкальные и звуковые процедуры работают в режиме прерываний 2 го рода IM2.

Примечание ИНФОРКОМа: В последнем издании книги, посвященной машинным кодам, мы широко рассмотрели применение прерываний 2 го рода. Это издание объединяет выпущенные ранее в 1990 году три тома и примерно на 20% дополнено. Общий объем 271 стр. Заказы принимаются на приобретение отдельных экземпляров и на лицензированный тираж в регионе принимаются.

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

"Спектрум" имеет очень ограниченные звуковые возможности. У него есть всего лишь один звуковой канал, который может находиться в двух состояних "вкл"/"выкл". Пульсирующий сигнал определенной частоты вызывает появление звукового тона соответствующей частоты (см. рис. 5).

Время

Рис. 5 Таким образом, создание сложных звуков сводится к управлению частотой.

Тот принцип, который мы здесь рассмотрим, может быть использован и владельцами 128 килобайтных машин при программировании встроенного звукового процессора. Я применял этот прием и для "Коммодора 64" при озвучивании программы "URIDIUM". Аналогичную технику используют и синтезаторы серии "Ямаха DX".

Предлагаемая Вашему вниманию программа выполняет линейную модуляцию частоты. Таким образом, частота изменяется вверх или вниз в соответствии с данными, взятыми из специальной таблицы. На рис. 6 и 7 показаны графики частот.

ƒ

τ

Рис. 6

ƒ

 

ƒ

 

 

 

 

 

 

 

 

τ

τ

Рис.7

Одноступенчатая модуляция.

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

Пилообразная модуляция

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

ƒ

ƒ

 

τ

τ

 

Рис. 8

Треугольная модуляция

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]