Посмотрите на этот код:
play 70
Отсюда всё берет свое начало. Давайте, скопируйте и вставьте его в окно кода вверху приложения (большое белое пространство под кнопкой Выполнить
). Затем, нажмите Выполнить
…
Впечатляет. Нажмите заново. Снова. И снова…
Ого, с ума сойти, уверен, вы бы могли просидеть так целый день. Но подождите, до того, как вы растворитесь в бесконечном потоке звуков, попробуйте изменить число:
play 75
Слышите разницу? Попробуйте число поменьше:
play 60
Вот, меньшее число дает более низкий звук, а большее число дает более высокий звук. Прямо как на пианино. Клавиши в нижней части пианино (слева) звучат ниже, а клавиши в верхней части пианино (правая сторона) - выше. На самом деле, числа имеют прямое отношение к клавишам пианино. play 47
означает “сыграй сорок седьмую ноту на пианино”. То есть play 48
- это на одну ноту выше (следующая клавиша справа). Так сложилось, что нота “До” четвертой октавы имеет номер 60. Попробуйте сыграть её: play 60
.
Не волнуйтесь, если для вас это ничего не значит - у меня было то же самое, когда я только начинал. Сейчас важно то, что меньшие числа дают более низкие звуки, а большие числа дают более высокие звуки.
Играть одну ноту весьма забавно, но играть несколько нот сразу ещё лучше. Попробуйте:
play 72
play 75
play 79
Звучит джазово! Итак, когда вы пишете play
много раз, все ноты играют в одно и то же время. Попробуйте самостоятельно - какие числа звучат вместе хорошо? Какие звучат ужасно? Экспериментируйте, исследуйте и вы выясните это сами.
Играть ноты и аккорды весело, а как насчет мелодий? Что, если вы хотите играть одну ноту за другой, а не все вместе? Что же, это легко. Просто нужно вставить sleep
между ними:
play 72
sleep 1
play 75
sleep 1
play 79
Как мило, маленькое арпеджио. Что же значит 1
в sleep 1
? Ну, это означает продолжительность паузы. Вообще-то, это означает задержку на время одной доли такта, но, пока что будем считать, что это значит спать одну секунду. А вдруг мы захотим, чтобы наше арпеджио стало немного быстрее? Тогда надо указать значение для паузы покороче. Как насчет половины, то есть 0.5
:
play 72
sleep 0.5
play 75
sleep 0.5
play 79
Можно заметить: мелодия стала играть быстрее. Попробуйте сами поменять время и используйте разные продолжительности и ноты.
Интересно попробовать значения между нотами, например play 52.3
или play 52.63
. Совсем не нужно держаться стандартных целых чисел. Развлекайтесь и получайте удовольствие.
Для тех, кто уже немного знаком с нотной грамотой (не волнуйтесь, если вы не знаете о чём речь - для веселья она вам не нужна), может быть интересно записать мелодию, используя названия нот, такие как “До” (C) и “Фа-диез” (F#), а не числа. Sonic Pi предусмотрел это. Можно делать так:
play :C
sleep 0.5
play :D
sleep 0.5
play :E
Просто помните, что перед нотой должно стоять двоеточие :
. Тогда она станет розовой. Ещё можно указывать октаву, добавляя её номер после названия ноты:
play :C3
sleep 0.5
play :D3
sleep 0.5
play :E4
Если хотите сделать ноту на полтона выше, поставьте s
после её имени, то есть play :Fs3
. А когда нужен бемоль, обозначьте это при помощи b
, то есть play :Eb3
.
А теперь, дайте себе волю, и как следует повеселитесь, придумывая собственные мелодии.