Skip to content

Instantly share code, notes, and snippets.

View scztt's full-sized avatar

scott carver scztt

  • Berlin
View GitHub Profile
PparStream : Stream {
var <>initStreamAction, <>endStreamAction;
var priorityQ, <now;
var <injectFunc;
*initClass {
Class.initClassTree(Event);
Event.addEventType(\fork, {
var event, outerEvent, recursionLevel, instrument, embeddingLevel, freq, rest;
@scztt
scztt / PTclip.sc
Last active January 15, 2022 10:56
// Reset `pattern` every `durs` beats.
// If pattern is finished, yield `emptyValue` until we are reset.
// (
// Pdef(\ptclip, Pbind(
// \scale, Scale.bartok,
// \dur, 1/8, \legato, 3,
// \octave, 4,
// \degree, PTclip(
// Prand([0, 1, 3, 6, 8], inf),
+SynthDef {
addReplace {
arg libname, completionMsg, keepDef = true;
var servers;
this.add(libname, completionMsg, keepDef);
if(libname.isNil) {
servers = Server.allRunningServers
} {
// Quarks.install("https://github.com/scztt/OSequence.quark");
// Quarks.install("https://github.com/scztt/Require.quark");
~loaded = Require("LOADER").("HKW-3/*");
~loaded.postEvents;
~loaded.seq.do(_.postln);
~eventStream = ~loaded.seq.asStream;
// An array of all \degree values
~justDegrees = ~loaded.seq.collect(_[\degree]);
(
SynthDef(\player, {
var sig;
sig = PlayBuf.ar(2, \bufnum.kr(0), startPos: 120 * 44100, doneAction:2);
Out.ar(0, sig)
}).add.store;
Pdef(\player).clear;
@scztt
scztt / Loop.scd
Created November 24, 2021 19:57
Loop.scd
(
SynthDef.channelized(\loop, {
|numChannels|
var sig, loopDur, loopStart, loopTrim, buffer, phase, samples;
var rate, loopSamples;
buffer = \buffer.kr;
loopDur = \loopDur.kr(1);
loopStart = \loopStart.kr(0);
Subdivision : Operand {
var <>scale, <>offset, <>isRest, <>grid;
*new {
|value, scale=1, offset=0, grid=nil, isRest=false|
^(super.new(value)
.scale_(scale)
.offset_(offset)
.grid_(grid)
.isRest_(isRest));
// Play many patterns according to their own delta's', composing the events from bottom to top.
// Deltas of first pattern are responsible for timing of output events
//
// (
// Pdef(\ptchain).clear;
// Pdef(\ptchain, PTChain(
// Pbind(
// \dur, Pseg([1/32, 1/2, 1/32], [16, 16], \exponential, inf),
// \velocity, Pwhite(40, 127),
// \strum, Pkey(\dur) / 2
@scztt
scztt / Gdef.sc
Created September 15, 2021 15:36
Gdef : Singleton {
classvar <groupOrder, rebuildBundle, <nodeMap;
var <group, <afterList, <beforeList, <server, <>permanent=true;
classvar blockUpdate=false, updateCount=0;
*initClass {
[Event, EventTypesWithCleanup].do(Class.initClassTree(_));
groupOrder = LinkedList();
nodeMap = IdentityDictionary();
```
Event.addEventType(\pattern, {
var pat, event, outerEvent, recursionLevel, instrument, embeddingLevel, freq, rest;
var args, defaults, timingOffset;
~pattern = ~pattern ?? { ~instrument };
if (~pattern.isKindOf(Function)) {
defaults = ~pattern.def.prototypeFrame;
args = ~pattern.def.argNames.collect {