September 3, 2025

осцилляторы

осцилляторы представляют собой непрерывно меняющиеся паттерны. если не указано иное, осцилляторы дают минимальное значение 0 и максимальное значение 1, повторяясь один раз за цикл.

что такое осциллятор?

осцилляторы - непрерывные паттерны, то есть не имеющие никакой структуры, и должны использоваться с паттерном, который её имеет. Например, d1 $ sound "bd*8" >| pan sine не будет работать корректно, потому что оператор >| указывает Tidal брать структуру справа, а у sine её нет, поэтому Tidal будет просто запускать события с фиксированной частотой (в зависимости от вашей конфигурации, это может быть очень быстро). d1 $ sound "bd*8" |> pan sine лучше, потому что |> берёт структуру слева, поэтому будут звучать восемь бас-бочек, значения панорамирования которых будут сэмплироваться из синусоиды для каждого из восьми событий. если паттерн имеет тип Fractional a => Pattern a, это означает, что они могут использоваться как в виде чисел с плавающей запятой, так и в виде (рациональных) значений времени.

использование осцилляторов

sine

sine - это синусоидальная волна. воспроизведя этот пример, вы должны услышать, как звук медленно перемещается из левого динамика в правый:

сosine

cosine - это sine, сдвинутый во времени на четверть периода. она звучит примерно так же, как sine, показанный выше:

square

square начинается с 0 и доходящая до 1 в середине цикла

tri

tri, начинающаяся с 0, затем линейно поднимающаяся до 1 в середине цикла, а затем снова опускающаяся:

smooth

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

обратите внимание, как звук постепенно перемещается слева направо, затем к центру, затем снова направо и, в итоге, возвращается налево.

непериодические осцилляторы

rand

бесконечно подробный поток (псевдо) случайных чисел.

irand

функция преобразования целого числа (выдающая максимум) в поток (псевдо) случайных целых чисел. Подробнее см. на странице справки rand:

масштабирующие осцилляторы

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

ускорение/замедление осцилляторов

осцилляторы — это паттерны. это значит, что вы можете ускорять или замедлять их, используя те же функции, что и обычно (fast, slow и т. д.):