Final composition
Here is my final piece using supercollider linked into logic where I used the ‘Steinway Piano Hall’ as my software instrument.
s.boot
MIDIClient.init(0, 1);
m = MIDIOut(0, MIDIClient.destinations[0].uid);
//this is the scale i used C – D – Eflat – F – G -Aflat – Bflat – Bnatural – C so its T-S-T-T-S-T-S-S-T.
(
Pdef(\a,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([1,2,3,4,5,6,7,8,9]-1, inf),
\dur, 1,
\db, -4,
\octave, 5
)
)
)
(
//the piece starts with one note playing and then gradually i add more notes.
(
Pdef(\b,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([1]-1, 8),
\dur, 1,
\db, Pseq([-8,-6,-4,-2],2),
\octave, 7
)
)
);
(
Pdef(\c,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([3]-1,16),
\dur, 1/8,
\db, Pseq([-7,-6,-4,-2,-8,-7,-4,-2], 2),
\octave, 7
)
)
);
(
Pdef(\d,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([2,4]-1,8),
\dur, 1/2,
\db,Pseq([-8,-6],8),
\octave, 7
)
)
);
(
Pdef(\bb,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([1]-1, 16),
\dur, 1/8,
\db, Pseq([-8,-6,-4,-2,-8,-6,-4,-2],16),
\octave, 8
)
)
);
(
Pdef(\bbb,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([1]-1, 16),
\dur, 1/8,
\db, Pseq([-10,-8],16),
\octave, 8
)
)
);
//Then i start my piece by playing my scale and then i use Prand to add more notes
(
Pdef(\f,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([3,5,7,10,12]-1,5),
\dur, 1/4,
\db, Pwhite(-9,-2),
\octave, 5
)
)
);
(
Pdef(\h,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([3,5,7,10,11]-1,12),
\dur, 1/4,
\db,Pwhite(-4,0),
\octave, 6
)
)
);
(
Pdef(\hh,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([3,5,7,10,11]-1,12),
\dur, 1/8,
\db,Pwhite(-4,0),
\octave, 6
)
)
);
(
Pdef(\i,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([3,5,7,10]-1,12),
\dur, 1/4,
\db,Pwhite(-5,0),
\octave, 7
)
)
);
(
Pdef(\j,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pxrand([1,2,3,4, \nil]-1,10),
\dur, 1/8,
\db, Pwhite(-9,0),
\octave, 7
)
)
);
(
Pdef(\q,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pxrand([1,2,3,4, \nil]-1,10),
\dur, 1/4,
\db, Pwhite(-9,0),
\octave, 7
)
)
);
//i transpose and go a semitone up so now its Csharp – Dflat – E – Fsharp – Gsharp – A – B – C – Csharp
(
Pdef(\k3,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([1,2,3,4,5,6,7,8,9]-1),
\dur,1,
\db, -2,
\octave,5,
\ctranspose,1
)
)
);
(
Pdef(\k,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([3,\nil,5,7,\nil,10,11]-1,2),
\dur,1/8,
\db, -2,
\octave, 7,
\ctranspose, 1
)
)
);
(
Pdef(\kk,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([3,\nil,5,7,\nil,10,11]-1,2),
\dur, 1/4,
\db, -2,
\octave, 6,
\ctranspose, 1
)
)
);
(
Pdef(\o,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([3,5,7,\nil,10]-1,4),
\dur, 1/2,
\db,Pwhite(-4,0),
\octave,Prand([ 8,6]),
\ctranspose,1
)
)
);
(
Pdef(\oo,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([3,5,7,\nil,10]-1,4),
\dur, 1/4,
\db,Pwhite(-4,0),
\octave,7,
\ctranspose,1
)
)
);
(
Pdef(\ooo,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([3,5,7,\nil,10]-1,4),
\dur, 1/8,
\db,Pwhite(-4,0),
\octave,6,
\ctranspose,1
)
)
);
(
Pdef(\tt,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([1,2,3,4,5,6,7]-1,7),
\dur, 1/8,
\db, Pwhite(-1,-4),
\octave, Pxrand([4,5],7),
\ctranspose, 1
)
)
);
//i transpose again and go a minor 3rd up so now its Eflat – F – Fsharp – Aflat – Bflat – B – Csharp – D – Eflat
(
Pdef(\jj3,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([1,2,3,4,5,6,7,8,9]-1,inf),
\dur, 1,
\db, -4,
\octave, 5,
\ctranspose, 3
)
)
);
(
Pdef(\jj,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([1,2,3,4,5,6,7]-1,7),
\dur, 1/8,
\db, Pwhite(-1,-4),
\octave, Pxrand([6,5],7),
\ctranspose, 3
)
)
);
(
Pdef(\ii,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pxrand([3,\nil, 5,7,\nil,10]-1,12),
\dur, 1/8,
\db,Pwhite(-4,0),
\octave, Prand([4,5],12),
\ctranspose,3
)
)
);
(
Pdef(\jj2,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Prand([1,2,3,4]-1,4),
\dur, Prand ([1/4,1/2],4),
\db, Pwhite(-7,0),
\octave, Pxrand([5,4],4),
\ctranspose, 3
)
)
);
(
Pdef(\ii2,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pxrand([3,5,7,\nil,10]-1,5),
\dur, 1/8,
\db,Pwhite(-5,0),
\octave, Prand([4,3],5),
\ctranspose,3
)
)
);
// and then i go back to my original scale
(
Pdef(\d3,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([2,4,2,\nil,4]-1,5),
\dur, 1/2,
\db,Pseq([-8,-2],5),
\octave, 7
)
)
);
(
Pdef(\f4,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([3,\nil,5,7,\nil,10,12]-1,7),
\dur, 1/4,
\db, Pwhite(-6,-4),
\octave, 5
)
)
);
(
Pdef(\g3,Pbind(\type, \midi, \chan, 0, \midiout, m,
\scale, [ 0, 2, 3, 5, 7, 8, 10, 11, 12],
\degree, Pseq([3,\nil,3,5,10,\nil,3,7,]-1,8),
\dur, 1/8,
\db, Pwhite(-4,-1),
\octave, 3
)
)
);
)
//this is how my piece is laid out and played
(
(
Pseq( [Pdef(\b)],1)
++
Ppar( [Pdef(\b), Pdef(\c)],1)
++
Ppar( [Pdef(\b), Pdef(\c), Pdef(\d)],1)
++
Ppar( [Pdef(\c), Pdef(\d), Pdef(\bb)],1)
++
Pseq( [Pdef(\bb)],2)
++
Ppar( [Pdef(\bbb),Pdef(\f)],1)
++
Ppar( [Pdef(\f), Pdef(\h)],2)
++
Ppar( [Pdef(\hh), Pdef(\i)],2)
++
Ppar( [Pdef(\i), Pdef(\j)],2)
++
Ppar( [Pdef(\f), Pdef(\q)],2)
++
Pseq( [Pdef(\q)],3)
++
Ppar( [Pdef(\kk)],1)
++
Ppar( [Pdef(\kk), Pdef(\k)],1)
++
Ppar( [Pdef(\k), Pdef(\o)],2)
++
Pseq( [Pdef(\oo)],2)
++
Pseq( [Pdef(\ooo)],4)
++
Pseq( [Pdef(\jj)],4)
++
Ppar( [Pdef(\jj), Pdef(\ii)],2)
++
Ppar( [Pdef(\jj), Pdef(\jj2)],2)
++
Ppar([Pdef(\jj2), Pdef(\ii2)],2)
++
Pseq([Pdef(\ii2)],2)
++
Ppar([Pdef(\d3), Pdef(\f4), Pdef(\g3)],2)
).play
)