Files
BuboQuark/Classes/Patterns/PXo.sc

31 lines
685 B
Python

Pxo {
*new {
arg expression, divisor=1, repeats=inf;
var xoExp = Array.new(maxSize: expression.size);
expression.do({
arg char, i;
if (char == $x, {xoExp.add(1, i)}, {xoExp.add(Rest(), i)})
});
xoExp = xoExp.collect({arg item; item / divisor});
^Pseq.new(xoExp, repeats)
}
}
Ptx {
*new {
arg expression, repeats=inf;
var xoExp = Array.new(maxSize: expression.size);
expression.do({
arg char, i;
switch(char)
{$@} {xoExp.add(2, i)}
{$O} {xoExp.add(1, i)}
{$o} {xoExp.add(0.5, i)}
{$°} {xoExp.add(0.25, i)}
{} {xoExp.add(Rest(), i)};
});
^Pseq.new(xoExp, repeats)
}
}