added drum maching part (hydrogen)
parent
cdf6b5d318
commit
ab2b9f4839
|
@ -1,12 +1,7 @@
|
||||||
"/home/rob/gtr/motherMIDISetup.scd".load;
|
"/home/rob/algomom/sc/motherMIDISetup.scd".load;
|
||||||
|
|
||||||
TempoClock.default.tempo = 60/60;
|
TempoClock.default.tempo = 60/60;
|
||||||
|
|
||||||
~host = NetAddr("localhost", 4859); // address de PROCESSING
|
|
||||||
|
|
||||||
Pfunc
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
~xx = (
|
~xx = (
|
||||||
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
||||||
|
|
|
@ -1,77 +1,61 @@
|
||||||
/*RUN*/
|
// /*RUN*/
|
||||||
|
|
||||||
|
s.boot;
|
||||||
|
|
||||||
|
//"/home/rob/algomom/sc/motherPatterns.scd".load;
|
||||||
|
|
||||||
"/home/rob/gtr/motherPatterns.scd".load;
|
|
||||||
|
|
||||||
MIDIClient.init;
|
MIDIClient.init;
|
||||||
|
MIDIClient.list;
|
||||||
|
MIDIClient.destinations;
|
||||||
|
|
||||||
~m32_1 = MIDIOut.newByName("MidiSport 4x4", "MidiSport 4x4 MIDI 1").latency_(Server.default.latency);
|
// connect for korg in
|
||||||
|
MIDIIn.connectAll
|
||||||
|
|
||||||
~m32_2 = MIDIOut.newByName("MidiSport 4x4", "MidiSport 4x4 MIDI 2").latency_(Server.default.latency);
|
//n = NetAddr("192.168.178.166", 47120);
|
||||||
|
n = NetAddr("localhost", 47120);
|
||||||
|
|
||||||
// setup of mother 32 noteon events
|
/*~m32_1 = MIDIOut.newByName("MidiSport 4x4", "MidiSport 4x4 MIDI 1").latency_(Server.default.latency);
|
||||||
|
~m32_2 = MIDIOut.newByName("MidiSport 4x4", "MidiSport 4x4 MIDI 2").latency_(Server.default.latency);*/
|
||||||
|
|
||||||
Pdef(\m_1, Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_1)).play(quant: 4);
|
~m32_1 = MIDIOut.newByName("SuperCollider", "in0").latency_(Server.default.latency);
|
||||||
|
~m32_2 = MIDIOut.newByName("SuperCollider", "in1").latency_(Server.default.latency);
|
||||||
|
|
||||||
Pdef(\m_2, Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_2)).play(quant: 4);
|
|
||||||
|
|
||||||
// CC Control Message 1 ---> TOP Mother32 ASSIGN OUT
|
// //////////////////////////////////////////////////////////////////
|
||||||
( Pdef(\m_1_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_1,
|
//
|
||||||
\ctlNum, 1, \control, Pexprand(72,127, inf), \dur, ~r1)).play(quant:4));
|
// // setup of mother 32 noteon events
|
||||||
|
//
|
||||||
|
// Pdef(\m_1, Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_1)).play(quant: 4);
|
||||||
|
//
|
||||||
|
// Pdef(\m_2, Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_2)).play(quant: 4);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// // CC Control Message 1 ---> TOP Mother32 ASSIGN OUT
|
||||||
|
//
|
||||||
|
// ( Pdef(\m_1_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_1, \ctlNum, 1, \control, Pexprand(72,127, inf), \dur, ~r1)).play(quant:4));
|
||||||
|
//
|
||||||
|
// // CC Control Message 1 ---> BOTTOM Mother32 ASSIGN OUT
|
||||||
|
//
|
||||||
|
// Pdef(\m_2_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_2, \ctlNum, 1, \control, Pexprand(77,127, inf), \dur, 1/8 )).play(quant:4);
|
||||||
|
|
||||||
// CC Control Message 1 ---> BOTTOM Mother32 ASSIGN OUT
|
|
||||||
Pdef(\m_2_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_2, \ctlNum, 1, \control, Pexprand(77,127, inf), \dur, 1/8 )).play(quant:4);
|
|
||||||
|
|
||||||
///////////////////////////////////
|
|
||||||
//Pdef(\processing, Pfunc { ~host.sendMsg("/sc3p5", rrand(1,256).asFloat);}).play(quant: 4);
|
|
||||||
|
|
||||||
//~host.sendMsg("/sc3p5", rrand(1,256).asFloat);
|
// MIDIFunc.trace;
|
||||||
|
/*//MIDIIn.connectAll;
|
||||||
|
|
||||||
//https://sc-users.bham.ac.narkive.com/75iSw2f6/sending-osc-commands-instead-of-trigger-synths-with-patterns
|
~nK2srcID = MIDIIn.findPort("nanoKONTROL2", "nanoKONTROL2 nanoKONTROL2 _ CTR","nanoKONTROL2", "nanoKONTROL2 nanoKONTROL2 _ CTR").uid;
|
||||||
|
~nK2MIDIOut = MIDIOut.newByName("nanoKONTROL2", "nanoKONTROL2 nanoKONTROL2 _ CTR","nanoKONTROL2", "nanoKONTROL2 nanoKONTROL2 _ CTR");
|
||||||
|
~nk2OutPort = 0;*/
|
||||||
|
|
||||||
n = NetAddr("127.0.0.1", 47120);
|
//MIDIOut.connect(~nk2OutPort,~nK2MIDIOut.port);
|
||||||
|
|
||||||
//{50.do {n.sendMsg("/test",200.rand,200.rand);0.2.wait;}}.fork;
|
//~nk = NanoKONTROL2(s, srcID: ~nK2scrID, outport: ~nk2OutPort);
|
||||||
|
|
||||||
( Event.addEventType(\processingOSC, { | server |
|
//postln(~nk.knobs[2][2].kr);
|
||||||
var processingOscServer = NetAddr("192.168.178.166", 47120);
|
|
||||||
//var processingOscServer = NetAddr("127.0.0.1", 47120);
|
|
||||||
var notes = [~degree.value, ~ctranspose.value, ~velocity.value,
|
|
||||||
~sustain.value, ~lag.value, ~timingOffset.value].flop;
|
|
||||||
|
|
||||||
var bndl;
|
//~nk.knobs[2][2].kr
|
||||||
var timeNoteOn, timeNoteOff;
|
|
||||||
|
|
||||||
//processingOscServer.sendMsg("/test",200.rand,200.rand);
|
//{ SinOsc.ar(~nk.knobs[2][2].kr, 0, 0.5) }.play;
|
||||||
//processingOscServer.sendMsg("/sc3p5",200.rand, 200.rand);
|
|
||||||
|
|
||||||
notes.do {|note|
|
|
||||||
processingOscServer.sendMsg("/sc3p5", note[0].asFloat); // send OSC message to P5
|
|
||||||
processingOscServer.sendMsg("/mother2", note[1].asFloat); // send OSC message to P5
|
|
||||||
|
|
||||||
//processingOscServer.sendMsg("/mother1", 1920.rand);
|
|
||||||
//processingOscServer.sendMsg("/mother2", 1080.rand);
|
|
||||||
//processingOscServer.sendMsg("/sc3p5", rrand(1,256).asFloat);
|
|
||||||
|
|
||||||
// sustain and timingOffset are in beats, lag is in seconds
|
|
||||||
//timeNoteOn = (thisThread.clock.tempo.reciprocal*note[5])+note[4];
|
|
||||||
//timeNoteOff =
|
|
||||||
//(thisThread.clock.tempo.reciprocal*(note[3]+note[5]))+note[4];
|
|
||||||
//{processingOscServer.sendMsg("/renoise/trigger/note_on", -1, -1,
|
|
||||||
//(note[0]+note[1]).asInt, note[2].asInt)}.defer(timeNoteOn);
|
|
||||||
//{processingOscServer.sendMsg("/renoise/trigger/note_off", -1, -1,
|
|
||||||
//(note[0]+note[1]).asInt)}.defer(timeNoteOff);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
)
|
|
||||||
|
|
||||||
( Pdef(\processingA, Pbind(*[ type: \processingOSC,
|
|
||||||
dur: 1/8, degree: Pseq([2,5,12,200,600,900,1000], inf), ]); ))
|
|
||||||
|
|
||||||
( Pdef(\processingB, Pbind(*[ type: \processingOSC,
|
|
||||||
dur: 1/8, ctranspose: Pseq([2,5,12,300,600,900], inf), ]); ))
|
|
||||||
|
|
||||||
Pdef(\processingA).play(quant: 4); // TOP MOTHER
|
|
||||||
Pdef(\processingA).stop;
|
|
||||||
Pdef(\processingB).play(quant: 4); // TOP MOTHER
|
|
||||||
Pdef(\processingB).stop;
|
|
||||||
|
|
||||||
|
// n = NetAddr("127.0.0.1", 47120);
|
|
@ -1,61 +1,9 @@
|
||||||
|
|
||||||
//// MINIMAL BAROQUE GROOVE
|
//// MINIMAL BAROQUE GROOVE
|
||||||
|
(
|
||||||
~r0 = Pn(1/8, 16);
|
|
||||||
|
|
||||||
TempoClock.default.tempo = 60/60;
|
TempoClock.default.tempo = 60/60;
|
||||||
|
//TempoClock.default.tempo = 30/60;
|
||||||
|
|
||||||
TempoClock.default.tempo = 30/60;
|
// scales / pitch structure ////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
~rx0 = Pwrand([1/8, 1/4, 1/2, 4],[80,50,20,20].normalizeSum, 1);
|
|
||||||
~rx1 = Pwrand([1/8, 1/4, 1/2, 1],[80,50,20,20].normalizeSum, 1);
|
|
||||||
~rx2 = Pwrand([1/8, 1/4, 1/2],[80,50,20].normalizeSum, 1);
|
|
||||||
~rx3 = Pwrand([1/8, 1/4],[90,30].normalizeSum, 1);
|
|
||||||
|
|
||||||
~rs = Pseq([
|
|
||||||
/* Pconst(32, Pseq([~rx0],inf)),
|
|
||||||
Pconst(32, Pseq([~r3],inf)),
|
|
||||||
Pconst(32, Pseq([~r3],inf)),
|
|
||||||
Pconst(32, Pseq([~r04],inf)),*/
|
|
||||||
Pconst(64, Pseq([~r0],inf)),
|
|
||||||
|
|
||||||
/*Pconst(32, Pseq([~rx0],inf)),
|
|
||||||
|
|
||||||
Pseq([~rx2],32),
|
|
||||||
Pseq([~rx3],32),
|
|
||||||
|
|
||||||
Pseq([~r03],8),
|
|
||||||
Pseq([~r04],8),
|
|
||||||
Pseq([~r0],8),
|
|
||||||
Pseq([~r0],8),
|
|
||||||
Pseq([~r04],8),
|
|
||||||
//Pseq([~r16],8),
|
|
||||||
Pseq([~r0],inf),*/
|
|
||||||
],inf);
|
|
||||||
|
|
||||||
~rb = Pseq([
|
|
||||||
/* Pconst(32, Pseq([~rx0],inf)),
|
|
||||||
Pconst(32, Pseq([~r0],inf)),
|
|
||||||
Pconst(32, Pseq([~r04],inf)),
|
|
||||||
Pconst(32, Pseq([~r03],inf)),*/
|
|
||||||
Pconst(64, Pseq([~r0],inf)),
|
|
||||||
|
|
||||||
//
|
|
||||||
// Pseq([~rx0],32),
|
|
||||||
// Pseq([~rx1],32),
|
|
||||||
// Pseq([~rx2],32),
|
|
||||||
// Pseq([~rx3],32),
|
|
||||||
//
|
|
||||||
// Pseq([~r03],8),
|
|
||||||
// Pseq([~r04],8),
|
|
||||||
// Pseq([~r0],8),
|
|
||||||
// Pseq([~r0],8),
|
|
||||||
// Pseq([~r04],8),
|
|
||||||
// //Pseq([~r16],8),
|
|
||||||
// Pseq([~r0],inf),
|
|
||||||
],inf);
|
|
||||||
|
|
||||||
~s0 = Scale.harmonicMinor;
|
~s0 = Scale.harmonicMinor;
|
||||||
~s1 = Scale.melodicMinor;
|
~s1 = Scale.melodicMinor;
|
||||||
|
@ -63,15 +11,94 @@ TempoClock.default.tempo = 30/60;
|
||||||
~s3 = Scale.whole;
|
~s3 = Scale.whole;
|
||||||
~s4 = Scale.chromatic;
|
~s4 = Scale.chromatic;
|
||||||
|
|
||||||
~bassroot = Pseq([0,4,2,3,1,4, 0],1);
|
// rhythmic patterns /////////////
|
||||||
~bassroot16 = Pdup(32, Pseq([0,4,2,3,1, 4,0],1));
|
|
||||||
|
|
||||||
|
~r0 = Pn(1/8, 16);
|
||||||
|
~rx0 = Pwrand([1/8, 1/4, 1/2, 4],[80,50,20,20].normalizeSum, 1);
|
||||||
|
~rx1 = Pwrand([1/8, 1/4, 1/2, 1],[80,50,20,20].normalizeSum, 1);
|
||||||
|
~rx2 = Pwrand([1/8, 1/4, 1/2],[80,50,20].normalizeSum, 1);
|
||||||
|
~rx3 = Pwrand([1/8, 1/4],[90,30].normalizeSum, 1);
|
||||||
|
|
||||||
|
|
||||||
|
// shuffled durs
|
||||||
|
(
|
||||||
|
~r0s = Pshuf([
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
Rest(1/8),
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
],1);
|
||||||
|
|
||||||
|
~r1s = Pshuf([
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
Rest(1/8),
|
||||||
|
Rest(1/8),
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
],1);
|
||||||
|
|
||||||
|
//Place
|
||||||
|
|
||||||
|
~r2s = Pshuf([
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
Rest(1/8),
|
||||||
|
Rest(1/8),
|
||||||
|
Rest(1/8),
|
||||||
|
1/8,
|
||||||
|
],1);
|
||||||
|
|
||||||
|
~r3s = Pshuf([
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
1/8,
|
||||||
|
Rest(1/8),
|
||||||
|
Rest(1/8),
|
||||||
|
Rest(1/8),
|
||||||
|
Rest(1/8),
|
||||||
|
],1);
|
||||||
|
|
||||||
|
|
||||||
|
~unfolding = Pseq([~r0s, ~r1s, ~r2s, ~r3s, ~r4s, ~r5s, ~r6s, ~r7s], 1);
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
// patterns
|
||||||
|
~rs = Pseq([
|
||||||
|
Pconst(64, Pseq([~r0],inf)),
|
||||||
|
],inf);
|
||||||
|
|
||||||
|
~rb = Pseq([
|
||||||
|
Pconst(64, Pseq([~r0],inf)),
|
||||||
|
],inf);
|
||||||
|
|
||||||
|
// harmonic structure and bassline
|
||||||
|
|
||||||
|
// arpeggios + patterns
|
||||||
|
|
||||||
~d0 = Pxrand([0,2,4,6], 32);
|
~d0 = Pxrand([0,2,4,6], 32);
|
||||||
~d1 = Pxrand([1,3,5,7], 32); // 1 bar
|
~d1 = Pxrand([1,3,5,7], 32); // 1 bar
|
||||||
~d2 = Pseq([2,4,6,8], 8);
|
~d2 = Pseq([2,4,6,8], 8);
|
||||||
~d3 = Pseq([3,5,7,9],8);
|
~d3 = Pseq([3,5,7,9],8);
|
||||||
~d4 = Pseq([4,6,8,10],8);
|
~d4 = Pseq([4,6,8,10],8);
|
||||||
|
~d5 = Pxrand([0,2,4,6,8,10,12], 32);
|
||||||
|
|
||||||
|
// bassline
|
||||||
|
|
||||||
|
~bassroot = Pseq([0,4,2,3,1,4, 0],1);
|
||||||
|
~bassroot16 = Pdup(32, Pseq([0,4,2,3,1,4,0],1));
|
||||||
|
|
||||||
|
// harmonic structure 0,4,2,3,1,4,0
|
||||||
|
|
||||||
~dseq = Pseq([
|
~dseq = Pseq([
|
||||||
Pn( ~d0, 1),
|
Pn( ~d0, 1),
|
||||||
|
@ -80,106 +107,223 @@ TempoClock.default.tempo = 30/60;
|
||||||
Pn( ~d3, 1),
|
Pn( ~d3, 1),
|
||||||
Pn( ~d1, 1),
|
Pn( ~d1, 1),
|
||||||
Pn( ~d4, 1),
|
Pn( ~d4, 1),
|
||||||
|
Pn( ~d4, 1),
|
||||||
Pn( ~d0, 1),
|
Pn( ~d0, 1),
|
||||||
|
|
||||||
], 1);
|
], 1);
|
||||||
|
|
||||||
Pbindef(\m_2, \octave, ~o1);
|
// octavisation patterns
|
||||||
Pbindef(\m_2, \degree, ~bassroot16);
|
|
||||||
|
|
||||||
n = NetAddr("192.168.178.166", 47120);
|
~o0 = Prand([5], inf);
|
||||||
n.sendMsg("/mother1", 200.rand.asFloat );
|
~o1 = Prand([2,3], inf);
|
||||||
|
~o2 = Prand([3,4], inf);
|
||||||
|
~o3 = Prand([3,4,5], inf);
|
||||||
|
~o4 = Prand([5,6,7], inf);
|
||||||
|
~o5 = Pwrand([4,5,6,7],[20,3,4,5].normalizeSum, inf);
|
||||||
|
|
||||||
// e harmonic minor
|
/////////////////////////////////////////////////
|
||||||
|
// e harmonic minor (\root 4) ///////////////////
|
||||||
|
//var ~t1, ~t2, ~t3, ~t4, b1, b2, b3, b4, a, b, r ,t, q , w;
|
||||||
|
|
||||||
Pbindef(\m_1, \root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o1, \dur,~rb,
|
// =========================
|
||||||
|
// treble m31
|
||||||
|
~t0 = Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o5, \dur,~rb
|
||||||
|
);
|
||||||
|
|
||||||
|
~t1 = Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o4, \dur,~rb,
|
||||||
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
postln(e[\degree]);
|
postln(e[\degree], e[\octave]);
|
||||||
postln(e[\octave]);
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
~t2 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o3, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
~t3 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o4, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
~t4 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o4, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
~t5 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o4, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
~t6 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o3, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
Pbindef(\m_2, \root, 4, \scale,~s2, \degree, ~bassroot16, \octave, 3, \dur,~rb,
|
|
||||||
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
|
||||||
\rotation, Pfunc { |e| n.sendMsg("/rotation2", (e[\octave]).asFloat ); },
|
// =========================
|
||||||
|
// bass m32
|
||||||
|
|
||||||
|
~b1 = Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
||||||
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, 3, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother1", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
~b2 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
||||||
/// try
|
|
||||||
var a, b, r ,t, q , w;
|
|
||||||
|
|
||||||
a = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
|
||||||
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o1, \dur,~rb,
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o1, \dur,~rb,
|
||||||
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
||||||
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
\rotation, Pfunc { |e| n.sendMsg("/rotation2", (e[\octave]).asFloat );
|
||||||
postln(e[\degree], e[\octave]);
|
postln(e[\degree], e[\octave]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
b = Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
~b3 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
||||||
\root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o3, \dur,~rb,
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o2, \dur,~rb,
|
||||||
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
||||||
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
\rotation, Pfunc { |e| n.sendMsg("/rotation2", (e[\octave]).asFloat );
|
||||||
postln(e[\degree], e[\octave]);
|
postln(e[\degree], e[\octave]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
q = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
~b4 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
||||||
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o1, \dur,~rb,
|
\root, 4, \scale,~s2, \degree, ~dseq, \octave, 3, \dur,~rb,
|
||||||
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
||||||
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
\rotation, Pfunc { |e| n.sendMsg("/rotation2", (e[\octave]).asFloat );
|
||||||
postln(e[\degree], e[\octave]);
|
postln(e[\degree], e[\octave]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
w = Pbind( \type, \midi, \midicmd, \noteOn, \midiout, ~m32_1,
|
~b5 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
||||||
\root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o3, \dur,~rb,
|
\root, 4, \scale,~s2, \degree, ~dseq, \octave, ~o2, \dur,~rb,
|
||||||
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
||||||
\rotation, Pfunc { |e| n.sendMsg("/rotation1", (e[\octave]).asFloat );
|
\rotation, Pfunc { |e| n.sendMsg("/rotation2", (e[\octave]).asFloat );
|
||||||
postln(e[\degree], e[\octave]);
|
postln(e[\degree], e[\octave]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
r = Pseq( [a,b,a,b], 1);
|
~b6 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~m32_2,
|
||||||
t = Pseq( [w,q,w,q], 1);
|
\root, 4, \scale,~s2, \degree, ~bassroot16, \octave, ~o2, \dur,~rb,
|
||||||
|
\p5, Pfunc { |e| n.sendMsg("/mother2", (e[\degree]).asFloat ); },
|
||||||
|
\rotation, Pfunc { |e| n.sendMsg("/rotation2", (e[\octave]).asFloat );
|
||||||
|
postln(e[\degree], e[\octave]);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
z = Ppar( [r,t], inf ).play;
|
// drum patterns ///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
~teenth = Pseq( [Rest(1/8), Pseq([1/8], 4)], 1 );
|
||||||
|
|
||||||
|
~d00 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([42, 43], 32), \dur,
|
||||||
|
Pseq( [ Prand([1/8, 1/2, Rest(1/4)], 8), Rest(4)], inf),
|
||||||
|
\p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~d01 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([42, 43,44], 32), \dur, Pwrand([1/8, 1/4, Rest(2), ~teenth], [5,3,2, 1].normalizeSum, inf), \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
|
||||||
|
~d02 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([42, 43, 44, 45], 32), \dur, Pwrand([1/8, 1/4, Rest(1/8), ~teenth], [5,3,2, 1].normalizeSum, inf), \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~d03 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([41, 42, 43, 44, 45], 32), \dur,Prand([1/8, 1/4], inf), \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~d04 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([41, 42, 43, 44,45, 82], 32), \dur,Prand([1/8, 1/4], inf), \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
|
||||||
|
~d05 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([82, 41, 42, 43, 44,45], 32), \dur,Pwrand([1/8, 1/4, Prand([1/16], 8), Rest(1/8)], [5,3,1].normalizeSum, inf), \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
// -----Prand([1/16], 8)
|
||||||
|
|
||||||
|
~snare00 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([39,40, 41], 32), \dur, Prand([1/8, 1/4, Rest(1)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
|
||||||
|
~snare01 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([39], 32), \dur, Prand([1/8, 1/4, Rest(1/2)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~snare02 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([39,40], 32), \dur, Prand([1/8, 1/4, Rest(1/4)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~snare03 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([39,40, 41], 32), \dur, Prand([1/8, 1/4, Rest(1/8)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~snare04 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([39,40, 41, 49], 32), \dur, Prand([1/8, 1/4, Rest(1/8)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~snare05 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([39,40, 41, 49, 50], 32), \dur, Prand([1/8, 1/4, Rest(1/2)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
// -----
|
||||||
|
|
||||||
|
~kick00 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([38], 32), \dur, Prand([1/8, 1/4, Rest(1/2)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~kick01 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([37, 38,], 32), \dur, Prand([1/8, 1/4, Rest(1/2)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~kick02 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([36,37,38], 32), \dur, Prand([1/8, 1/4, Rest(1/4)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~kick03 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([36,37], 32), \dur, Prand([1/8, 1/4, Rest(1/4)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~kick04 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([36,37,38], 32), \dur, Prand([1/8, 1/4, Rest(1/8)], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
~kick05 = Pbind(\type, \midi, \midicmd, \noteOn, \midiout, ~hydro_0, \chan, 10,
|
||||||
|
\midinote, Prand([38, 36,37], 32), \dur, Prand([1/2, 1/4, 1/8], inf) , \p5, Pfunc { |e| postln(e[\degree], e[\degree]) });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// =========================
|
||||||
|
|
||||||
|
r = Pseq( [~t0, ~t2, ~t1, ~t3, ~t1, ~t4, ~t4, ~t5, ~t4, ~t6], 1); // top part
|
||||||
|
t = Pseq( [~b1, ~b1, ~b2, ~b2, ~b3, ~b4, ~b4, ~b5, ~b5, ~b6 ], 1); // bottom part
|
||||||
|
|
||||||
|
~kick = Pseq( [Rest(20), ~kick00, ~kick01, ~kick02, ~kick03, ~kick04, ~kick04, ~kick03, ~kick04, ~kick02, ~kick03,~kick04,~kick04, ~kick5, ~kick5, ~kick04,~kick04,~kick05,~kick05,~kick04, ~kick04,~kick04,~kick04,~kick04 ], 1);
|
||||||
|
|
||||||
|
~snare = Pseq( [Rest(36), ~snare00, ~snare01, ~snare2, ~snare03, ~snare04, ~snare95, ~snare05, ~snare05 ], 1);
|
||||||
|
|
||||||
|
d = Pseq( [Rest(48), ~d00, ~d01, ~d02, ~d03, ~d04, ~d04, ~d05, ~d04, ~d05, ~d04, ~d05,], 1); // hydrogen part
|
||||||
|
|
||||||
|
z = Ppar( [r, t, d, ~kick, ~snare], 1 ).play; // in parallel
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
~b1.play;
|
||||||
|
// controls
|
||||||
|
|
||||||
|
t.pause;
|
||||||
|
|
||||||
z.stop;
|
z.stop;
|
||||||
z.start;
|
z.start;
|
||||||
z.pause;
|
z.pause;
|
||||||
z.resume;
|
z.resume;
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
|
|
||||||
Pbindef(\m_1, \degree, ~dseq);
|
|
||||||
Pbindef(\m_2, \degree, ~dseq);
|
|
||||||
Pbindef(\m_2, \degree, ~bassroot16);
|
|
||||||
Pbindef(\m_1, \octave, 3);
|
|
||||||
Pbindef(\m_1, \octave, ~o3);
|
|
||||||
|
|
||||||
Pbindef(\m_1, \scale, ~s0);
|
|
||||||
Pbindef(\m_2, \scale, ~s0);
|
|
||||||
|
|
||||||
Pbindef(\m_2, \octave, ~o1);
|
|
||||||
Pbindef(\m_2, \octave, ~o2);
|
|
||||||
Pbindef(\m_2, \octave, ~o1);
|
|
||||||
|
|
||||||
|
|
||||||
// CC Control Message 1 ---> TOP Mother32 ASSIGN OUT
|
|
||||||
( Pdef(\m_1_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_1,
|
|
||||||
\ctlNum, 1, \control, Pexprand(50,127, inf),\dur, 1/16)).play(quant:4));
|
|
||||||
|
|
||||||
// CC Control Message 1 ---> BOTTOM Mother32 ASSIGN OUT
|
|
||||||
Pdef(\m_2_CC, Pbind( \type, \midi, \midicmd, \control, \midiout, ~m32_2, \ctlNum, 1, \control, Pexprand(77,127, inf), \dur, 1/8 )).play(quant:4);
|
|
||||||
|
|
||||||
|
|
||||||
Pdef(\m_1).play(quant: 4); // TOP MOTHER
|
|
||||||
Pdef(\m_2).play(quant: 4); // BTM MOTHER NOTEON
|
|
||||||
|
|
||||||
Pdef(\m_1).stop;
|
|
||||||
Pdef(\m_2).stop;
|
|
||||||
|
|
||||||
|
|
|
@ -3,23 +3,24 @@ kill `pidof ardour-7.2.0~ds0`
|
||||||
|
|
||||||
killall -9 qjackctl jackd guitarix sclang scide;
|
killall -9 qjackctl jackd guitarix sclang scide;
|
||||||
|
|
||||||
/usr/bin/jackd -aa -u -dalsa -r44100 -p256 -n3 -D -Chw:U192k -Phw:U192k &
|
#/usr/bin/jackd -aa -u -dalsa -r44100 -p256 -n3 -D -Chw:U192k -Phw:U192k &
|
||||||
|
/usr/bin/jackd -u -dalsa -r44100 -p256 -n3 -D -Chw:PCH -Phw:PCH &
|
||||||
|
|
||||||
sleep 1;
|
sleep 1;
|
||||||
|
|
||||||
guitarix &
|
#guitarix &
|
||||||
|
|
||||||
# sclang -D gtr.scd &
|
# sclang -D gtr.scd &
|
||||||
scide gtr.scd &
|
scide &
|
||||||
|
|
||||||
gnome-terminal --title=NODE SERVER -- sh ./setup/comms_start.sh &
|
#gnome-terminal --title=NODE SERVER -- sh ./setup/comms_start.sh &
|
||||||
|
|
||||||
sleep 4;
|
sleep 4;
|
||||||
|
|
||||||
rm recordings/ardour/gtr-2022-11-28-15-07-41/*.bak &
|
rm recordings/ardour/gtr-2022-11-28-15-07-41/*.bak &
|
||||||
rm recordings/ardour/gtr-2022-11-28-15-07-41/*.history &
|
rm recordings/ardour/gtr-2022-11-28-15-07-41/*.history &
|
||||||
|
|
||||||
ardour recordings/ardour/gtr-2022-11-28-15-07-41/gtr-2022-11-28-15-07-41.ardour &
|
#ardour recordings/ardour/algomom/algomom.ardour &
|
||||||
|
|
||||||
sleep 5;
|
sleep 5;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue