Skip to content

Instantly share code, notes, and snippets.

@bwestergard
Created August 27, 2019 18:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bwestergard/b9a1c4b99744a01b16bfde88f54e76cb to your computer and use it in GitHub Desktop.
Save bwestergard/b9a1c4b99744a01b16bfde88f54e76cb to your computer and use it in GitHub Desktop.
Supercollider: Scale Rotations (Modes)
~scaleA = [0,2,4,5,7,9,11];
~scaleB = ~scaleA.rotate(3);
(
a = Pbind(*[
scale: Pn( Pstep([
~scaleA,
~scaleA.rotate(1),
~scaleA.rotate(2),
~scaleA.rotate(2),
~scaleA.rotate(5),
~scaleA.rotate(4),
~scaleA.rotate(3),
~scaleA.rotate(2),
], 2 ) )
]);
b = Pbind(*[
degree: Pseq([3,2,1,0, 4,3,2,1],inf),
dur: Pstep([1,2,3,2],4,inf) / 8,
legato: 1/8,
octave: 6
]);
c = Pbind(*[
degree: [0,2,4-7,6],
dur: Pseq([3,3,2], inf) / 8,
legato: 1/4,
db: -30
]);
q = Pbind(*[
degree: Pseq([0,0,4,\rest,0,4,\rest,0], inf),
octave: 3,
legato: 3/4,
dur: 1 / 8,
db: -20
]);
d=Pchain(Ppar([b,c,q]), a);
d.play;
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment