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