ZX-Spectrum & TR-DOS для пользователей и программистов 1994 г.

Музыкальный редактор WHAM - прослушивание мелодии. Компиляция.


HEAR TUNE

Прослушивание мелодии

При прослушивании мелодии в режиме EDIT MODE, она звучит в
несколько искаженном виде, так как процессор, кроме воспроизведения
музыки, занят еще и выводом на экран нот, обслуживанием клавиатуры и
т. д. Чтобы получить представление об истинном звучании мелодии, то есть
услышать, как она будет исполняться после компиляции (см. ниже), восполь-
зуйтесь функцией HEAR TUNE (клавиша 3 главного меню).

После прослушивания, нажав любую клавишу, Вы попадете в режим
EDIT MODE.

SET TEMPO

Изменение темпа

Если после прослушивания мелодии Вы захотите изменить темп ее
исполнения, воспользуйтесь режимом SET TEMPO (клавиша 5 главного ме-
ню).

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

Замедлить темп до LARGO (очень медленно) позволяет клавиша 5 —
закрашенная область в прямоугольнике будет уменьшаться.

_______WHAMPILER

Компиляция

Музыкальный фрагмент, сохраненный в виде редактируемого файла
в режиме SAVE TUNE, можно загрузить снова (LOAD TONE) и продолжить
работу с ним. Однако такой способ представления мелодии позволяет про-
слушивать ее, только находясь в редакторе.

Если же Вы хотите музыкально оформить программу, написанную на
Бейсике или ассемблере, необходимо записать мелодию в виде подпрограм-
мы, работающей независимо от редактора. Такая подпрограмма создается с
помощью специального режима компиляции WHAMPILER.

В результате компиляции на ленту или дискету записывается файл,
который мы назовем исполняемым. Он представляет собой программу в кодах,
которая запускается отдельно от Wham'a, но, в отличие от редактируемого
файла, не поддается дальнейшему изменению.

Перед компиляцией с помощью функции LOAD TWE загрузите редак-
тируемый файл, в котором записан нужный музыкальный фрагмент. Про-
верьте, в обоих ли каналах выставлены метки конца цикла.

В качестве примера предлагаем откомпилировать одну из 5 мелодий,
загружаемых из памяти (см. LOAD TUNE — MEMORY ), допустим, тему под
номером 1 — FREEDOM. Загрузите ее и, нажав клавишу 4, войдите в режим
компиляции. На запрос TUNENAME? введите имя, под которым Вы хотите
сохранить исполняемый файл, например, FREE.MUS (расширение MUS можно
использовать для указания на то, что файл исполняемый, а не редактируе-
мый). Далее программа попросит ввести адрес, с которого будет располагать-
ся и запускаться исполняемый файл:

ASSEMBLY ADDRESS?

Укажите десятичный адрес не менее 32768, например, 60000, после
чего компилятор выведет на экран следующую информацию:

TUNE NAME : FREE.MUS

ASSEMBLY ADDRESS : 60000

RETURN OPTION : KEYPRESS

WHITE NOISE : - NONE -

CHANNEL 1 LENGTH : 313 количество шагов в 1-м канале

CHANNEL 1 LOOP : START

CHANNEL 2 LENGTH : 313 количество шагов во 2-м канале

CHANNEL 2 LOOP : START

1. KEYPRESS

2. ALWAYS

3. TUNEEND

RETURN OPTION 1,2 OR 3

Цифрами 1, 2 и 3 обозначены условия компиляции. В зависимости
от выбранного условия получается определенная модификация исполняемо-
го файла:

KEYPRESS — проигрывание мелодии завершается при нажатии любой
клавиши;

ALWAYS — проигрывание мелодии осуществляется одновременно с
работой программы (подробно этот режим описан ниже);

TUNEEND — проигрывание завершается по окончании мелодии или
при нажатии любой клавиши.

Запуск компиляции произойдет сразу после выбора клавишами 1, 2 или
3 одного из перечисленных условий. Нажмите, к примеру, клавишу 1.

По окончании компиляции на экран будет выведена длина исполня-
емого файла в байтах и сообщение о нормальном завершении операции:

CODE LENGTH: 893

ROUTINE COMPILATION COMPLETED OK

Затем после надписи ADJUSTMENT POKES: появится информация, необ-
ходимая для настройки исполняемого файла уже в процессе использования
его в Вашей программе (напомним, что в нашем примере ASSEMBLY ADDRESS

=60000):

REPLAY SPEED 60035, (230 TO 255)

