Радио-86РК/Радио 10-88/Музыкальная система
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: А. АНДРЕЕВ |
Предлагаемая вниманию читателей программная музыкальная система (ПМС) позволяет чисто программными средствами (табл.1) реализовать на компьютере «Радио-86РК» исполнение трехголосых музыкальных произведений.
Синтезируемые системой звуки по характеру приближаются к звучанию электрооргана. Звуковой сигнал образуется на выходе разрешения прерывания (INTE) микропроцессора КР580ВМ80А и может быть подан на любое звукоусилительное устройство. Партитура музыкального произведения в ПМС записывается в виде программы на специальном языке, в котором символами обозначаются все основные параметры музыкальных звуков. ПМС позволяет просматривать и редактировать готовые партитуры с помощью встроенного строчного редактора, а также вводить с клавиатуры новые партитуры. Любая партитура, созданная средствами ПМС, может быть сохранена на магнитной ленте, а затем считана для дальнейшей работы.
Работа с системой начинается с ее запуска директивой G0 МОНИТОРа, в результате чего в верхней части экрана появятся сообщение о готовности системы к работе и два шестнадцатеричных числа, указывающих начальный и конечный адреса области ЗУ, используемой для хранения партитуры (в начале работы эти адреса будут совпадать, так как партитуры в памяти нет). Появление символа «>» означает, что система готова к приему вашей команды. При начальном запуске ПМС буферная область для партитуры очищается. Для того чтобы система смогла исполнить какой-либо музыкальный фрагмент, его необходимо сначала ввести.
Для демонстрации работы системы введем текст простой музыкальной программы:
0010 NI=45 0020 PA 0030 M1 V1 *G0123456$6543210
Затем подключим выход разрешения прерывания (D6, вывод 16.) к усилителю низкой частоты и дадим системе команду откомпилировать и исполнить введенный отрывок, набрав на клавиатуре R(ВК). Прозвучат сначала восходящая, а потом нисходящая гаммы. Рассмотрим более подробно перечень директив ПМС.
A (AUTO) — Позволяет включить или выключить режим автонумерации строк при вводе партитуры. После ввода директивы приглашающий символ изменится на «+», что означает переход системы в режим автонумерации строк при вводе. Нажатие на клавишу «Пробел» в начале строки будет приводить к выводу номера строки на 10 большего, чем предыдущий. Повторное выполнение директивы «А» приведет к выключению режима автонумерации и восстановлению приглашающего символа в виде «>». При включении режима автонумерации сразу после запуска ПМС или после выполнения директивы очистки программной памяти автонумерация строк начинается со строки 0010. Если в ОЗУ уже находится музыкальная программа, последняя строка которой имеет номер М, автонумерация начнется с номера строки N+10. Предусмотрено и явное задание адреса, с которого должна начаться автонумерация. Для этого после вывода символа «+» необходимо без пробела набрать четырехзначный адрес строки (больший, чем последний номер в текущей программе, если она есть), а затем и саму строку. При нажатии пробела для печати номера следующей строки высветится номер на 10 больший.
D (DELETE) — Позволяет удалить строку или группу строк программы. Для удаления одной строки сразу после символа «D» следует набрать номер удаляемой строки (ведущие нули могут быть опущены) и (ВК). Для удаления группы строк после символа «D» указывают номер первой удаляемой строки, а затем через пробел номер последней удаляемой строки и (ВК).
Е (EDIT) — Позволяет редактировать строку с указанным сразу за символом команды номером (ведущие нули можно опустить). При выполнении этой команды строка с указанным номером вызывается в буфер редактирования, после чего могут быть выполнены следующие команды редактора:
- → или УС+Х — перемещает курсор на одну позицию вправо по редактируемой строке;
- ← или УС+Н — перемещает курсор на одну позицию влево по редактируемой строке,
- УC+D удаляет символ, указанный курсором, из редактируемой строки:
- УС+I переключатель режима вставки. Позволяет включать и выключать режим ввода символов с автораздвижкой редактируемой строки:
- ВК — команда выхода из режима редактирования строки. Строка в отредактированном виде записывается в музыкальную программу под своим номером.
- G (GET)- Позволяет ввести текст ранее набранной партитуры с магнитной ленты. Ввод начинается сразу после нажатия клавиши ВК, поэтому ее следует нажимать лишь после начала воспроизведения «ракорда» записи. В случае ошибки при чтении с магнитной ленты система выдаст сообщение: ОШИБКА ВВОДА.
- L (LIST) — Позволяет просматривать текст введенной партитуры. Ввод команды без параметров вызовет распечатку всей партитуры на экране дисплея. Приостановить вывод можно нажатием на пробел, а повторным нажатием — продолжить его. Возможен просмотр одной строки (указывается номер строки) или строк с «N» по «М» («N» набирается сразу после команды, а «М» — через пробел).
- М (MENU) — Выводит на экран дисплея краткий перечень команд системы.
- N (NEW) — Очищает программную память для ввода новой партитуры. Ранее находившаяся в памяти партитура теряется.
- R (RUN) — Вызывает компиляцию и исполнение введенной партитуры. При обнаружении ошибки в тексте партитуры система выдаст сообщение об ошибке и автоматически перейдет в режим редактирования строки, содержащей ошибку.
- V (VERIFY) -Позволяет определить объем памяти, занимаемой текстом партитуры. При этом распечатываются также начальный и конечный адреса расположения текста партитуры в ОЗУ.
- W — Позволяет сохранить текст введенной партитуры на магнитной ленте. После ввода команды система попросит пользователя подготовить магнитофон к записи и нажать клавишу (ВК), что послужит командой машине начать вывод текста партитуры на магнитофон, После окончания вывода партитуры последует запрос на необходимость проверки качества записанной информации. Ввод в ответ на запрос системы символа «N» вызовет переход ПМС в режим ожидания следующей команды, а ввод любого другого символа вызовет сообщение с просьбой подготовиться к проверке качества записи и нажать клавишу (ВК) (после начала воспроизведения ракорда информации).
Рассмотрим теперь элементы языка, на котором в ПМС записывается музыкальное произведение. Первую группу этих элементов можно назвать музыкальными операторами. Они позволяют смещать по высоте весь нотный строй, задавать ключ игры, определять музыкальные такты и выполнять некоторые другие функции. Рассмотрим музыкальные операторы более подробно:
- / Признак комментария. Обозначает, что все символы, находящиеся в строке правее его, являются комментарием и компилятором обрабатываться не будут.
- Р (СИМВОЛ) — Признак начала параграфа. Определяет начало участка музыкального произведения, который в дальнейшем может быть использован в партитуре в виде ссылки на имя параграфа, указанное в поле СИМВОЛ. В качестве имени параграфа может быть использована одна любая заглавная буква латинского алфавита от А до Z. Если определено два параграфа с одинаковыми именами, то действительным будет последнее по тексту программы определение.
- R (СИМВОЛ) Повтор параграфа. Вызывает включение ранее определенного параграфа с именем, указанным в поле СИМВОЛ, в текст партитуры без его полного повторного описания.
- М (СИМВОЛ) Идентификатор такта. Определяет начали музыкального такта. Любой ранее начатый такт заканчивается. В пределах такта партии могут быть записаны в строках с разными номерами, но при исполнении будут проигрываться в одном такте вплоть до строки с определением следующего такта. В поле СИМВОЛЫ могут использоваться символы латинского алфавита от А до Z и цифры от 0 до 9 общим количеством не более четырех.
- V (ЦИФРА) Идентификатор «Голоса». Определяет, партия какого из трех голосов будет записана непосредственно за оператором. В ноле ЦИФРА может быть указано одно из чисел 1, 2 или 3 в зависимости от номера описываемого голоса. Максимальное число нот, могущих быть записанными за идентификатором одного голоса, составляет 32. Партии разных голосов в пределах одного такта могут быть записаны в строках с разными номерами.
- <(ЦИФРА) Признак понижения строя. Все последующие ноты в данном параграфе смещаются вниз на количество полутонов, указанное в поле ЦИФРА и записанное в виде одной шестнадцатеричной цифры от 1 до F. В пределах одного параграфа может быть определен только один раз.
- >(ЦИФРА) — Признак повышения строя. Все последующие ноты в данном параграфе смещаются вверх на количество полутонов, указанное в поле ЦИФРА и записанное в виде одной шестнадцатеричной цифры от 0 до F. В пределах одного параграфа может быть определен только один раз.
- * Скрипичный ключ. Определяет, что партия голоса, к которому он принадлежит, будет исполняться в скрипичном ключе. В пределах одного такта для конкретного голоса может быть определен только один раз.
- а Басовый ключ. Определяет, что партия голоса, к которому он принадлежит, будет исполняться в басовом ключе. В пределах одного такта для конкретного голоса может быть определен только один раз.
- ^<ЗНАК><ЦИФРА> Признак локального смещения строя. Определяет, что все ноты, принадлежащие текущему голосу, будут повышены или понижены, в зависимости от поля ЗНАК (+ ИЛИ -), на количество полутонов, указанное в поле ЦИФРА (0…F). Для данного голоса в пределах одного такта может быть применен только один раз.
- К <ЧИСЛО><ТИП> — Ключевой знак альтерации. Музыкальный ключ, задаваемый в виде числа от 0 до 7 в поле ЧИСЛОМ и ТИПА # (ДИЕЗ) или & (БЕМОЛЬ) в поле ТИП. Поле ЧИСЛО определяет количество ДИЕЗов или БЕМОЛей. Если оператор «К» не применяется, то игра будет происходить в до-мажоре. Оператор «К» применяется в начале партитуры только один раз.
- N<СИМВОЛ><ЧИСЛО> — Определяет темп, в котором будет исполняться текущий параграф. Задание темпа происходит путем уравнивания длительности звучания нот с числом циклов работы программы задержки, указываемым в поле ЧИСЛО и находящимся в диапазоне от 00 до FF. В поле СИМВОЛ может быть использован один из символов Н, Q, I или S, обозначающих соответственно 1/2, 1/4, 1/8 и 1/16 ноты.
Элементы второй группы, назовем их музыкальными функциями, определяют, как будет играться конкретная нота в музыкальном произведении. Перечислим их:
- # — диез
- & — БЕМОЛЬ
- % — КЛЮЧ ДО
- ' — КРАТКОЕ ЗВУЧАНИЕ
- " ИЛИ ' — СТАККАТО
- . — НОТА С ТОЧКОЙ
- : — ТРИОЛЬ
- $ — СИМВОЛ ПАУЗЫ
- W — ЦЕЛАЯ НОТА
- Н — 1/2 НОТЫ
- Q — 1/4 НОТЫ
- I — 1/8 НОТЫ
- S — 1/16НОТЫ
- Т — 1/32 НОТЫ
- X — 1/64 НОТЫ
Кодирование нот в ПМС
Позиция ноты на нотных линейках определяется относительно среднего ДО. Среднее ДО принимается за 0, и все остальные ноты располагаются в числовом ряду в положительную или отрицательную сторону от него.
Проводимые примеры партитур (табл.2, табл.3, табл.4) помогут вам в написании собственных предложений музыкальных произведений для компьютера «Радио-86РК».
А. АНДРЕЕВ, г. Москва