Creating Patterns
The following functions will return a pattern. These are the equivalents used by the Mini Notation:
function | mini |
---|---|
cat(x, y) | "<x y>" |
seq(x, y) | "x y" |
stack(x, y) | "x,y" |
timeCat([3,x],[2,y]) | "x@3 y@2" |
polymeter([a, b, c], [x, y]) | "{a b c, x y}" |
polymeterSteps(2, x, y, z) | "{x y z}%2" |
silence | "~" |
cat
slowcat
The given items are concatenated, where each one takes one cycle.
- items (any): The items to concatenate
cat("e5", "b4", ["d5", "c5"]).note() // "<e5 b4 [d5 c5]>".note()
You can also use cat as a chained function like this:
s("hh*4").cat( note("c4(5,8)") )
seq
fastcat, sequence
Like cat, but the items are crammed into one cycle.
seq("e5", "b4", ["d5", "c5"]).note() // "e5 b4 [d5 c5]".note()
Or as a chained function:
s("hh*4").seq( note("c4(5,8)") )
stack
polyrhythm, pr
The given items are played at the same time at the same length.
stack("g3", "b3", ["e4", "d4"]).note() // "g3,b3,[e4,d4]".note()
As a chained function:
s("hh*4").stack( note("c4(5,8)") )
timeCat
arrange
Allows to arrange multiple patterns together over multiple cycles. Takes a variable number of arrays with two elements specifying the number of cycles and the pattern to use.
arrange( [4, "<c a f e>(3,8)"], [2, "<g a>(5,8)"] ).note()
polymeter
polymeterSteps
silence
Does absolutely nothing..
silence // "~"
run
A discrete pattern of numbers from 0 to n-1
n(run(4)).scale("C4:pentatonic") // n("0 1 2 3").scale("C4:pentatonic")
After Pattern Constructors, letβs see what Time Modifiers are available.