В первой половине сентября я вернулась к программированию в Sonic Pi и унеслась на целую неделю, т.е. практически всю неделю я зависала в этой программе, выдумывая всякие причудливые музыкальные коды.
По сути, Sonic Pi - это DAW, но в отличие от FL Studio, Studio One и прочих DAW, музыка в этой системе пишется с помощью кода. Из преимуществ системы я особенно отмечу богатейшие функции аккордов и гамм, т.е. с помощью простых строк кода вы можете создавать сложные аккордовые прогрессии с различными инверсиями и т.д.
Система полностью бесплатна, создал её Sam Aaron и огромное уважение ему за то, что он написал детальный tutorial к системе. Насколько я помню, раньше этот tutorial можно было скачать в форме примерно 300-страничной и бесплатной pdf-книги, но теперь весь tutorial перевели в чистую онлайн-форму - https://sonic-pi.net/tutorial.html.
Кроме этого, есть ещё одна бесплатная pdf-книга, её можно скачать здесь - https://magpi.raspberrypi.com/books/essentials-sonic-pi-v1/pdf/download.
Лично я прочла и разобрала обе книги. Тяжело ли обучиться программированию на Sonic Pi? Вот на этот вопрос ответить сложно.
Однозначно нужен отличный английский, чтобы вдумчиво прочитать книги. Кроме того, обязательно нужно знать английскую нотацию, т.е. умение отличить "D Major Scale" от "F-Sharp Lydian" и т.д. В целом, нужно знать музыкальную теорию, т.е. Circle of Fifths, правила построения аккордовых прогрессий (vi–ii–V–I и т.п.) и т.д.
Чисто технарская, железная база также очень необходима, так как для программирования нужно понимать, что такое ADSR, Cutoff и т.п., уметь отличать синтезатор Prophet от TB-303 и знать прочие понятия из мира если не живых, то хотя бы софтовых синтезаторов. В общем, предполагается, что программер до этого работал с живыми синтезаторами и может быстро перевести эти понятия в простой код.
И нужно хотя бы базовое понимание азов программирования, т.е. умение отличить variable от array и т.д.
После недели зависания в Sonic Pi мне, как это обычно бывает, вдруг резко надоело пилить коды и я перебралась в Jeskola Buzz - это бесплатная DAW, которая унаследовала часть архитектуры от древних Amiga-трекеров - в Buzz тоже есть простор для всяких забав, особенно на ниве TB-303 и acid-house.
После экспериментов в Sonic Pi у меня осталось много сниппетов и черновиков. Вот этот биток в стиле UK Garage/deep-house, получился особенно удачным, поэтому ниже я представляю полный код (послушать результат в m4a-формате можно на box, dropbox, teknik):
live_loop :ukgarage do
if one_in(3)
use_bpm 480
else
use_bpm 60
end
play [(chord :d4, :maj11), (chord :fs4, :m11),
(chord :a3, :maj9), (chord :cs3, :m11)].tick
sleep 1
end
live_loop :beat_bd do
sample :bd_ada, amp: 1.5
sleep (ring 0.5, 0.5, 0.5, 0.25, 0.25).tick
end
live_loop :snaro do
sync :beat_bd
sample :sn_dolf, rate: 2, amp: 1.2
sleep (ring 1, 0.5, 0.05).shuffle.tick
end
live_loop :beat_hh1 do
sample :drum_cymbal_closed, amp: 0.7, rate: 2.5
sleep (ring 0.1, 0.25, 0.05).shuffle.tick
end
live_loop :beat_hh2 do
sample :drum_cymbal_closed, amp: 0.7, rate: 0.5
sleep (ring 0.5, 0.25).shuffle.tick
end