$

5. Композитор

Наша программа уже умеет проигрывать любую мелодию (Рис. 15.6). Достаточно изменить списки, чтобы изменилась мелодия. Упростим процесс написания музыки, добавив возможность записывать ноты в список после нажатия на клавишу нот в любой октаве. Введем переменную record и кнопку для ее включения: если значение record=0, нажатие на клавишу не будет храниться в списке нот, если record =1 - будет храниться.

Также сделаем кнопки для очистки списков, начала записи, завершения записи и запуска игры мелодии. В музыке используются ноты разной длины. По умолчанию длина нот равняется 0,5 такта - это 1 / 8 длины целой ноты. Создадим переменную час для определения длины нот и запрограммируем клавишу ↑ на увеличение длительности ноты на 0,2, а клавишу ↓ - на уменьшение на - 0,2.

  1. Откройте проект упражнение_15_4.

  2. Создайте глобальные переменные record и час.

  3. Создайте четыре спрайта для кнопок, например, как на Рис. 15.14.

Рис. 15.14. Образы кнопок
4. Соберите скрипты для кнопок (Рис. 15.15).

Рис. 15.15. Скрипты для четырех кнопок
5. Добавьте в скрипты музыкальных клавиш (Рис. 15.13.) блоки команд записи нот, если переменная record = 1 (рис.15.16).
Рис. 15.16. Скрипт игры записи ноты
6. Поиграйте на своем музыкальном инструменте. Что происходит при нажатии на несколько клавиш одновременно?
7. Попробуйте сочинить мелодию.
8. Сохраните проект в файле упражнение_15_5.
9. Добавьте выбор инструмента 41 - скрипка. Прослушайте исполнение мелодии этим инструментом. 
10. Проверьте, как звучит мелодия в исполнении разных инструментов.

Embed gadget

 

$