(PLAY): различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''(PLAY)''' — родное слово [[Каллисто]]. Сыграть мелодию. | '''(PLAY)''' — родное слово [[Каллисто]]. Сыграть мелодию. | ||
(PLAY) ( a u −− ) Играть музыку. Проиграть u нот, начиная с адреса a. | (PLAY) ( a u −− ) Играть музыку. Проиграть u нот, начиная с адреса a. | ||
Примитиву '''(PLAY)''' передаётся [Единое адресное пространство|адрес] массива, хранящего u нот нужной мелодии в формате длительность (2 байта) и частота (2 байта). Длительность задаётся в миллисекундах, делённых на 10. Частота в Герцах, умноженных на 10. Как везде в «Электронике», старший байт размещается перед младшим. | Примитиву '''(PLAY)''' передаётся [[Единое адресное пространство|адрес]] массива, хранящего u нот нужной мелодии в формате длительность (2 байта) и частота (2 байта). Длительность задаётся в миллисекундах, делённых на 10. Частота в Герцах, умноженных на 10. Как везде в «Электронике», старший байт размещается перед младшим. | ||
== Ввод слова (PLAY) == | == Ввод слова (PLAY) == |
Версия от 01:37, 2 сентября 2017
(PLAY) — родное слово Каллисто. Сыграть мелодию.
(PLAY) ( a u −− ) Играть музыку. Проиграть u нот, начиная с адреса a.
Примитиву (PLAY) передаётся адрес массива, хранящего u нот нужной мелодии в формате длительность (2 байта) и частота (2 байта). Длительность задаётся в миллисекундах, делённых на 10. Частота в Герцах, умноженных на 10. Как везде в «Электронике», старший байт размещается перед младшим.
Ввод слова (PLAY)
В режиме NUM последовательно нажмите клавиши ШГ→ Р-ГРД-Г 6 − ШГ← , P ШГ←
Пример
Содержащий мелодию массив может быть подготовлен заранее или создан во время компиляции. Пример в блоке №43 из дистрибутива Каллисто 1.0 содержит простой компилятор ММЯ — Музыкального Макро-Языка, позволяющего проигрывать мелодию, ноты которой записаны латинскими буквами.
listmkt v0.3.5a (c) AtH, 8 апреля 2015, Файл: B043.mkt 0 \ Pacman music #43, AtH, 20150413 1 2 forth definitions 5 value темп 3 4 vocabulary ММЯ ММЯ definitions \ Музыкальный Макро Язык 5 : нота ( частота длительность −−) 6 <builds темп × , , does> here 4 cmove 4 allot ; 7 : ; ( −−) ?csp here over 2+ − 4 / ↔ ! 8 [compile] forth ; immediate 9 10 0 1 нота . 0 2 нота .. 0 10 нота .10 11 2470 1 нота b< 4939 ↑ 1 нота b 2 нота b+ 2616 1 нота c 12 5233 1 нота c> 3111 ↑ 1 нота d# 3 нота d#++ 13 3296 ↑ 1 нота e 3 нота e++ 3492 1 нота f 3699 1 нота f# 14 3920 1 нота g 4153 1 нота g# 4400 1 нота a 15 16 forth definitions 17 : :мелодия ( −−) <builds here 2 allot !csp ММЯ 18 does> ↑ 2+ ↔ u@ (play) ; 19 20 :мелодия Пакмэн \ Манве, 13 апреля 2015 21 b< . b . f# . d# . b f# .. d#++ . \ такт 1 22 c . c> . g . e . c> g .. e++ . \ такт 2 23 b< . b . f# . d# . b f# .. d#++ . \ такт 3 24 d# e f . f f# g . g g# a . b+ .10 ; \ такт 4 25 26 : tune \ ( −−) воспроизведение мелодии 27 begin Пакмэн ?break again ; 28 \s
При желании развивать музыкальный макроязык можно изучить оператор PLAY в Бейсике. Его описание приведено, например, на сайте helloword.ru. Англоязычную документацию по макроязыку PLAY можно найти на Wikibooks, QB64.net или в руководстве по GW-Basic'у (англ.).
Ссылки
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |