Проект 9. Музыка
Узнайте, как использовать пины микро:бит для воспроизведения музыки!
Возраст: 8+
Время: 60 мин
Редактор: блочный редактор MakeCode
Вступление:
Этот проект использует входные контакты на micro:bit для управления звуковыми динамиками.
Ход работы:
Часть первая: делаем музыкальную открытку к дню рождения, используя микро:бит.
Шаг 1
Выберите блок “запустить мелодию” из раздела “Музыка” и поместите его на рабочую область.
Шаг 2
Из раздела “Ввод” переместите на рабочую область блок “кнопка А нажата”. Поместите блок “запустить мелодию” внутрь блока “кнопка А нажата”. Выберите мелодию “день рождения” в открывающемся меню.
Шаг 3
Поместите блок “показать строку” после блока “запустить мелодию”. Измените строку на “Happy Birthday”.
Выберите режим повторения “один раз в фоновом режиме” в блоке “запустить мелодию” . Этот режим позволит микро:бит исполнять другие функции (например показывать строку “Happy Birthday”) одновременно с проигрыванием мелодии.
Шаг 4
Протестируйте работу вашей программы. Подключите наушники к микро:бит при помощи зажимов “крокодил” как показано на рисунке. Контакт GRD соединяем с основанием входа наушников, а контакт PO с кончиком входа наушников.
Внимание! Будьте осторожны! Громкость в наушниках может быть очень высокой.
Шаг 5: дополнительно
Можете дополнить свою программу начальной заставкой. В начале программы выведем на экран значок “музыкальная нота” и запустим мелодию “конферансье”. Добавим паузу 4 секунды (4000 мс), чтобы за это время успела проиграть музыка “конферансье”. Затем включается анимация стрелки влево. Эта стрелка будем мигать и указывать на необходимость нажатия кнопки А.
Результат работы программы:
Часть вторая: составляем мелодию сами
Немного теории:
Есть всего семь основных нот: До, Ре, Ми, Фа, Соль, Ля, Си. В английском языке и в среде микро:бит MakeCode они обозначаются так: C, D, E, F, G, A, B
До | Ре | Ми | Фа | Соль | Ля | Си |
C | D | E | F | G | A | B |
Ноты обозначают овалами, которые расставлены по отношению пяти линеек. По высоте положения символа на линейках, а также по виду «хвостиков» у ноты, судят о том, что это за нота и как долго её нужно играть.
Зачем в пианино столько клавиш, если нот всего семь?! Дело в том, что ноты повторяются снова и снова, изменяется только высота ноты. Чем выше нота, тем она более «пронзительно писклявая»; и чем ниже нота, тем она более «грубая». Однако и на высоких и на низких нотах можно сыграть одну и ту же мелодию.
В среде микро:бит три набора нот: низкие ноты, средние ноты и высокие ноты.
Как долго играть ноту?
Музыкальная грамота появилась задолго до появления точных часов, поэтому длительность нот считали вслух цифрами. Время за которое вы произнесете «Раз и два и три и четыре и» – это 1 бит.
Обозначение длительности ноты:
Если несколько нот длительностью 1/8 бит стоят рядом, то их хвостики объединяют вместе в линию для простоты записи. То же самое с 1/16 нотами, только получаются двойные линии вместо двойных хвостиков.
А теперь мы готовы набрать код для мелодии «В траве сидел кузнечик» .
Вот ноты:
Вот их английские названия:
F C F C F EE
E C E C E FF
F C F C F EE
E C E C E F
F G GGG G G# G#G#G#
G# G# G F E FF
F G GGG G G# G#G#G#
G# G# G F E F
G#– это черная клавиша после G (между G и A)
Шаг 1
Добавим первую ноту нашей мелодии : нота F длительностью 1/8 бит. По нажатии клавиши А будет проигрываться эта нота. Добавим блок “кнопка А нажата” из раздела “Ввод” на рабочую область. Вставим внутрь блок “проиграть тон” из раздела “музыка”.
Установим соответствующую ноту и её продолжительность (длительность).
Шаг 2
Наберем первые семь нот мелодии: F C F C F E E.
Шаг 3
Зададим правильный темп мелодии. По умолчанию стоит темп 120 бит (ударов) в минуту. Мы установим значение темпа 30 ударов (бит) в минуту.
Запустим на эмуляторе код программы и проверим правильность звучания. Можете поэкспериментировать с темпом мелодии и подобрать подходящий для вас (например, 15 уд/мин).
Шаг 4
Наберите код для мелодии до конца. Помните, что некоторые участки мелодии повторяются и удобнее дублировать часть кода (правой клавишей мыши на коде/дублировать), а не набирать вручную заново.
Результат работы программы: