# Пять техник лайв-кодинга

В этом уроке мы рассмотрим, как можно начать относиться к Sonic Pi как к настоящему инструменту. Поэтому нам нужно начать думать о коде совершенно по-другому. Лайвкодеры думают о коде аналогично тому, как скрипачи думают о своем смычке. Фактически, точно так же, как скрипач может применять различные техники использования смычка для создания разных звуков (длинные медленные движения против коротких быстрых ударов), мы исследуем пять основных методов лайвкодинга, которые позволяет Sonic Pi. К концу этой статьи вы сможете начать практиковаться для собственных лайвкодинг-перформансов.

## 1. Помнить сокращения

Первый совет для лайвкодинга с Sonic Pi - начать использовать сокращения. Например, вместо того, чтобы тратить драгоценное время на то, чтобы дотянуться до мыши, переместить ее на кнопку Выполнить и сделать клик, вы можете просто одновременно нажать «alt» и «r», что намного быстрее и позволяет держать пальцы на клавиатуре наготове. для дальнейшего редактирования. Вы можете найти сокращения для основных кнопок вверху окна программы, наведя на них курсор мыши. См. Раздел 10.2 встроенного руководства для полного списка сокращений.

При выступлении будет забавно добавить немного изящества движениям пальцев при нажатии комбинации клавиш. Например, часто полезно общаться с аудиторией, когда вы собираетесь внести изменения - так что приукрашивайте свое движение, нажимая `alt-r` так же, как это делал бы гитарист, берущий крутой аккорд.

## 2. Складывайте свои звуки вручную

Теперь вы можете мгновенно запускать код с клавиатуры. И вы сразу же можете применить этот навык для нашей второй техники, которая заключается в наложении звуков вручную. Вместо ‘композирования’ с использованием большого количества вызовов `play` и `sample`, разделенных вызовами `sleep`, у нас будет один вызов `play`, который мы будем запускать вручную с помощью `alt-r`. Давай попробуем. Введите следующий код в свободный буфер:

    synth :tb303, note: :e2 - 0, release: 12, cutoff: 90

Теперь нажмите Выполнить, и пока это звучит, измените код на следующее, чтобы запустить еще четыре ноты:

    synth :tb303, note: :e2 - 4, release: 12, cutoff: 90

Теперь снова нажмите Выполнить, чтобы услышать оба звуковых слоя одновременно. Это связано с тем, что кнопка `Выполнить` в Sonic Pi не ждет завершения предыдущего кода, а сразу же запускает измененный код на выполнение. Это означает, что вы можете легко наложить много звуков вручную с незначительными или существенными изменениями между каждым запуском. Например, попробуйте изменить оба параметра `note:` и `cutoff:`, а затем повторно запустить.

Вы также можете попробовать эту технику с длинными абстрактными сэмплами. Например:

    sample :ambi_lunar_land, rate: 1

Запустите сэмпл, а затем постепенно делите параметр `rate:` вдвое между каждым нажатием `Выполнить`. Начав с`1` , введите `0.5` , затем ` 0.25`и наконец` 0.125`. Можете даже попробовать некоторые отрицательные значения, такие как` -0.5`. Накладывайте звуки один на другой и посмотрите, где вы можете это использовать. И, наконец, попробуйте добавить немного эффектов.

Работая таким образом с простыми строками кода, вы позволяете аудитории, не знакомой с Sonic Pi, следить за тем, что вы делаете, и соотносить код, который они могут прочитать, со звуками, которые они слышат.

## 3. Овладейте живыми циклами

При работе с более ритмичной музыкой часто бывает сложно вручную все запустить вовремя. Вместо этого часто лучше использовать `live_loop`. Это обеспечивает повторение вашего кода, а также дает возможность редактировать код для следующего цикла. Он также будет запускаться одновременно с другими `live_loop`, что означает, что вы можете объединить их вместе друг с другом и руководить их запуском. Загляните в раздел 9.2 встроенного руководства для получения дополнительной информации о работе с живыми циклами.

При выступлении не забывайте использовать параметр `sync:` функции `live_loop`, чтобы позволить вам вернуться в такт после случайных ошибок выполнения кода, которые останавливают живой цикл. Если у вас уже есть параметр `sync:`, указывающий на другой допустимый `live_loop`, то вы можете быстро исправить ошибку и перезапустить код, не потеряв такт.

## 4. Используйте мастер-миксер

Один из приятных секретов Sonic Pi заключается в том, что у него есть мастер-микшер, через который проходит весь звук. Этот микшер имеет встроенный фильтр низких частот и фильтр высоких частот, так что вы можете легко вносить глобальные изменения в звук. Доступ к функциональности главного микшера можно получить через функцию `set_mixer_control!`. Например, когда какой-то код работает и производит звук, введите следующее в свободный буфер и нажмите `Выполнить`:

` set_mixer_control! lpf: 50 `

После запуска этого кода ко всем уже существующим и новым звукам будет применен фильтр низких частот, и, следовательно, они будут звучать более приглушенно. Заметьте, это означает, что эти значения микшера остаются таковыми, пока не будут изменены снова. Однако, если вы хотите, вы всегда можете вернуть микшер обратно в состояние по умолчанию с помощью `reset_mixer!`. Вот некоторые из поддерживаемых параметров: `pre_amp:`, `lpf:` `hpf:` и `amp:`. Полный список см. Во встроенной документации для `set_mixer_control!`.

Используйте параметры микшера `* _slide` для плавного скольжения одного или нескольких значений параметров во времени. Например, чтобы медленно передвинуть срез фильтр низких частот с текущего значения вниз до 30, используйте следующее:

    set_mixer_control! lpf_slide: 16, lpf: 30

Затем вы можете быстро вернуться к высокому значению с помощью:

    set_mixer_control! lpf_slide: 1, lpf: 130

При выступлении часто полезно держать один буфер свободным, чтобы работать с микшером.

## 5. Практика

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

Во время выступления вы обнаружите, что чем больше вы практикуетесь, тем более расслабленным вы будите перед аудиторией. Практика также даст вам богатый источник для извлечения уроков. Это может помочь вам понять, какие модификации будут интересны, а также как лучше работать с текущими звуками.

## Соединим всё вместе

В этом месяце, вместо того, чтобы дать вам последний пример, который объединяет все пройденное, давайте расстанемся, бросив вызов. Проверьте, сможете ли вы потратить неделю, практикуя одну из описанных идей каждый день. Например, один день практикуете запуск вручную, на следующий выполняете базовую работу с `live_loop`, а на другой день играете с мастер-микшером. Затем повторите это. Не беспокойтесь, если поначалу будет казаться, что все происходит медленно и неуклюже - просто продолжайте практиковаться, и вы станете лайвкодером для реальной аудитории, прежде чем успеете это осознать.