Передовица » 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

* * *

Использование материалов проекта agatcomp без получения предварительного письменного разрешения agatcomp запрещено.


Почта для обратной связи: mail@agatcomp.ru


Живое общение по теме Агата: Telegram группа Agatcomp.


Накопленные знания и проекты: тематический ФОРУМ.


© 2004-2024 agatcomp.su / agatcomp.ru

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *