Работа со звуком и музыкой в Scratch

В Scratch можно использовать несколько разновидностей блоков работы со звуком. Рассмотрим блоки секций "Звук", "Музыка" и "Текст в речь". Последние два подключаются через расширения.


Блоки "Звука" отвечают за управление готовыми звуковыми файлами. С помощью "Музыки" вы можете сами составить мелодию. Особое внимание следует уделить разделу "Текст в речь", с помощью которого озвучивают написанные фразы встроенными в Scratch голосами.

У большинства спрайтов из библиотеки Скретча по-умолчанию есть только один или два своих звука. Так у кота загружен только звук "Мяу". Также через выпадающие меню блоков предлагается записать звук с микрофона.

Однако на вкладке "Звуки" представлены более широкие возможности по выбору и редактированию аудиофайлов.

При нажатии "Выбрать звук" в выпадающем меню внизу вы попадаете во встроенную в Scratch библиотеку звуков.

Чтобы прослушать звук без добавления в проект, надо навести курсор мыши на фиолетовый значок в правом верхнем углу файла.

После добавления файлов, они отображаются в проекте на вкладке "Звуки" и в блоках, предполагающих выбор звука.

Проиллюстрируем небольшой пример озвучивания сценария. Пусть кот подходит к собаке, та на него гавкает, после этого кот убегает.

По логике вещей блок "играть звук Bark до конца" должен быть привязан к собаке. Однако это усложнило бы программу. Например, собаке пришлось бы в цикле ждать касания с котом, а после воспроизведения звука посылать сигнал коту, чтобы тот продолжил выполнять свою часть программы.

Чем отличается команда "играть звук … до конца" от команды "включить звук ..."? В первом случае следующая команда не начнет выполняться, пока звук не будет проигран полностью. Во втором случае как только звук включается, поток выполнения программы переходит к следующему за ним блоку. Звук будет играть в фоне до тех пор, пока не будет проигран весь звуковой файл.

В приведенной выше программе звук галопа звучит немного дольше, чем выполняется цикл после него. Чтобы синхронизировать звук с окончанием забега кота, добавляем блок "остановить все звуки".

Если кот будет бежать слишком медленно, например делать по одному шагу за оборот цикла, то звук завершится раньше, чем кот добежит до края сцены. В этом случае сценарий придется усложнить. Мы не можем просто поместить команду "включить звук Gallop" в тело цикла, потому что в этом случае на каждом обороте цикла будет запускаться новый экземпляр звука. И мы будем постоянно слышать только начало аудиофайла.

Вынесем звучание галопа в отдельный скрипт, который будет запускаться через передачу сообщения, а завершаться, когда кот касается края. Также обратите внимание, что мы заменили команду "включить звук Gallop" на "играть звук Gallop до конца".

В отличие от блоков раздела "Звук" с помощью расширения "Музыка" вы можете составить свою мелодию, используя ноты и различные инструменты.

Темп влияет на скорость воспроизведения всей мелодии.

Размерность бита определяет длительность звучания одной ноты в составе мелодии. Однако для барабанов это работает не так: если указать большое значение для бита, удар по прежнему будет коротким, однако следующий звук сможет быть проигранным только через указанное количество бит.

Чем больше номер ноты (на рисунке выше это число 60), тем выше она звучит.

Рассмотрим сценарий одновременной игры двух "музыкальных рядов". В данном случае флейты и барабанов.

Чтобы оба скрипта одновременно заканчивали свою работу, суммарное количество бит одного должно совпадать с суммой бит другого. Так за одни проход цикла это значение составляет 1.75 бит в обоих случаях.

При этом когда проигрывается вторая нота на флейте (под номером 67), происходит второй удар барабана.

Обе мелодии проигрываются с нарастающим темпом. Команда "установить темп …" распространяется на всю программу, а не только на свой скрипт. Также действует команда "изменить темп на ...".

Задание 1

Изучите блоки расширения "Текст в речь" самостоятельно. Составьте программу, в которой один герой спрашивает у другого куда ему пойти: прямо, направо или налево. Из трех вариантов ответ второго героя должен быть случайным. После этого первый герой говорит: "Хорошо, я пойду ..." (вместо троеточия произносит указанное направление).

Задание 2

В библиотеке Скретча найдите несколько спрайтов животных, у которых есть как минимум еще один костюм кроме основного и подходящий звук. Создайте приложение, в котором при клике по каждому спрайту он издает свой звук и один раз меняет костюмы туда-сюда. Например, при щелчке мышью по птичке она должна чирикнуть и поднять-опустить крылья.

PDF-версия курса с ответами к заданиям


Программирование в Scratch. Курс




Все разделы сайта