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

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

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

            4.7. Реверберация

   Говоря человеческим  языком, ревербера-
ция - это эхо.
   Программа, реализующая этот  интересный
эффект, по существу  является  воссоедине-
нием обоих фрагментов первого типа из пре-
дыдущей главы. То есть, эта программа  од-
новременно воспроизводит  звук  и  записы-
вает на его место новый.
   Вот она:
1415.
 10            DI                 ; запрет прерываний
 20  LOOP1     LD      HL,25000   ; HL=адрес буфера
 30            LD      DE,2560    ; DE=задержка эха
 40  LOOP2     LD      B,8        ; B=счетчик битов
 50  LOOP3     XOR     A          ; A=цвет бордюра (0)
 60            RRC     (HL)       ; скроллинг данных через флаг
                                    CY
 70            JR      NC,NOOUT   ; если CY=0, то перейти на
                                    NOOUT
 80            OR      16         ; установка бита D4 регистра A
 90  NOOUT     OUT     (254),A    ; вывод A в порт 254
100            RES     7,(HL)     ; сброс бита D7 в памяти
110            XOR     A          ; A=0 (опрос всей клавиатуры)
120            IN      A,(254)    ; ввод значения из порта 254
130            BIT     6,A        ; проверить бит магнитофона
140            JR      Z,NOINP    ; если 0, то перейти на NOINP
150            SET     7,(HL)     ; установить бит D7 в памяти
160  NOINP     CPL                ; клавиша
170            AND     31         ;   нажата ?
180            JR      NZ,EXIT    ; если да, то перейти на EXIT
190            LD      C,2        ; C=задержка
200  PAUSE     DEC     C          ; C=C-1
210            JR      NZ,PAUSE   ; если C<>0, то цикл
220            DJNZ    LOOP3      ; продолжить цикл обработки
                                    байта
230            INC     HL         ; HL=HL+1
240            DEC     DE         ; DE=DE-1
250            LD      A,D        ; DE=
260            OR      E          ;    0 ?
270            JR      NZ,LOOP2   ; если нет, то перейти на
                                    LOOP2
280            JR      LOOP1      ; перейти на LOOP1
290  EXIT      EI                 ; разрешение прерываний
300            RET                ; возврат
2
   Эта подпрограмма будет работать до  тех
пор, пока Вы не нажмете какую-либо  клави-
шу. А так как она  очень  чувствительна  к
подобного рода действиям, вызывать ее луч-
ше с помощью маленькой программки на  бей-
сике:

   10 FOR I=1 TO 10: NEXT I
   20 RANDOMIZE USR A

где A - адрес подпрограммы ревербератора.
   Если  Вы  хотите, чтобы  независимо  от
местоположения подпрограммы буфер находил-
ся  сразу  за  ней, то  введите  следующие
строки:
1415.
 20            LD      HL,BUFFER
310  BUFFER    NOP                ; здесь располагается буфер
2
   В строке 190  содержится  значение  за-
держки между выборками сигнала. Меняя его,
Вы можете настраивать соотношение  "качес-
тво звука - объем памяти".
   Изменяя значение в строке 30, можно ме-
нять задержку эха.
   И последнее:  если  Вы  будете  вводить
звук  с выхода какого-либо  устройства, то
эхо будет звучать один раз. Если же с  по-
мощью микрофона, то Вы  можете  установить
количество повторений, регулируя громкость
воспроизводимого звука  и  уровень  записи
магнитофона. Если хотя  бы  один  из  этих
параметров будет ниже необходимого уровня,
то эхо прозвучит один раз.  Чем  выше  эти
параметры, тем большее число повторений Вы
услышите (их громкость будет, как  в  жиз-
ни, от раза к  разу  уменьшаться).  Однако
не  следует  увлекаться.  Если  Вы  переу-
сердствуете, то программа самовозбудится и
все, что  она будет  воспроизводить, впос-
ледствии будет звучать на фоне ужасно про-
тивного шума. Если это произошло, выключи-
те громкость или микрофон на несколько се-
кунд, и все вернется на свои места.



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

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'а, советы по использованию ассемблера.


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

Похожие статьи:
Разное - можно ли заглянуть в будущее?
INTRO - Создание К. Синклером компьютера ZX-2000.
Система - "Быстрая графика" для начинающих программистов.
COMICS - Стихотворения : Про птичек , Про пингвина , Про ужа.
Сплошные приколы - Часы командирские. Сборник высказываний советских офицеров (продолжение). Анекдот про чукчу и геолога.

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