Одним из самых захватывающих аспектов Sonic Pi является то, что для создания музыки, вы можете писать и изменять код здесь и сейчас. Это похоже на настоящее выступление с гитарой. Значит, при достаточной тренировке, вы сможете взять Sonic Pi с собой на сцену и выступать с ней.
Прежде, чем мы перейдем к деталям того, как Sonic Pi работает, я бы хотел поделиться с вами личным опытом того, что значит “лайв-кодинг”. Не переживайте, если вы пока чего-то из этого (или ничего) не понимаете. Просто держитесь крепче за стул и наслаждайтесь…
Давайте начнем, скопируйте следующий код в пустой буфер:
live_loop :flibble do
sample :bd_haus, rate: 1
sleep 0.5
end
Теперь нажмите кнопку Выполнить, и вы услышите приятный быстрый барабанный бой. В любой момент нажмите кнопку Остановить, чтобы остановить звук. Но не нажимайте её пока что… Вместо этого сделайте вот что:
sleep с 0.5 на значение побольше, например 1.ВыполнитьЛадно, это было довольно просто. Давайте добавим что-нибудь ещё в наш микс. Сверху от sample :bd_haus добавьте строку sample :ambi_choir, rate: 0.3. Ваш код должен выглядеть так:
live_loop :flibble do
sample :ambi_choir, rate: 0.3
sample :bd_haus, rate: 1
sleep 1
end
Время поиграться. Поменяйте частоту - что происходит, когда вы используете высокие, малые, или отрицательные значения? Посмотрите, что произойдет, когда вы поменяете значение rate: для сэмпла :ambi_choir на незначительную величину (например, до 0.29). Что произойдет, если вы выберите очень маленькое значение для sleep? Проверьте, получится ли заставить его играть так быстро, что все упадс ошибкой из-за того, что он не справится с этим (если это всё же произошло, то просто выберите значение побольше для sleep и снова нажмите Выполнить).
Попробуйте закомментировать одну из строк sample. Для этого добавьте # в ее начало:
live_loop :flibble do
sample :ambi_choir, rate: 0.3
# sample :bd_haus, rate: 1
sleep 1
end
Обратите внимание, компьютер проигнорировал её, поэтому мы её не слышим. Это называется комментарием. В Sonic Pi мы можем использовать комментарии, чтобы убирать или добавлять штуки в микс.
Напоследок, позвольте мне оставить вам кое-что забавное, с чем можно поиграть. Возьмите код, приведенный ниже, и скопируйте его в свободный буфер. Не пытайтесь пока полностью разобраться в нем. Просто обратите внимание, что в нём два цикла - то есть две вещи играют по кругу одновременно. Теперь ваш черёд делать то, что получается у вас лучше всего - экспериментировать и развлекаться. Вот пара советов:
rate:, чтобы услышать, как изменится звук.sleep и вы услышите, как оба цикла повторяются по кругу с разными темпами.#) и наслаждайтесь звуками гитары на заднем плане.mix: на число в промежутке от 0 (что соответствует исключению из общего микса) до 1 (полностью сочетается).Не забывайте нажимать Выполнить, и вы услышите изменения в следующий раз, когда петля начнётся заново. Не расстраивайтесь, если в конце музыка будет испорчена. Нажмите Остановить, удалите код из буфера, вставьте свежую копию, и вы снова готовы к творчеству. На ошибках научиться можно быстрее всего…
live_loop :guit do
with_fx :echo, mix: 0.3, phase: 0.25 do
sample :guit_em9, rate: 0.5
end
# sample :guit_em9, rate: -0.5
sleep 8
end
live_loop :boom do
with_fx :reverb, room: 1 do
sample :bd_boom, amp: 10, rate: 1
end
sleep 8
end
Продолжайте играть и экспериментировать до тех пор, пока вам не станет любопытно, как это на самом деле работает, и вы не начнёте думать, что ещё можно сделать. Тогда вы будете готовы к чтению оставшейся части этого учебника.
Так чего же вы ждёте…