(PLAY): различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 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'у (англ.).

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.