5.1 Блоки

# Блоки

Структура, которая будет попадаться вам в Sonic Pi особенно часто, - это блок. Блоки позволяют нам делать разные полезные вещи с большими участками кода. Например, при помощи параметров синтов и сэмплов мы могли изменять что-то, что происходило в одной строке. Однако, иногда нам нужно сделать что-то значительное, что касается множества строк кода. Например, мы можем решить играть их по кругу, добавить эффект реверберации всего к одному из пяти повторов и так далее. Рассмотрим следующий код:

```
play 50
sleep 0.5
sample :elec_plip
sleep 0.5
play 62
```

Чтобы сделать что-то с куском кода, нам надо сказать Sonic Pi, где этот блок кода *начинается*, и где он *заканчивается*. Для его начала мы используем `do`, а для обозначения конца - `end`. Пример:

```
do
  play 50
  sleep 0.5
  sample :elec_plip
  sleep 0.5
  play 62
end
```

Все же он ещё не является завершённым и не будет работать (попробуйте и получите сообщение об ошибке), так как мы не сообщили Sonic Pi, что мы хотим делать с этим *блоком \*do/end*. Этого можно добиться, если написать некий специальный код перед `do`. Далее мы увидим много примеров этих специальных кусочков кода. Пока лишь важно понять, что оборачивание вашего кода в `do` и `end` сообщает Sonic Pi, что вы хочтите сделать что-то особенное с этим блоком.
