JavaScript API 🌀 Bulka

Функции Pattern

Давайте изучим всё о функциях для создания и модификации patterns. В основе Strudel всё состоит из функций.

Например, всё, что вы можете сделать с помощью Mini-Notation, также можно сделать с помощью функции. Этот Pattern в Mini Notation:

эквивалентен этому Pattern без Mini Notation:

Аналогично, есть эквивалентная функция для каждого аспекта mini notation.

Какое представление использовать - вопрос контекста. Как правило, функции лучше подходят в более широком контексте, в то время как mini notation более практична для отдельных ритмов.

Ограничения Mini Notation

Хотя Mini Notation - это мощный способ писать ритмы лаконично, у неё также есть ограничения. Возьмём этот пример:

stack(
note("c2 eb2(3,8)").s('sawtooth').cutoff(800),
s("bd(5,8), hh*8")
)

Здесь мы используем mini notation для отдельных ритмов, при этом используя функцию stack для их микширования. Хотя stack также доступен как , в mini notation, мы не можем использовать его здесь, потому что у нас разные типы звуков.

Комбинирование Patterns

Вы можете свободно смешивать JS patterns, mini patterns и значения! Например, этот pattern:

cat(
stack("g3","b3","e4"),
stack("a3","c3","e4"),
stack("b3","d3","fs4"),
stack("b3","e4","g4")
).note()

…эквивалентен:

cat(
"g3,b3,e4",
"a3,c3,e4",
"b3,d3,f#4",
"b3,e4,g4"
).note()

… а также:

Хотя mini notation почти всегда короче, у неё есть только несколько модификаторов: * / ! @. При использовании JS patterns можно сделать гораздо больше.

Далее давайте посмотрим, как вы можете создавать patterns