Неполные сэмплы

Этот раздел станет заключительным в нашем исследовании воспроизведения сэмплов в Sonic Pi. Давайте кратко повторим уже изученное. Пока мы только разбирались в том, как включать сэмплы:

sample :loop_amen

Потом мы рассмотрели то, как мы можем менять темп сэмплов, например для воспроизведения их на половине скорости:

sample :loop_amen, rate: 0.5

Затем, мы увидели, как можно постепенно усиливать сэмпл (совместим это с уменьшённой вдвое скоростью):

sample :loop_amen, rate: 0.5, attack: 1

Еще мы узнали как сделать начало сэмпла более резким за счет задания sustain: явного значения и установки коротких атаки и затухания:

sample :loop_amen, rate: 2, attack: 0.01, sustain: 0, release: 0.35

Однако, вам бы понравилось, если бы не надо было всякий раз начинать сэмпл с начала? Разве не здорово было бы, если бы можно было играть сэмпл не до конца?

Выбираем точку старта

Возможно выбрать произвольную начальную точку для сэмпла, задавая ее в качестве значения в диапазоне от 0 до 1. 0 - начало сэмпла, 1 - его конец, а 0.5 - это середина. Попробуем сыграть только вторую половину амен-брейка:

sample :loop_amen, start: 0.5

А как насчет последней четверти:

sample :loop_amen, start: 0.75

Выбираем точку окончания

Похожим образом разрешается выбирать конечную точку сэмпла как значение между 0 и 1. Прервем амен-брейк на середине:

sample :loop_amen, finish: 0.5

Указываем начало и конец

Естественно, мы можем комбинировать оба произвольных фрагмента звукового файла. Как насчет выбрать небольшой участок в центре:

sample :loop_amen, start: 0.4, finish: 0.6

Что случится, если установить старт после финиша?

sample :loop_amen, start: 0.6, finish: 0.4

Круто! Он играет задом-наперед!

Соединяем со скоростью

Можно объединить эту новую способность играть выбранные сегменты аудио с нашим знакомым rate:. Например, таким образом воспроизведется очень маленькая секция из середины амен-брейка очень медленно:

sample :loop_amen, start: 0.5, finish: 0.7, rate: 0.2

Соединяем с огибающими

Наконец, все это возможно соединить с известными нами ADSR-огибающими, чтобы получить интересный результат:

sample :loop_amen, start: 0.5, finish: 0.8, rate: -0.2, attack: 0.3, release: 1

Попробуйте также комбинировать сэмплы, не ограничивайте свою фантазию…