Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
msx:maestro:med:med [2022-03-29 10:52] GreyWolf [EDIT] |
msx:maestro:med:med [2023-05-30 19:06] GreyWolf [Музыкальный пакет MEDIA] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Музыкальный пакет MEDIA ====== | ====== Музыкальный пакет MEDIA ====== | ||
FIXME | FIXME | ||
+ | |||
+ | {{med230.png?nolink}} | ||
Автор: Сергей Новосельцев (1987-1988). | Автор: Сергей Новосельцев (1987-1988). | ||
Строка 6: | Строка 8: | ||
Музыкальный пакет "MEDIA" является инструментальным программным средством (ПС) для разработки музыкального сопровождения учебных, игровых и демонстрационных программ для ПЭВМ MSX. Пакет состоит из музыкального редактора MED и [[msx:maestro:maestro#GRPLIBM|библиотеки функций для языка C]]. | Музыкальный пакет "MEDIA" является инструментальным программным средством (ПС) для разработки музыкального сопровождения учебных, игровых и демонстрационных программ для ПЭВМ MSX. Пакет состоит из музыкального редактора MED и [[msx:maestro:maestro#GRPLIBM|библиотеки функций для языка C]]. | ||
- | ПЭВМ MSX оснащены трёхголосным программируемым звукогенератором ([[msx:psg:psg|PSG]]) GI AY-3-8910, имеющим диапазон 8 октав и генератор шума. Для программной поддержки [[msx:psg:psg|PSG]] в языке [[msx:basic:|]] имеется оператор ''[[msx:basic_programming_guide:06#play|PLAY]]'' с встроенным языком MML (Music Macro Language), позволяющим в символической форме представлять нотную запись а также управлять громкостью и формой звукового сигнала; однако среда [[msx:basic:|]] мало приспособлена для создания программ профессионального уровня. В системе же [[msx:dos|]] музыкальные средства отсутствуют. | + | ПЭВМ MSX оснащены трёхголосным программируемым звукогенератором ([[msx:psg:psg|PSG]]) GI AY-3-8910, имеющим диапазон 8 октав и генератор шума. Для программной поддержки [[msx:psg:psg|PSG]] в языке [[msx:basic:|]] имеется оператор ''[[msx:basic_dialogue_programming_language:006#play|PLAY]]'' с встроенным языком MML (Music Macro Language), позволяющим в символической форме представлять нотную запись а также управлять громкостью и формой звукового сигнала; однако среда [[msx:basic:|]] мало приспособлена для создания программ профессионального уровня. В системе же [[msx:dos:|]] музыкальные средства отсутствуют. |
- | Пакет "MEDIA" предоставляет разработчикам программ в [[msx:dos|]] удобный инструмент подготовки музыкальных фрагментов для [[msx:psg:psg|PSG]], включения их в программу и управления исполнением, создания музыкальных и шумовых эффектов. | + | Пакет "MEDIA" предоставляет разработчикам программ в [[msx:dos:|]] удобный инструмент подготовки музыкальных фрагментов для [[msx:psg:|PSG]], включения их в программу и управления исполнением, создания музыкальных и шумовых эффектов. |
Пакет "MEDIA" разработан в рамках идеологии [[msx:maestro:maestro|ПС "МАЭСТРО"]] и предназначен для использования вместе с ним. | Пакет "MEDIA" разработан в рамках идеологии [[msx:maestro:maestro|ПС "МАЭСТРО"]] и предназначен для использования вместе с ним. | ||
Строка 15: | Строка 17: | ||
Дополнительную информацию о музыкальных возможностях [[msx:basic:|]] можно узнать тут: | Дополнительную информацию о музыкальных возможностях [[msx:basic:|]] можно узнать тут: | ||
- | * [[msx:basic_programming_guide:06]] | + | * [[msx:basic_dialogue_programming_language:006]] |
* [[msx:using_musical_means_in_basic:using_musical_means_in_basic|]] | * [[msx:using_musical_means_in_basic:using_musical_means_in_basic|]] | ||
+ | |||
+ | 8-) В нём написана музыка: [[msx:ar_games:|]] | ||
====== Язык MML+ ====== | ====== Язык MML+ ====== | ||
- | В качестве основы нотной записи использован язык [[msx:basic_programming_guide:06:#mml|MML]], реализованый в [[msx:basic:|]] со следующими дополнениями: | + | В качестве основы нотной записи использован язык [[msx:basic_dialogue_programming_language:006:#mml|MML]], реализованный в [[msx:basic:|]] со следующими дополнениями: |
* при записи нот большие и малые буквы обозначают разные октавы, большие буквы относятся к октаве, указанной в операторе ''О'', a a малые — к ''O+1'' ; это существенно сокращает количество операторов ''О'' в нотной записи. | * при записи нот большие и малые буквы обозначают разные октавы, большие буквы относятся к октаве, указанной в операторе ''О'', a a малые — к ''O+1'' ; это существенно сокращает количество операторов ''О'' в нотной записи. | ||
Например | Например | ||
Строка 33: | Строка 37: | ||
Операторы для управления LFO и шумом (LFO — Low Frequency Oscillation — изменение частоты звучания генератора относительно основной загруженной ноты): | Операторы для управления LFO и шумом (LFO — Low Frequency Oscillation — изменение частоты звучания генератора относительно основной загруженной ноты): | ||
* операторы ''['' и '']'' включают и выключают LFO для соответствующего голоса; за оператором [ может следовать цифра 0, 1 или 2, задающая форму LFO: | * операторы ''['' и '']'' включают и выключают LFO для соответствующего голоса; за оператором [ может следовать цифра 0, 1 или 2, задающая форму LFO: | ||
- | * <code>╱╲</code> | + | * ''╱╲'' |
- | * <code>╲╱</code> | + | * ''╲╱'' |
- | * <code> ┌─┐ | + | * ''_∏'' |
- | ──┘ └</code> | + | |
* операторы ''{'' и ''}'' включают и выключают LFO для шума; за оператором ''{'' может следовать цифра 0, 1 или 2, задающая форму LFO: | * операторы ''{'' и ''}'' включают и выключают LFO для шума; за оператором ''{'' может следовать цифра 0, 1 или 2, задающая форму LFO: | ||
- | * <code>╱╲</code> | + | * ''╱╲'' |
- | * <code>╲╱</code> | + | * ''╲╱'' |
- | * <code> ┌─┐ | + | * ''_∏'' |
- | ──┘ └</code> | + | |
* операторы ( и ) включают и выключают шум в соответствующем голосе. | * операторы ( и ) включают и выключают шум в соответствующем голосе. | ||
* оператор ''*a'' задаёт амплитуду LFO для данного голоса. | * оператор ''*a'' задаёт амплитуду LFO для данного голоса. | ||
Строка 52: | Строка 54: | ||
Данный язык будет в дальнейшем обозначаться MML+. | Данный язык будет в дальнейшем обозначаться MML+. | ||
- | |||
- | |||
- | |||
====== Работа с музыкальным редактором MED ====== | ====== Работа с музыкальным редактором MED ====== | ||
- | Музыкальный редактор MED позволяет вести экранное редактирование нотной строки, состоящей из четырёх строк - по одной для каждого из трёх голосов и строки комментариев. При этом осуществляется горизонтальный скроллинг нотной строки. | + | Музыкальный редактор MED позволяет вести экранное редактирование нотной строки, состоящей из четырёх строк - по одной для каждого из трёх голосов и строки комментариев. При этом осуществляется горизонтальный скроллинг нотной строки. |
MED транслирует нотную запись MML+ в формат системной музыкальной очереди, обеспечивает прослушивание полученных фрагментов однократно или в цикле. Можно также включать шум в каждом из голосов, менять характеристики шума, управлять LFO независимо в каждом голосе. | MED транслирует нотную запись MML+ в формат системной музыкальной очереди, обеспечивает прослушивание полученных фрагментов однократно или в цикле. Можно также включать шум в каждом из голосов, менять характеристики шума, управлять LFO независимо в каждом голосе. | ||
Строка 69: | Строка 68: | ||
После вызова программы MED на экране появляются нотная строка, CUT/PASTE буфер, окно музыкальной очереди, окно прямого управления PSG и строка главного меню с подсвеченным курсором. | После вызова программы MED на экране появляются нотная строка, CUT/PASTE буфер, окно музыкальной очереди, окно прямого управления PSG и строка главного меню с подсвеченным курсором. | ||
+ | Нажатием клавишей <key>→</key> и <key>←</key> курсор меню устанавливается на нужную функцию; для вызова функции надо нажать пробел или <key>'Ввод '⏎</key>. | ||
- | Нажатием клавишей <key>→</key> и <key>←</key> курсор меню устанавливается на нужную функцию; для вызова функции надо нажать пробел или <key>'Ввод '⏎</key>. Из главного меню вызываются функции: | + | Из главного меню вызываются функции: |
* [[#EDIT]] | * [[#EDIT]] | ||
* [[#LOAD]] | * [[#LOAD]] | ||
Строка 78: | Строка 78: | ||
* [[#QUIT]] | * [[#QUIT]] | ||
- | Во всех четырёх дисковых функциях: [[#LOAD]], [[#SAVE]], [[#BLOAD]], [[#BSAVE]] после выбора функции в верхнем окне экрана появляется запрос: "enter file name:", в ответ на который следует ввести требуемое имя файла. | + | Во всех четырёх дисковых функциях: [[#LOAD]], [[#SAVE]], [[#BLOAD]], [[#BSAVE]] после выбора функции в верхнем окне экрана появляется запрос: "enter file name:", в ответ на который следует ввести требуемое имя файла. |
Для отмены функции и возврата в меню можно нажать <key>STOP</key> или <key>ESC</key>. | Для отмены функции и возврата в меню можно нажать <key>STOP</key> или <key>ESC</key>. | ||
Строка 84: | Строка 84: | ||
===== EDIT ===== | ===== EDIT ===== | ||
Переход в режим редактирования. | Переход в режим редактирования. | ||
- | |||
Режим редактирования. | Режим редактирования. | ||
Строка 103: | Строка 102: | ||
|<key>SHIFT+CTRL+DEL</key>|стирает все символы текущей строки справа от курсора.| | |<key>SHIFT+CTRL+DEL</key>|стирает все символы текущей строки справа от курсора.| | ||
|<key>GRAPH</key>|PASTE: содержимое CUT/PASTE буфера копируется в нотную строку, начиная с позиции курсора.| | |<key>GRAPH</key>|PASTE: содержимое CUT/PASTE буфера копируется в нотную строку, начиная с позиции курсора.| | ||
+ | |<key>SELECT</key>|транслирует содержимое строчных буферов голосов 1-3 в музыкальную очередь; в каждой из строк трансляция прекращается по достижении последнего не пробела или символа '%'. В окне музыкальной очереди высвечивается информации о длине музыкальной очереди для каждого из голосов и общей длине музыкального фрагмента, а также продолжительность звучания каждого голоса - в тиках и в секундах. \\ Запускает исполнение музыки.| | ||
+ | |<key>'Ввод '⏎</key>|play; запускает исполнение музыки, однократно или в цикле. Во время исполнения можно продолжать редактирование.| | ||
+ | |<key>STOP</key>|"выключает" музыку.| | ||
+ | |<key>STOP+SHIFT</key>|приостанавливает/продолжает исполнение музыки.| | ||
+ | |<key>F1</key>, <key>F2</key>, <key>F3</key>, <key>F4</key>|включает/выключает LFO для голосов 1-3 и шума. Для голосов, в которых включён LFO, подсвечивается соответствующая колонка в строке "LFO on" окна прямого управления.| | ||
+ | |<key>F5</key>|устанавливает/сбрасывает признак циклического исполнения. \\ Если установлен признак цикла, на экране появляется подсвеченная надпись "CYCLE".| | ||
+ | |<key>F1+SHIFT</key>, <key>F2+SHIFT</key>, <key>F3+SHIFT</key>|включает/выключает шум в голосах 1-3. \\ Для голосов, в которых включён шум, подсвечивается колонка в строке "Noise on" окна прямого управления.| | ||
+ | |<key>F1+CTRL</key>, <key>F2+CTRL</key>, <key>F3+CTRL</key>, <key>F4+CTRL</key>|меняет форму LFO для голосов 1-3 и шума.| | ||
+ | |<key>←+CTRL</key>, <key>→+CTRL</key>|перемещение курсора LFO по строке параметров LFO. \\ В этой строке отображаются текущие значения параметров *a, *t для каждого из голосов и /a, /t, /f для шума.| | ||
+ | |<key>↑+CTRL</key>, <key>↓+CTRL</key>|увеличение или уменьшение параметра LFO, на который указывает курсор LFO.| | ||
+ | |<key>ESC+SHIFT</key>|сброс всех параметров LFO, выключение LFO и шума.| | ||
+ | |<key>ESC</key>|выход из режима редактирования в главное меню. Окно подсказки стирается, музыка выключается.| | ||
+ | |<key>SHIFT+F5</key>|Вывод справки (подсказки)| | ||
- | <code> | ||
- | CUT/YANK: | ||
- | TAB (1-е нажатие) - переход из режима редактирования в режим | ||
- | CUT/YANK; в этом режиме можно только управлять движением | ||
- | нотной строки; при этом помечается блок текста. | ||
- | Выход из режима CUT/YANK может осуществляться следующими | ||
- | способами: | ||
- | TAB (2-e нажатие) - YANK: отмеченный блок копируется в CUT/PASTE | ||
- | буфер; возврат в режим редактирования. | ||
- | TAB (2-e нажатие)+SHIFT - CUT: отмеченный блок пересылается в | ||
- | CUT/PASTE буфер; возврат в режим редактирования. | ||
- | TAB (2-e нажатие)+CTRL - возврат в режим редактирования. | ||
- | SELECT - транслирует содержимое строчных буферов голосов 1-3 | + | ==== CUT/YANK ==== |
- | в музыкальную очередь; в каждой из строк трансля- | + | |<key>TAB</key> (1-е нажатие)|переход из режима редактирования в режим CUT/YANK; в этом режиме можно только управлять движением нотной строки; при этом помечается блок текста.| |
- | ция прекращается по достижении последнего непробела | + | |
- | или символа '%'. В окне музыкальной очереди высвечи- | + | |
- | вается информации о длине музыкальной очереди для | + | |
- | каждого из голосов и общей длине музыкального фрагмента, | + | |
- | а также продолжительность звучания каждого голоса - | + | |
- | в тиках и в секундах. | + | |
- | Запускает исполнение музыки. | + | |
- | + | Выход из режима CUT/YANK может осуществляться следующими способами: | |
- | CR - play; запускает исполнение музыки, однократно | + | |<key>TAB</key> (2-e нажатие)|YANK: отмеченный блок копируется в CUT/PASTE буфер; возврат в режим редактирования.| |
- | или в цикле. Во время исполнения можно продолжать | + | |<key>TAB</key> (2-e нажатие)+<key>SHIFT</key>|CUT: отмеченный блок пересылается в CUT/PASTE буфер; возврат в режим редактирования.| |
- | редактирование. | + | |<key>TAB</key> (2-e нажатие)+<key>CTRL</key>|возврат в режим редактирования.| |
- | STOP - "выключает" музыку. | ||
- | STOP+SHIFT - приостанавливает/продолжает исполнение музыки. | ||
- | |||
- | F1-F3,F4 - включает/выключает LFO для голосов 1-3 и шума. Для голосов, | ||
- | в которых включен LFO, подсвечивается соответствующая колонка | ||
- | в строке 'LFO on' окна прямого управления. | ||
- | |||
- | F5 - устанавливает/сбрасывает признак циклического исполнения. | ||
- | Если установлен признак цикла, на экране появляется | ||
- | подсвеченная надпись 'CYCLE'. | ||
- | |||
- | F1-F3+SHIFT - включает/выключает шум в голосах 1-3. | ||
- | Для голосов, в которых включен шум, подсвечивается колонка | ||
- | в строке 'Noise on' окна прямого управления. | ||
- | |||
- | F1-F4+CTRL - меняет форму LFO для голосов 1-3 и шума. | ||
- | |||
- | <-,->+CTRL - перемещение курсора LFO по строке параметров LFO. | ||
- | В этой строке отображаются текущие значения параметров | ||
- | *a, *t для каждого из голосов и /a, /t, /f для шума. | ||
- | |||
- | Up+CTRL, Down+CTRL - увеличение или уменьшение параметра LFO, | ||
- | на который указывает курсор LFO. | ||
- | |||
- | ESC+SHIFT - сброс всех параметров LFO, выключение LFO и шума. | ||
- | |||
- | ESC - выход из режима редактирования в главное меню. Окно подсказки | ||
- | стирается, музыка выключается. | ||
- | |||
- | </code> | ||
===== LOAD ===== | ===== LOAD ===== | ||
Загрузка символического файла для редактирования. | Загрузка символического файла для редактирования. | ||
Строка 188: | Строка 151: | ||
===== QUIT ===== | ===== QUIT ===== | ||
- | Выход из редактора в MSX DOS. | + | Выход из редактора в [[msx:dos:|]]. |
- | + | ||
- | + | ||
- | <code> | + | |
- | ------------------------------------------------------------------------ | + | |
- | Литература. | + | |
- | [1] MSX Technical Data Book. | + | |
- | [2] Справочное руководство по языку Бейсик для КУВТ Ямаха. | + | |
- | ------------------------------------------------------------------------- | ||
- | </code> | ||
{{tag>MSX Programming Rodionov_A_B}} | {{tag>MSX Programming Rodionov_A_B}} |