ZX Forum #04
19 ноября 1997

Мир звуков Спектрума - глава 6.1: описание регистров музыкального сопроцессора AY- 3-8910 (AY-3-8912).

<b>Мир звуков Спектрума</b> - глава 6.1: описание регистров музыкального сопроцессора AY-
3-8910 (AY-3-8912).

              6.1. Регистры

    R0 - младший байт частоты канала A
    R1 - старший байт частоты канала A
    R2 - младший байт частоты канала B
    R3 - старший байт частоты канала B
    R4 - младший байт частоты канала C
    R5 - старший байт частоты канала C

   Требуемая частота любого  канала  полу-
чается путем деления тактовой частоты соп-
роцессора на 16 с последующим делением ре-
зультата на 12-ти разрядное  значение, по-
лучаемое слиянием регистра младшего  байта
частоты и битов D0...D3 регистра  старшего
байта частоты. Таким образом, всего  можно
задать 4095 различных частот (от 27 Гц  до
110 кГц). Естественно, самых высоких Вы не
услышите.  Обратите внимание, что  разница
между двумя соседними значениями в  облас-
ти низких частот составляет  доли герца, а
в области высоких  частот  достигает  нес-
кольких килогерц.
   Младший и старший байты, а также часто-
ту можно рассчитать по следующим формулам:

       Hi=INT(INT(110830/Fq+.5)/256)
       Lo=INT(110830/Fq+.5)-Hi*256
       Fq=110830/(Lo+256*Hi)

где Hi - старший байт, Lo - младший  байт,
а Fq - частота в  Гц.  Обратите  внимание,
что в большинстве случаев заданную  часто-
ту невозможно точно передать  музыкальному
сопроцессору. В таблице 9 приведены значе-
ния регистров тона для всех возможных нот.

    R6 - задает частоту шума

   Требуемая частота шума  получается  пу-
тем деления тактовой частоты на 256 с пос-
ледующим делением результата на 5-ти  раз-
рядное значение, расположенное в пяти мла-
дших разрядах (D0...D4) регистра R6. Всего 
можно задать 31 различную частоту  (от 223
Гц до 7 кГц). Значение регистра R6 и  час-
тоту шума можно  рассчитать  по  следующим
формулам:

       R=INT(6927.3437/Fq+.5)
       Fq=6927.3437/R

где R - значение R6, а Fq - частота в Гц.
   Все сказанное про генераторы тона также
справедливо и для генератора шума.

    R7 - управление микшером и вводом/
         выводом

   Отдельные биты этого регистра использу-
ются в различных целях:

     D0 - тон канала A
     D1 - тон канала B
     D2 - тон канала C
     D3 - шум канала A
     D4 - шум канала B
     D5 - шум канала C
     D6 - порт A: 0 - ввод/1 - вывод
     D7 - порт B: 0 - ввод/1 - вывод
          (только AY-3-8910)

   Ноль в битах D0...D5 указывает  на  то,
что функция разрешена. Таким образом, каж-
дый канал можно настраивать на три различ-
ных состояния: тон, шум и тон + шум. Порты
ввода/вывода, содержащиеся  в  музыкальном
сопроцессоре, в ZX-Spectrum не используют-
ся, однако к ним можно  подключить  допол-
нительные  джойстики, принтер, MIDI-интер-
фейс или что-нибудь подобное. Порт B суще-
ствует только в AY-3-8910.

    R8  - управление амплитудой канала A
    R9  - управление амплитудой канала B
    R10 - управление амплитудой канала C

   Биты D0...D3 этих регистров  устанавли-
вают громкость для каждого из каналов  (от
0 до 15). Если в одном (или нескольких) из
них установлен бит D4, то значение в млад-
ших битах игнорируется, а амплитудой  дан-
ного канала управляет генератор  огибающей
(см. дальше).

    R11 - младший байт периода огибающей
    R12 - старший байт периода огибающей

   Требуемый период  огибающей  получается
путем деления тактовой частоты сопроцессо-
ра на 256 с последующим делением результа-

та на  16-ти разрядное  значение, получае-
мое слиянием регистров R11  и  R12.  Всего
можно  задать  65535  различных  периодов.
Значения регистров R11 и R12, а также час-
тоту и период огибающей  можно  рассчитать
по следующим формулам:

     Hi=INT(INT(6927.3437/Fq+.5)/256)
     Lo=INT(6927.3437/Fq+.5)-Hi*256
     Fq=6927.3437/(Lo+256*Hi)=1/Pd
     Pd=(Lo+256*Hi)/6927.3437=1/Fq

где Lo и Hi -  значения  регистров  R11  и
R12, соответственно, Fq - частота  огибаю-
щей в Гц, а Pd - период огибающей в секун-
дах.

    R13 - управление формой огибающей

   Требуемая форма огибающей задается  би-
