Передовица (меню разделов)
⇓
Software
⇓
Звук
⇓
Музыкальная система
Скачать архив с диском. АГАТ-7 НГМД 840.
Автор: Никитин А.Л. Школа 12. г.Волжский.
Система подготовки мелодий, шумов и звуковых эффектов по принципу т.н. "трехголосого" синтезатора. Обладает встроенной подсистемой поддержки ДОС, подсказкой и языком программирования.
Это адаптация для Агата муз. редактора из журнала "Радио" N10 за 1988 год (А. Андреев, Музыкальная система для Радио-86 РК. С. 25.). А она, в свою очередь, адаптация с Altair 8800. Пошла как работа к выпускному экзамену по информатике.

ПРОГРАММНАЯ МУЗЫКАЛЬНАЯ СИСТЕМА ДЛЯ ПЭВМ АГАТ (ПМС)
Музыкальная система предназначена:
1) для создания текстов партитур трехголосых музыкальных
произведений;
2) для исполнения трехголосой музыки по введенной партитуре;
3) для создания независимых программ в машинных кодах, испол-
няющих трехголосые мелодии.
СИСТЕМНЫЕ ДИРЕКТИВЫ
A(auto) - позволяет включить или выключить режим автонумерации
строк при вводе партитуры. После ввода директивы курсор изме-
нится на "+", что означает переход системы в режим автонумера-
ции строк при вводе. Нажатие на клавишу "Пробел" в начале стро-
ки будет приводить к выводу номера строки на 10 большего, чем
предыдущий. Повторное выполнение директивы "A" приведет к
выключению режима автонумерации и восстановлению курсора ">".
При включении режима авонумерации сразу после запуска ПМС ИЛИ
ПОСЛЕ ВЫПОЛНЕНИЯ ДИРЕКТИВЫ ОЧИСТКИ ПРОГРАММНОЙ ПАМЯТИ АВТОНУМЕ-
РАЦИЯ НАЧИНАЕТСЯ СО СТРОКИ 0010. Если в ОЗУ уже находится музы-
кальная программа, последняя строка которой имеет номер N, ав-
тонумерация начинается с номера N+10. Предусмотрено и явное
задание адреса, с которого должна начаться автонумерация. Для
этого после вывода символа "+" необходимо без поробела на-
брать четырехзначный адрес строки (больший, чем последний номер
d текущей программе, если она есть), а затем и саму строку.
При нажатии пробела для печати номера следующей строки высве-
тится номер на 10 больший.
D(delete) - позволяет удалить строку или группу строк програм-
мы. Для удаления одной строки сразу после символа "D" следует
набрать номер удаляемой строки (ведущие нули могут быть опу-
щены) и <ввод>. Для удаления группы строк после символа "D"
указывают номер первой удаляемой строки, а затем через пробел
номер последней из удаляемых строк и <ввод>.
E(edit) - позволяет редактировать строку с указанным сразу
за символом команды номером (ведущие нули можно опустить). При
выполнении этой команды строка с указанным номером вызы- вается
в буфер редактирования, после чего могут быть выполнены команды
редактора, список которых появится на экране.
G(get) - Позволяет ввести текст ранее набранной партитуры с
НГМД. Для этого нужно набрать "G" и <ввод>, а затем имя
партитуры и повторно нажать <ввод>.
L(list) - позволяет просматривать текст введенной партитуры.
Ввод команды без параметров вызовет распечатку всей партитуры
на экран дисплея. Приостановить вывод можно нажатием на пробел,
а повторным нажатием - продолжить его. Возможен просмотр одной
строки (указывается номер строки) или строк с "N" по "M"
("n" набирется сразу после команды, а "M" - через пробел).
M(menu) - выводит на экран дисплея краткий перечень команд
системы.
N(new) - очищает програмную память для ввода новой партитуры.
ранее находившаяся в памяти партитура теряется.
R(run) - Вызывает компиляцию и исполнение введенной партитуры.
При обнаружении ошибки в тексте партитуры система выдаст сооб-
щение об ошибке и перрейдет в режим редактирования строки,
содержащей ошибку.
V(verife) - позволяет определить объем памяти, занимаемой
текстом партитуры. При этом распечатываются также начальный и
конечный адреса расположения текста партитуры в ОЗУ.
W(write) - позволяет сохранить текст ранее введенной партитуры
на НГМД. После ввода необходимо набрать имя файла и нажать
<ввод>.
МУЗЫКАЛЬНЫЕ ОПЕРАТОРЫ
/ - признак комментария. Обозначает, что все символы, нахо-
дящиеся в сторке правее его, являются комментарием и компиля-
тором обрабатыбаться не будут.
P<СИМВОЛ> - Признак начала параграфа. Определяет начало участ-
ка музыкального произведения, который в дальнейшем может быть
использован в партитуре в виде ссылки на имя параграфа, ука-
заннойе в поле СИМВОЛ. В качестве имени параграфа может быть
использована одна любая заглавная буква латинского алфавита от
A до Z. Если определено два параграфа с одинаковыми номерами,
то действительным будет последнее по тексту программы опреде-
ление.
R<СИМВОЛЫ> - повтор парагрфа. Вызывает включение ранее опреде-
ленного параграфа с именем, указанным в поле СИМВОЛ, в текст
партитуры без его полного повторного описания.
M<СИМВОЛ> - идентификатор такта. Определяет начало музыкаль-
ного такта. Любой ранее начатый такт заканчивается. В пределах
такта партии могут быть записаны в строках с разными номерами,
но при исполнении будут проигрываться в одном такте вплоть до
строки с определением следующего такта. В поле СИМВОЛЫ могут
использоваться символы латинского алфавита от A до Z и цифры
от 0 до 9 общим количеством не более четырех.
V<ЦИФРА> - идентификатор "Голоса". Определяет, партия какого
из трех голосов будет записана непосредственно за оператором.
В поле ЦИФРА может быть указано одно из чисел 1, 2 или 3 в за-
висимости от номера описываемого голоса. Максимальное число
нот, могущих быть записанными за идентификатором одного голоса,
составляет 32. Партии разных голосов в пределах одного такта
могут быть записаны в строках с разными номерами.
<(ЦИФРА) - признак понижения строя. Все последующие ноты в
данном параграфе смещаются вниз на количество полутонов, ука-
занное в поле ЦИФРА и записанное в виде одной шестнадцатиричной
цифры от 1 до F. В пределах одного параграфа может быть опре-
делен только один раз.
>(ЦИФРА) - признак повышения строя. Все последующие ноты в
данном параграфе смещаются вверх на количество полутонов, ука-
занное в поле ЦИФРА и записанное в виде одной шестнадцатирич-
ной цифры от 1 до F. В пределах одного параграфа может быть
определен только один раз.
* - скрипичный ключ. Определяет, что партия голоса, к которо-
му он пренадлежит, будет исполняться в скрипичном ключе. В пре-
делах одного такта для конкретного голоса может быть определен
только один раз.
@ - басовый ключ. Определяет, что партия голоса, к которому
он пренадлежит, будет исполняться в басовом ключе. В пределах
одного такта для конкретного голоса может быть определен толь-
ко один раз.
^<ЗНАК><ЦИФРА> - признак локального смещения строя. Определя-
ет, что все ноты, принадлежащие текущему голосу, будут повы-
шены или понижены в зависимости от поля ЗНАК (+ ИЛИ -), на
количестово полутонов, указанное в поле ЦИФРА (0...F). Для дан-
ного голоса в пределах одного такта может быть применен толь-
ко один раз.
K<ЧИСЛО><ТИП> - ключевой знак альтерации. Музыкальный ключ,
задаваемый в виде числа от 0 до 7 в поле ЧИСЛО и ТИПА #(ДИЕЗ)
или &(БЕМОЛЬ) в поле ТИП. Поле ЧИСЛО определяет количесво ДИЕ-
Зов или БЕМОЛей. Если оператор "K" не применяется, то игра бу-
дет происходить в домажоре. Оператор "K" применяется в начале
партитуры только один раз.
N<СИМВОЛ><ЧИСЛО> - определяет темп, в котором будет исполнять-
ся текущий параграф. Задание темпа происходит путем уравнива-
ния длительности звучания нот с числом циклов работы програм-
мы задержки указываемым в поле ЧИСЛО и находящимся в диапазоне
от 00 до FF. В поле СИМВОЛ может быть использован один из сим-
волов H, Q, I или S, обоначающих соответственно 1/2, 1/4, 1/8
и 1/16 ноты.
МУЗЫКАЛЬНЫЕ ФУНКЦИИ
- определяют, как будет играться конкретная нота в музыкаль-
ном произведении.
# - ДИЕЗ
& - БЕМОЛЬ
% - КЛЮЧ ДО
, - КРАТКОЕ ЗВУЧАНИЕ
" ИЛИ '- СТАККАТО
. - НОТА С ТОЧКОЙ
: - ТРИОЛЬ
$ - СИМВОЛ ПАУЗЫ
W - ЦЕЛАЯ НОТА
H - 1/2 НОТЫ
Q - 1/4 НОТЫ
I - 1/8 НОТЫ
S - 1/16 НОТЫ
T - 1/32 НОТЫ
X - 1/64 НОТЫ
КОДИРОВАНИЕ НОТ В ПМС
Позиция ноты на нотных линейках определяется относительно
среднего ДО. Среднее ДО принимается за 0, и все остальные ноты
распологаются в числовом ряду в положительную или отрицатель-
ную сторону от него.
F
-------------------------- E --------------------------
D
------------------------ C ----------------------------
B
---------------------- A ------------------------------
9
-------------------- 8 --------------------------------
СКРИПИЧНЫЙ 7
------------------ 6 ----------------------------------
КЛЮЧ 5
---------------- 4 ------------------------------------
3 +3
-------------- 2 ----------------------- +2 -----------
1 +1
------------ 0 ------------------------ 0 -------------
-1 1
--------- -2 ------------------------ 2 ---------------
-3 3
----------------------------------- 4 -----------------
5
--------------------------------- 6 -------------------
7 БАСОВЫЙ
------------------------------- 8 ---------------------
9 КЛЮЧ
----------------------------- A -----------------------
B
--------------------------- C -------------------------
D
------------------------- E ---------------------------
F