chucklib-livecode v0.3
I’m releasing chucklib-livecode v0.3, with a major update to the generator framework. It is now much easier to compose generators together, to get complex behaviors from simple functions.
I’ve also cleaned up the new version to be released as a Quark extension for SuperCollider. It isn’t in the master Quark list yet, but soon (I’ve submitted the pull request, awaiting approval). In the meantime, you can install it directly:
Quarks.install("https://github.com/jamshark70/ddwChucklib-livecode");
Some demonstrations:
// Isorhythmic arpeggiation
(
BP(\y).free;
PR(\abstractLiveCode).chuck(BP(\y), nil, (
event: (eventKey: \default),
defaultParm: \degree,
parmMap: (degree: (isPitch: true))
));
)
TempoClock.tempo = 140/60;
/y = "12 4| 5 6| 12 |45";
/y+;
/y = "\seq("** *| * *| ** |**", "12456", "*")";
/y = "\ins(\seq("** *| * *| ** |**", "12456", "*"), "*", 7, 0.25)";
/y = "\seq(\ins(\seq("** *| * *| ** |**", "12456", "*"), "*", 7, 0.25), "6,214", "*")";
/y = "\seq("** *| * *| ** |**", "12456", "*")::\ins(, "*", 7, 0.25)::\seq(, "6,214", "*")";
/y-;
// Reich, "Piano Phase"-ish
(
BP(\y).free;
PR(\abstractLiveCode).chuck(BP(\y), nil, (
event: (eventKey: \default, pan: -0.6),
defaultParm: \degree,
parmMap: (degree: (isPitch: true))
));
BP(\z).free;
PR(\abstractLiveCode).chuck(BP(\z), nil, (
event: (eventKey: \default, pan: 0.6),
defaultParm: \degree,
parmMap: (degree: (isPitch: true))
));
)
TempoClock.tempo = 112/60;
/y = "\seq("*^*^*^*^*^*^", "268", "*")::\seq(, "37", "^")";
/z = "\seq("*^*^*^*^*^*^", "268", "*")::\seq(, "37", "^")";
/y/z+;
/z = "\seq("*^*^*^*^*^*^", "268", "*")::\seq(, "37", "^")::\rot(, -0.25)";
/z = "\seq("*^*^*^*^*^*^", "268", "*")::\seq(, "37", "^")::\rot(, -0.5)";
/z = "\seq("*^*^*^*^*^*^", "268", "*")::\seq(, "37", "^")::\rot(, -0.75)";
/y/z-;
back to index...