суббота, 17 сентября 2022 г.

Неделя программирования в Sonic Pi - было нереально весело! И код для простого UK Garage-трека в этом посте

В первой половине сентября я вернулась к программированию в 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

Вишнудутка Вишновская (Vishnudut1926),
Шри Рамануджа-Сампрадая, Москва18-сентябрь-2022
Перепечатка статьи/отрывков из статьи на других 
онлайн-ресурсах/печатных источниках запрещена
Материал предназначен лишь для печати в моих блогах