— этой надписью программа сообщает, что, записывая в ячейку памяти с
адресом 60035 (ASSEMBLY ADDRESS + 35) число от 230 до 255, можно изменять
темп проигрывания мелодии;

BORDER COLOR: 60026, (0 ТО 7)

— это сообщение говорит о том, что, записывая в ячейку с адресом 60026
(ASSEMBLY ADDRESS + 26) числа от 0 до 7, Вы можете на время исполнения
мелодии устанавливать требуемый цвет бордюра (по умолчанию — фиоле-
товый);

ТО RUN - RANDOMIZE USR 60000

— эта надпись напоминает, что для запуска исполняемого файла из Бейсика
необходимо использовать команду RANDOMIZE USR 60000 (ASSEMBLY ADDRESS).

После вывода этих сообщений производится запись исполняемого
файла. В случае магнитофонной версии Wham'a на экране появится стан-
дартное сообщение START ТАРЕ, THEN PRESS ANY KEY, после чего нужно
включить магнитофон на запись и нажать любую клавишу.

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

Теперь можно очистить память компьютера от Whamр а и загрузить в
него полученную после компиляции программу в кодах. Если исполняемый
файл сохранен на ленте, то для его ввода и запуска напишите следующую
программу на Бейсике:

10 LOAD "FREE.MUS'XODE

20 POKE 60026,7: REM цвет бордюра — белый

30 RANDOMIZE USR 60000

Запустите ее, и Вы услышите щемящие звуки «Гимна Свободе»,
которые будут звучать, пока Вы не нажмете какую-нибудь клавишу. Поэкс-
периментируйте с темпом исполнения мелодии, занося с помощью оператора
РОКЕ различные числа в пределах от 230 до 255 в ячейку 60035,

Для дисковой версии первую строку программы нужно заменить на

10 RANDOMIZE USR 15619: REM : LOAD "FREE.MUS"CODE

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

TUNE NAME
ASSEMBLY ADDRESS
RETURN OPTION
WHITE NOISE
CHANNEL 1 LENGTH

KEYPRESS
- NONE -
NOT PRESENT

количество шагов в первом канале не определено
CHANNEL 1 LOOP : START
CHANNEL 2 LENGTH : NOT PRESENT
количество шагов во втором канале не определено

CHANNEL 2 LOOP : START
Tune compilation ahandoded Компиляция не проведена

No end markers defined. He установлена метка цикла.

Use the W key to place В режиме редактирования,

marker for the end используя клавишу W, установили»

current channel. метку в каждом канале.

Если машина обругала Вас, отнеситесь к этому спокойно. Нажав кла-
вишу Enter, выйдите из режима компиляции, устраните замеченные недостат-
ки и, будьте уверены, что со второй, в крайнем случае с третьей попытки
мелодия будет откомпилирована, и Вы сможете украсить ею свою программу.

Не исключено, что Вы захотите, чтобы Ваша программа работала
параллельно с проигрыванием мелодии. Подобного эффекта можно добить-
ся, если при компиляции использовать режим ALWAYS. В исполняемом
файле, скомпилированном в этом режиме, имеются две точки входа. Первая
служит для инициализации мелодии и проигрывания первой ноты и распо-
ложена по тому же адресу, что и в других режимах (ASSEMBLY ADDRESS), а
вторая — для проигрывания второй и всех последующих нот (расположена
по адресу ASSEMBLY ADDRESS +12).

Таким образом, если в приведенном выше примере компиляции
использовать режим ALWAYS, то для инициализации мелодии и проигрыва-
ния первой ноты нужно выполнить оператор

RANDOMIZE USR 60000

а для проигрывания каждой после
RANDOMIZE USR 60012

Например, приведенная hi
одновременно с выводом текста н<

5 LOAD "FREE.MUS"CODE
10 LET a$="Demonsf rating modi
20 RANDOMIZE USR 60000
30 CLS : PRINT AT 10,0
40 FOR n~1 TO LEN a$
50 PRINT a$(n);
60 RANDOMIZE USR 60012
70 NEXT n
80 GO TO 30

Аналогичным образом Вы 2
ных кодах.

дующей ноты — оператор

1же программа будет исполнять мелодию
а экран:

a ALWAYS"

ножете оформлять и программы в машин-




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
ДEЛАЙ SАM - Мы будeм трeпaццa прo звук и про сaмoстoятeльную сбoрку куллeрa.
Смех - маленький кусочек смеха , которого нам так не хватает в нашей нелегкой жизни.
Программирование - процедура на Бейсике "КАЛЕНДАРЬ".
Проба пера - Фэнтази и фантастика.
Программы - Real commander.

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