Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:maestro:med:med [2022-03-29 11:06] GreyWolf [EDIT] |
msx:maestro:med:med [2024-03-07 11:16] (текущий) GreyWolf |
||
---|---|---|---|
Строка 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 в музыкальную очередь; в каждой из строк трансляция прекращается по достижении последнего не пробела или символа '%'. В окне музыкальной очереди высвечивается информации о длине музыкальной очереди для каждого из голосов и общей длине музыкального фрагмента, а также продолжительность звучания каждого голоса - в тиках и в секундах. \\ Запускает исполнение музыки.| | |
- | <code> | + | |<key>'Ввод '⏎</key>|play; запускает исполнение музыки, однократно или в цикле. Во время исполнения можно продолжать редактирование.| |
- | SELECT - транслирует содержимое строчных буферов голосов 1-3 | + | |<key>STOP</key>|"выключает" музыку.| |
- | в музыкальную очередь; в каждой из строк трансля- | + | |<key>STOP+SHIFT</key>|приостанавливает/продолжает исполнение музыки.| |
- | ция прекращается по достижении последнего непробела | + | |
- | или символа '%'. В окне музыкальной очереди высвечи- | + | |
- | вается информации о длине музыкальной очереди для | + | |
- | каждого из голосов и общей длине музыкального фрагмента, | + | |
- | а также продолжительность звучания каждого голоса - | + | |
- | в тиках и в секундах. | + | |
- | Запускает исполнение музыки. | + | |
- | + | ||
- | + | ||
- | CR - play; запускает исполнение музыки, однократно | + | |
- | или в цикле. Во время исполнения можно продолжать | + | |
- | редактирование. | + | |
- | + | ||
- | STOP - "выключает" музыку. | + | |
- | + | ||
- | STOP+SHIFT - приостанавливает/продолжает исполнение музыки. | + | |
- | </code> | + | |
|<key>F1</key>, <key>F2</key>, <key>F3</key>, <key>F4</key>|включает/выключает LFO для голосов 1-3 и шума. Для голосов, в которых включён LFO, подсвечивается соответствующая колонка в строке "LFO on" окна прямого управления.| | |<key>F1</key>, <key>F2</key>, <key>F3</key>, <key>F4</key>|включает/выключает LFO для голосов 1-3 и шума. Для голосов, в которых включён LFO, подсвечивается соответствующая колонка в строке "LFO on" окна прямого управления.| | ||
|<key>F5</key>|устанавливает/сбрасывает признак циклического исполнения. \\ Если установлен признак цикла, на экране появляется подсвеченная надпись "CYCLE".| | |<key>F5</key>|устанавливает/сбрасывает признак циклического исполнения. \\ Если установлен признак цикла, на экране появляется подсвеченная надпись "CYCLE".| | ||
Строка 133: | Строка 114: | ||
|<key>ESC+SHIFT</key>|сброс всех параметров LFO, выключение LFO и шума.| | |<key>ESC+SHIFT</key>|сброс всех параметров LFO, выключение LFO и шума.| | ||
|<key>ESC</key>|выход из режима редактирования в главное меню. Окно подсказки стирается, музыка выключается.| | |<key>ESC</key>|выход из режима редактирования в главное меню. Окно подсказки стирается, музыка выключается.| | ||
+ | |<key>SHIFT+F5</key>|Вывод справки (подсказки)| | ||
Строка 169: | Строка 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}} | ||
- | |||
- | <PRELOAD> | ||
- | <!-- Yandex.Metrika counter --> | ||
- | <script type="text/javascript" > | ||
- | (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; | ||
- | m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) | ||
- | (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); | ||
- | |||
- | ym(86679439, "init", { | ||
- | clickmap:true, | ||
- | trackLinks:true, | ||
- | accurateTrackBounce:true | ||
- | }); | ||
- | </script> | ||
- | <noscript><div><img src="https://mc.yandex.ru/watch/86679439" style="position:absolute; left:-9999px;" alt="" /></div></noscript> | ||
- | <!-- /Yandex.Metrika counter --> | ||
- | </PRELOAD> | ||
- |