тами D0...D3 регистра R13 следующим  обра-
зом:

     D0 - затухание
     D1 - чередование
     D2 - нарастание
     D3 - продолжение

   В таблице 10  приведены  все  возможные
комбинации этих битов.

    R14 - порт ввода/вывода A
    R15 - порт ввода/вывода B

   Как уже  говорилось выше, порты  ввода/
вывода большого значения не имеют и на ге-
нерируемый звук не влияют.



Другие статьи номера:

Help - Описание оболочки электронного издания "ZX-FORUM 4".

Секреты успешного дизайна - глава для книги "Дизайн Ваших программ"

Экранные эффекты - Бегущая строка из R-Type.

Экранные эффекты - гашения экрана из Zynaps.

Экранные эффекты - "сворачивание" экрана из Comando Tracer.

Экранные эффекты - плавное "затухание" экрана из Сommando Tracer.

Экранные эффекты - модификация символьного набора для получения оригинального стилизованного шрифта из игры Rockstar.

Экранные эффекты - "выбегающая строка" из игры Rockstar.

Экранные эффекты - "наливающийся" экран из игры Rockstar.

Экранные эффекты - сложный многоступенчатый эффект из игры Bubbler.

Новые 40 лучших процедур - скроллинг экрана, слияние двух картинок, инвертирование экрана, поворот символов, замена атрибутов, заливка замкнутого контура, вычисление адресов в экране, копирование части экрана и т.д.

Технология спрайтов - часть 1: введение.

Технология спрайтов - часть 2: охота на спрайты (поиск и выдирание).

Технология спрайтов - часть 3: форматы спрайтов.

Технология спрайтов - часть 4: форматы спрайтов с маской.

Технология спрайтов - часть 5: структура спрайтовых блоков (как уживаются в памяти спрайт и маска, какие данные помогают нам оперативно находить адрес спрайта в памяти и многое другое.)

Технология спрайтов - часть 6: подготовка данных к печати.

Технология спрайтов - часть 8: печать спрайтов (координаты заданы в знакоместах).

Технология спрайтов - часть 9: печать спрайтов (координаты заданы в пикселях).

Технология спрайтов - часть 10: обзор программ для работы со спрайтами и графикой.

Мир звуков Спектрума - глава 1: Физика звука.

Мир звуков Спектрума - глава 2: Оператор BEEP, Создание эффектов на BEEPе, Создание музыки на BEEPе.

Мир звуков Спектрума - глава 3: Как получается звук (устройство BEEP'ра и способы звукоизвлечения).

Мир звуков Спектрума - глава 4: Программирование звука на ассемблере.

Мир звуков Спектрума - глава 4.1: Программирование звуковых эффектов - Тон, Шум, Комплексы эффектов.

Мир звуков Спектрума - глава 4.2: Программирование звуковых эффектов - Управление громкостью.

Мир звуков Спектрума - глава 4.3: Программирование звуковых эффектов - Управление тембром.

Мир звуков Спектрума - глава 4.4: Программирование звуковых эффектов - Программирование музыки.

Мир звуков Спектрума - глава 4.5: Программирование звуковых эффектов - Многоголосые мелодии (полифония).

Мир звуков Спектрума - глава 4.6: Обработка внешних сигналов - оцифровка.

Мир звуков Спектрума - глава 4.7: Обработка внешних сигналов - Реверберация.

Мир звуков Спектрума - глава 4.8: Синтезирование речи.

Мир звуков Спектрума - глава 4.9: воспроизведение звука на прерываниях.

Мир звуков Спектрума - глава 5: Оператор PLAY для музыкального сопроцессора AY- 3-8910 (AY-3-8912).

Мир звуков Спектрума - глава 5.1: Создание эффектов оператором PLAY.

Мир звуков Спектрума - глава 5.2: Создание музыки на PLAYе.

Мир звуков Спектрума - глава 6.1: описание регистров музыкального сопроцессора AY- 3-8910 (AY-3-8912).

Мир звуков Спектрума - глава 6.2: Программирование эффектов и музыки под музыкальный сопроцессор AY- 3-8910 (AY-3-8912).

Мир звуков Спектрума - глава 7: Обзор программного обеспечения ZX-Spectrum для создания звуков и музыки.

Мир звуков Спектрума - глава 7.1: Редактор звуковых эффектов SUPER SOUND.

Мир звуков Спектрума - глава 7.2: Музыкальный редактор Wham the Music Box.

Мир звуков Спектрума - приложения 1, 2: листинги звуковых эффектов SUPER SOUND'а, советы по использованию ассемблера.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
От автора - Практика отнимает много времени...
Открытые письма Nemo №8.3
Программирование - курс изучения ассемблера от Wlodek Black, продолжение.

В этот день...   23 октября