commit 2020.06.10.01

main
Michael Winter 5 years ago
parent bef5c3f954
commit f3b44eb494

@ -1,6 +1,6 @@
\version "2.19.81" \version "2.19.81"
\include "pseudoindent.ly" \include "cicc_pseudoindents_def.ly"
#(define factor 2) #(define factor 2)

@ -111,7 +111,7 @@
{ {
\set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 90 \set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 90
\numericTimeSignature \time 2/2 \numericTimeSignature \time 2/2
\clef "treble^8" \clef "treble^(8)"
\bar "||" \mark \markup { \bold \box 1.1 } \bar "||" \mark \markup { \bold \box 1.1 }
\time 2/2 \time 2/2
f''''1 ~ | f''''1 | r8 [ f''''8 ] ~ f''''2. ~ | f''''1 ~ | f''''1 ~ | f''''1 ~ | f''''1 ~ | f''''1 ~ | f''''4 ~ f''''8 [ r8 ] r2 | r2. r8 [ f''''8 ] ~ | f''''1 ~ | f''''1 | R1 | r2. f''''4 ~ | f''''1 ~ | f''''1 ~ | f''''8 [ r8 ] f''''2. ~ | f''''1 ~ | f''''4 r2. | R1 | f''''1 ~ | f''''1 | r8 [ f''''8 ] ~ f''''2. ~ | f''''1 ~ | f''''1 ~ | f''''1 ~ | f''''1 ~ | f''''1 ~ | f''''4 ~ f''''8 [ r8 ] r2 | r2. r8 [ f''''8 ] ~ | f''''1 ~ | f''''1 | R1 | r2. f''''4 ~ | f''''1 ~ | f''''1 ~ | f''''8 [ r8 ] f''''2. ~ | f''''1 ~ | f''''4 r2. | R1 |

@ -111,7 +111,7 @@
{ {
\set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 90 \set Score.markFormatter = #format-mark-box-numbers \tempo 2 = 90
\override Staff.TimeSignature #'stencil = ##f \numericTimeSignature \time 2/2 \override Staff.TimeSignature #'stencil = ##f \numericTimeSignature \time 2/2
\clef bass \clef "bass_(8)"
\bar "||" \mark \markup { \bold \box 1.1 } \bar "||" \mark \markup { \bold \box 1.1 }
\time 2/2 \time 2/2
<<{ d,4 \laissezVibrer ^ \markup{ 0.0 } }\\ {\new Voice { \voiceTwo d,4 \laissezVibrer }}>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | <<{ d,4 \laissezVibrer ^ \markup{ 0.0 } }\\ {\new Voice { \voiceTwo d,4 \laissezVibrer }}>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 |

@ -30,13 +30,14 @@
win = Window("Counterfeiting in Colonial Connecticut", Rect(500, 500, 1100, 500), false).front; win = Window("Counterfeiting in Colonial Connecticut", Rect(500, 500, 1100, 500), false).front;
masterView = { masterView = {
var view, generator, transport, ranSeed, order, sectionDisplay, clock, metronome; var view, generator, transport, ranSeed, order, tempo, sectionDisplay, clock, metronome;
// this func updates the whole transport panel // this func updates the whole transport panel
~updateTransport = {arg measure, beat; ~updateTransport = {arg measure, beat;
clock.string = clockStringFunc.value(measure, beat); clock.string = clockStringFunc.value(measure, beat);
metronome.stringColor = metronomeColorFunc.value(beat); metronome.stringColor = metronomeColorFunc.value(beat);
metronome.string = metronomeStringFunc.value(beat); metronome.string = metronomeStringFunc.value(beat);
fork {0.75.wait; {metronome.string = ""}.defer};
}; };
// this func handles the movement between sections // this func handles the movement between sections
@ -72,15 +73,15 @@
~play.set(\sel, ~currentSection % 2); ~play.set(\sel, ~currentSection % 2);
~patterns[~sectionOrder[~currentSection]].play(quant: 0); ~patterns[~sectionOrder[~currentSection]].play(quant: 0);
if(~interludes && ((~currentSection % 4) == 3) && (~currentSection != (~sectionOrder.size - 1)), { if(~interludes && ((~currentSection % 4) == 3) && (~currentSection != (~sectionOrder.size - 1)), {
~droneFade.set(\gate, 1); ~interludeTremelo.set(\gate, 1);
~dronePattern.play(quant: 0) ~interludeTremelo.set(\amp, 1);
}); });
if((~currentSection % 4) == 0, { if((~currentSection % 4) == 0, {
~droneFade.set(\gate, 0); ~interludeTremelo.set(\gate, 0);
}); });
if(((~currentSection % 4)) != 0 && ((~currentSection % 4) != 3), { if(((~currentSection % 4)) != 0 && ((~currentSection % 4) != 3), {
~droneFade.set(\gate, 0); ~interludeTremelo.set(\gate, 0);
~dronePattern.stop ~interludeTremelo.set(\amp, 0);
}); });
}, { }, {
var measure, beat; var measure, beat;
@ -119,20 +120,31 @@
var measure, beat; var measure, beat;
~isPlaying = false; ~isPlaying = false;
~patterns[~sectionOrder[~currentSection]].stop; ~patterns[~sectionOrder[~currentSection]].stop;
~droneFade.set(\gate, 0); ~interludeTremelo.set(\gate, 0);
measure = ~sectionStartMeasure[~currentSection]; measure = ~sectionStartMeasure[~currentSection];
beat = 1; beat = 1;
~updateTransport.value(measure, beat); ~updateTransport.value(measure, beat);
~droneFade.set(\gate, 0); ~interludeTremelo.set(\gate, 0);
~dronePattern.stop ~interludeTremelo.set(\amp, 0);
},{ },{
~isPlaying = true; fork {
~play.set(\sel, ~currentSection % 2); [1, 2, 1, 2].do({arg beat;
~patterns[~sectionOrder[~currentSection]].play(quant: 0); {
if(~interludes && ((~currentSection % 4) == 3) && (~currentSection != (~sectionOrder.size - 1)), { metronome.stringColor = metronomeColorFunc.value(beat);
~droneFade.set(\gate, 1); metronome.string = metronomeStringFunc.value(beat);
~dronePattern.play(quant: 0) }.defer;
}); 0.75.wait;
{metronome.string = ""}.defer;
0.25.wait;
});
~isPlaying = true;
~play.set(\sel, ~currentSection % 2);
~patterns[~sectionOrder[~currentSection]].play(quant: 0);
if(~interludes && ((~currentSection % 4) == 3) && (~currentSection != (~sectionOrder.size - 1)), {
~interludeTremelo.set(\gate, 1);
~interludeTremelo.set(\amp, 1);
});
}
}) })
} }
), ),
@ -145,13 +157,17 @@
StaticText(win).string_("|").font_(Font("Monaco", 200)), StaticText(win).string_("|").font_(Font("Monaco", 200)),
metronome = StaticText(win).string_([-30, -105, -104].asAscii).font_(Font("Monaco", 300)).stringColor_(Color.red)), metronome = StaticText(win).string_([-30, -105, -104].asAscii).font_(Font("Monaco", 300)).stringColor_(Color.red)),
nil, transport, nil, nil, transport, nil,
HLayout(Button(view).states_([["auto advance", Color.black], ["auto advance", Color.black, Color.grey]]).action_({ HLayout(
arg v; ~autoAdvance = if(v.value == 0, {false}, {true});~autoAdvance; tempo = TextField(view).string_("90"),
}).value_(1), Button(view).states_([["set tempo"]]).action_({TempoClock.tempo = tempo.string.asInteger / 60}),
Button(view).states_([["interludes", Color.black], ["interludes", Color.black, Color.grey]]).action_({ StaticText(view).string_(" | "),
arg v; ~interludes = if(v.value == 0, {false}, {true}) Button(view).states_([["auto advance", Color.black], ["auto advance", Color.black, Color.grey]]).action_({
}), arg v; ~autoAdvance = if(v.value == 0, {false}, {true});~autoAdvance;
[StaticText(view).string_(" "), stretch: 1]), }).value_(1),
Button(view).states_([["interludes", Color.black], ["interludes", Color.black, Color.grey]]).action_({
arg v; ~interludes = if(v.value == 0, {false}, {true})
}),
[StaticText(view).string_(" "), stretch: 1]),
[StaticText(view).string_(" "), stretch: 1], [StaticText(view).string_(" "), stretch: 1],
HLayout( HLayout(
order = TextField(view).string_("1-4"), order = TextField(view).string_("1-4"),

@ -27,10 +27,11 @@ s.waitForBoot({
}; };
// set the global variables // set the global variables
TempoClock.tempo = 90 / 60;
~dir = thisProcess.nowExecutingPath.dirname; ~dir = thisProcess.nowExecutingPath.dirname;
~genAll.value(20200525); ~genAll.value(20200525);
~play = Synth.new(\masterPlayerControl); ~play = Synth.new(\masterPlayerControl);
~droneFade = Synth.new(\droneFade); ~interludeTremelo = Synth.new(\interludeTremelo);
~autoAdvance = true; ~autoAdvance = true;
~interludes = false; ~interludes = false;
~sectionOrder = ~patterns.size.collect({arg sec; sec}); ~sectionOrder = ~patterns.size.collect({arg sec; sec});

@ -372,182 +372,3 @@ finalizeAccompLow = {arg guitarSeq, sectionSeq;
[patterns, scoreData, sectionOffsets] [patterns, scoreData, sectionOffsets]
}; };
) )
/*
~player[0].play;
(
~player = EventPatternProxy.new;
~faderPattern = Pmono(
\crossFade,
\sel, Pseq([0, 1], ~sectionOffsets / 2),
\dur, Pseq(~sectionOffsets.differentiate.drop(1) * 0.08),
\busA, ~busA.index,
\busB, ~busB.index
);
~fader = Synth(\crossFade, [\sel, 0, \busA, ~busA.index, \busB, ~busB.index]);
~player.source = Ptpar(
([~sectionOffsets.postln * 0.08, ~patterns].flop.flat ++ [0, ~faderPattern]).postln
);
)
~fader.play
~player.play
(
~fader.set(\sel, 1);
~patterns[3].play
)
~fader = Synth(\crossFade, [\sel, 1, \busA, ~busA.index, \busB, ~busB.index]);
(
~patterns[3].play;
~testDrone = Synth.new(\droneOut, [\gate, 1, \bus, ~droneBus.index]);
//~testDrone.set(\gate, 0);
~dronePattern.play
)
(
~player.source = Ptpar([~sectionOffsets.postln * 0.08,
~patterns.collect({arg pt, i;
if(i < (~patterns.size - 1), {
PfadeOut(pt, 0.1, (~sectionOffsets.differentiate.drop(1)[i] * 0.08) - 0.1)
}, {
pt
})
})].flop.flat.postln);
)
~sectionOffsets.differentiate.postln;
~player.play
PfadeOut(~patterns[2], 0.1, (~sectionOffsets.differentiate.drop(1)[2] * 0.08) - 0.1).play
PfadeOut(~player[0]).play;
Pdef(\play, ~player[0]).play;
Pdef(\play, ~player[1])
~player[2].play;
~player.pause;
(
var durUnit = 0.15;
SynthDef(\machine, {arg freq, gate = 1, sustain, amp;
var sound;
sound = TWChoose.ar(Impulse.kr(0), [
PinkNoise.ar(EnvGen.kr(Env.perc(0.01, sustain, amp * 10), gate, doneAction: 2)),
BrownNoise.ar(EnvGen.kr(Env.perc(0.01, sustain, amp * 2), gate, doneAction: 2))
], [0, 20], 1);
Out.ar([0, 1], sound)
}).add;
~machine1 = Pbind(
\instrument, \machine,
\amp, Pseq(300.collect({var rand = [0.03, 0].choose; (20.rand + 10).rand.collect({rand})}).flat),
\dur, Pseq(1000.collect({[durUnit, durUnit + (durUnit / 100).rand2].wchoose([10, 1].normalizeSum)}).flat),
\sustain, Pseq(1000.collect({durUnit * (1.75 + 0.5.rand)})),//2.25].wchoose([1, 20].normalizeSum)})),
\freq, Pseq(1000.collect({[[300, 250], [300, 250].choose].wchoose([10, 1].normalizeSum)}).flat / 2)
).play;
)
~machine1.play;
~machine1.stop;
(
var durUnit = 0.02;
b = Bus.audio(s, 1);
SynthDef(\test, { arg out=0, freq=440, amp=0.1, pan=0, gate=1;
var z;
z = LPF.ar(
Mix.new(VarSaw.ar(freq + [0, Rand(-0.4,0.0), Rand(0.0,0.4)], 0, 0.3, 0.3)),
XLine.kr(Rand(4000,5000), Rand(2500,3200), 1)
) * Linen.kr(gate, 0.01, 0.7, 0.3, 2);
Out.ar(b, Pan2.ar(z, pan, amp));
}, [\ir]).add;
SynthDef(\defaultBus, {arg gate;
Out.ar([0, 1], Clip.ar(In.ar(b, 1), -1, 1) * 0.25 * EnvGen.ar(Env.asr(20, 1, 20), gate))
}
).add;
Pbind(
\instrument, \test,
\amp, 0.5,
\dur, durUnit,
\sustain, 0.05,
\freq, Pseq(3000.collect({[[62.midicps, 250], [62.midicps, 250].choose].wchoose([10, 1].normalizeSum)}).flat / 2)
).play;
~testDrone = Synth.new(\defaultBus, [\gate, 1]);
)
~testDrone.set(\gate, 0);
(
var durUnit = 0.02;
b = Bus.audio(s, 1);
SynthDef(\test, { arg out=0, freq=440, amp=0.1, pan=0, gate=1;
var z;
z = LPF.ar(
Mix.new(VarSaw.ar(freq + [0, Rand(-0.4,0.0), Rand(0.0,0.4)], 0, 0.3, 0.3)),
XLine.kr(Rand(4000,5000), Rand(2500,3200), 1)
) * Linen.kr(gate, 0.01, 0.7, 0.3, 2);
Out.ar(b, Pan2.ar(z, pan, amp));
}, [\ir]).add;
SynthDef(\defaultBus, {
Out.ar([0, 1], Clip.ar(In.ar(b, 1), -1, 1) * 0.25)
}
).add;
Pbind(
\instrument, \test,
\amp, Pseq(3000.collect({arg i; (i / 3000).clip(0, 1) * 0.5})),
\dur, durUnit,
\sustain, 0.05,
\freq, Pseq(3000.collect({[[62.midicps, 250], [62.midicps, 250].choose].wchoose([10, 1].normalizeSum)}).flat / 2)
).play;
Synth.new(\defaultBus)
)
(
var durUnit = 0.15;
SynthDef(\machine, {arg freq, gate = 1, sustain, amp;
var sound;
sound = TWChoose.ar(Impulse.kr(0), [
PinkNoise.ar(EnvGen.kr(Env.perc(0.01, sustain, amp * 10), gate, doneAction: 2)),
BrownNoise.ar(EnvGen.kr(Env.perc(0.01, sustain, amp * 2), gate, doneAction: 2))
], [0, 20], 1);
Out.ar([0, 1], sound)
}).add;
~machine1 = Pseq(
10.collect({
var randL, randLArray, amp, durUnitSMult, durUnitSMultLimit, hitsToClip;
randL = 30.rand + 30;
randLArray = (0..randL) ++ (0..(randL-1)).reverse;
amp = [0.1, 0].wchoose([2, 1].normalizeSum);
durUnitSMult = 2 + 1.0.rand;
durUnitSMultLimit = (durUnitSMult - 1) + 0.5.rand;
hitsToClip = 3 + 3.rand;
Pseq([Pbind(
\instrument, \machine,
\amp, 0.1,
\dur, Pseq(randLArray.collect({arg i; durUnit * (durUnitSMult - ((i / hitsToClip).clip(0, durUnitSMultLimit)))})),
\sustain, Pseq(randLArray.size.collect({durUnit * (1.75 + 0.5.rand)})),//2.25].wchoose([1, 20].normalizeSum)})),
\freq, Pseq(randLArray.size.collect({[[300, 250], [300, 250].choose].wchoose([10, 1].normalizeSum)}).flat / 2)
),Rest(3.rand + 5)
])
}), inf
).play;
)
62.midicps
*/

@ -7,8 +7,7 @@
~accompLowUpperBusA = Bus.audio(s, 1); ~accompLowUpperBusA = Bus.audio(s, 1);
~accompLowLowerBusB = Bus.audio(s, 1); ~accompLowLowerBusB = Bus.audio(s, 1);
~accompLowUpperBusB = Bus.audio(s, 1); ~accompLowUpperBusB = Bus.audio(s, 1);
~interludeBus = Bus.audio(s, 1); ~interludeTremoloBus = Bus.audio(s, 1);
~droneBus = Bus.audio(s, 1);
SynthDef(\masterPlayerControl, { SynthDef(\masterPlayerControl, {
arg sel = 0, arg sel = 0,
@ -16,9 +15,10 @@ SynthDef(\masterPlayerControl, {
guitarVol = 1, guitarPan = 0, guitarMute = 1, guitarVol = 1, guitarPan = 0, guitarMute = 1,
accompHighVol = 1, accompHighPan = 0, accompHighMute = 1, accompHighVol = 1, accompHighPan = 0, accompHighMute = 1,
accompLowLowerVol = 1, accompLowLowerPan = 0, accompLowLowerMute = 1, accompLowLowerVol = 1, accompLowLowerPan = 0, accompLowLowerMute = 1,
accompLowUpperVol = 1, accompLowUpperPan = 0, accompLowUpperMute = 1; accompLowUpperVol = 1, accompLowUpperPan = 0, accompLowUpperMute = 1,
var guitarSig, accompHighSig, accompLowLowerSig, accompLowUpperSig, interludeVol = 1, interludePan = 0, interludeMute = 1;
guitarSigPanned, accompHighSigPanned, accompLowLowerSigPanned, accompLowUpperSigPanned, var guitarSig, accompHighSig, accompLowLowerSig, accompLowUpperSig, interludeSig,
guitarSigPanned, accompHighSigPanned, accompLowLowerSigPanned, accompLowUpperSigPanned, interludeSigPanned,
masterSig, imp; masterSig, imp;
guitarSig = In.ar(~guitarBus) * guitarVol; guitarSig = In.ar(~guitarBus) * guitarVol;
@ -35,12 +35,21 @@ SynthDef(\masterPlayerControl, {
In.ar(~accompLowUpperBusB) * EnvGen.kr(Env.asr(0.001, 1, 0.1), sel) In.ar(~accompLowUpperBusB) * EnvGen.kr(Env.asr(0.001, 1, 0.1), sel)
] ]
) * accompLowUpperVol; ) * accompLowUpperVol;
interludeSig = In.ar(~interludeTremoloBus) * interludeVol;
guitarSigPanned = Pan2.ar(guitarSig * guitarMute, guitarPan); guitarSigPanned = Pan2.ar(guitarSig * guitarMute, guitarPan);
accompHighSigPanned = Pan2.ar(accompHighSig * accompHighMute, accompHighPan); accompHighSigPanned = Pan2.ar(accompHighSig * accompHighMute, accompHighPan);
accompLowLowerSigPanned = Pan2.ar(accompLowLowerSig * accompLowLowerMute, accompLowLowerPan); accompLowLowerSigPanned = Pan2.ar(accompLowLowerSig * accompLowLowerMute, accompLowLowerPan);
accompLowUpperSigPanned = Pan2.ar(accompLowUpperSig * accompLowUpperMute, accompLowUpperPan); accompLowUpperSigPanned = Pan2.ar(accompLowUpperSig * accompLowUpperMute, accompLowUpperPan);
masterSig = Mix.ar([guitarSigPanned, accompHighSigPanned, accompLowLowerSigPanned, accompLowUpperSigPanned]) * masterVol * masterMute; interludeSigPanned = Pan2.ar(interludeSig * interludeMute, interludePan);
masterSig = Mix.ar(
[
guitarSigPanned,
accompHighSigPanned,
accompLowLowerSigPanned,
accompLowUpperSigPanned,
interludeSigPanned
]) * masterVol * masterMute;
Out.ar(0, masterSig); Out.ar(0, masterSig);
@ -54,7 +63,7 @@ SynthDef(\masterPlayerControl, {
[ [
Amplitude.kr(guitarSig), Amplitude.kr(accompHighSig), Amplitude.kr(guitarSig), Amplitude.kr(accompHighSig),
Amplitude.kr(accompLowLowerSig), Amplitude.kr(accompLowUpperSig), Amplitude.kr(accompLowLowerSig), Amplitude.kr(accompLowUpperSig),
DC.ar(0) Amplitude.kr(interludeSig)
] ]
); );
}).add; }).add;
@ -62,7 +71,6 @@ SynthDef(\masterPlayerControl, {
SynthDef(\transport, {arg measure = 0, beat = 0, gate = 1, dur = 1; SynthDef(\transport, {arg measure = 0, beat = 0, gate = 1, dur = 1;
SendReply.kr(Impulse.kr(0) * (measure > 0) * (beat > 0),'/measureClock', values: [measure, beat]); SendReply.kr(Impulse.kr(0) * (measure > 0) * (beat > 0),'/measureClock', values: [measure, beat]);
SendReply.kr(TDelay.kr(Impulse.kr(0) * (measure > 0) * (beat > 0), 0.25),'/measureClockReset');
SendReply.kr(Impulse.kr(0) * (measure < 1) * (beat < 1),'/playNextSubsection'); SendReply.kr(Impulse.kr(0) * (measure < 1) * (beat < 1),'/playNextSubsection');
EnvGen.kr(Env.sine(dur), gate, doneAction: 2); EnvGen.kr(Env.sine(dur), gate, doneAction: 2);
}).add; }).add;
@ -94,38 +102,26 @@ SynthDef(\accompTreble, {arg freq, gate = 1, sustain, amp, bus;
Out.ar(bus, treble) Out.ar(bus, treble)
}).add; }).add;
SynthDef(\interludeTremelo, { arg gate = 0, amp = 1;
SynthDef(\drone, { arg out=0, freq=440, amp=0.1, pan=0, gate=1, bus; var tremeloTrig, freq, sig, feedback, fade;
var z; //fast tremelo - note that this can be slower so long as the delaytime of the feedback remains short
z = LPF.ar( tremeloTrig = Impulse.kr(50);
Mix.new(VarSaw.ar(freq + [0, Rand(-0.4,0.0), Rand(0.0,0.4)], 0, 0.3, 0.3)), //tremelo between two notes
XLine.kr(Rand(4000,5000), Rand(2500,3200), 1) freq = Select.kr(Stepper.kr(tremeloTrig, 0, 0, 1), [62.midicps, 62.midicps * 5/6]);
) * Linen.kr(gate, 0.01, 0.7, 0.3, 2); //occasionally tremelo on same note
Out.ar(bus, Pan2.ar(z, pan, amp)); freq = Select.kr(TWChoose.kr(Dust.kr(10), [0, 1, 2], [5, 1, 1], 1), [freq, 62.midicps, 62.midicps * 5/6]) / 2;
}, [\ir]).add; //generate signal
sig = VarSaw.ar(freq, 0, 0.3, 0.1) * EnvGen.kr(Env.perc(0.01, 0.1), tremeloTrig);
//feedback
SynthDef(\droneFade, {arg gate = 0; feedback = CombC.ar(sig, 0.2, 50.reciprocal, 5);
Out.ar([0, 1], Clip.ar(In.ar(~droneBus, 1), -1, 1) * 0.1 * EnvGen.ar(Env.asr(20, 1, 20), gate)) fade = feedback * EnvGen.ar(Env.asr(20, 1, 20), gate) * amp;
Out.ar(~interludeTremoloBus, fade);
}).add; }).add;
~dronePattern = EventPatternProxy.new;
~dronePattern.source = Pbind(
\instrument, \drone,
\amp, 0.5,
\dur, 0.02,
\sustain, 0.05,
//\freq, Pseq(3000.collect({[[62.midicps, 250], [62.midicps, 250].choose].wchoose([10, 1].normalizeSum)}).flat / 2),
\freq, Pwrand([[62.midicps, 250], Prand([62.midicps, 250], inf)], [10, 1].normalizeSum, inf) / 2,
\bus, ~droneBus.index
);
OSCFunc({ arg msg, time; {~updateSection.value(1, false, false)}.defer},'/playNextSubsection', s.addr); OSCFunc({ arg msg, time; {~updateSection.value(1, false, false)}.defer},'/playNextSubsection', s.addr);
//~~~~gen music //~~~~gen music
~genPatterns = {arg guitarSeqIn, accompLowSeqIn, accompHighSeqIn, sectionSeqIn, tempo = 0.08; ~genPatterns = {arg guitarSeqIn, accompLowSeqIn, accompHighSeqIn, sectionSeqIn, beatFrac = 1/8;
var calcSustains, genSectionSec, sectionLimits, measureCount; var calcSustains, genSectionSec, sectionLimits, measureCount;
//~~~~helper sus function //~~~~helper sus function
@ -210,12 +206,11 @@ OSCFunc({ arg msg, time; {~updateSection.value(1, false, false)}.defer},'/playNe
Pbind( Pbind(
\instrument, \karplus, \instrument, \karplus,
\amp, 0.3, \amp, 0.3,
\dur, Pseq(durSeq * tempo), \dur, Pseq(durSeq * beatFrac),
\sustain, Pseq(susSeq * tempo), \sustain, Pseq(susSeq * beatFrac),
\freq, Pseq(stringSeq.collect({arg string, index; \freq, Pseq(stringSeq.collect({arg string, index;
if(string.isRest, {Rest()}, { if(string.isRest, {Rest()}, {
((62.midicps * openStrings[string]).cpsmidi + fretSeq[index]).midicps})})), ((62.midicps * openStrings[string]).cpsmidi + fretSeq[index]).midicps})})),
//\bus, if(secIndex % 2 == 0, {~guitarBusA.index}, {~guitarBusB.index})),
\bus, ~guitarBus.index), \bus, ~guitarBus.index),
if(accompLowSecSeq.size > 1, { if(accompLowSecSeq.size > 1, {
Pmono( Pmono(
@ -223,36 +218,31 @@ OSCFunc({ arg msg, time; {~updateSection.value(1, false, false)}.defer},'/playNe
\amp, 0.5, \amp, 0.5,
\freq1, Pseq(accompLowSecSeq.slice(nil, 0)), \freq1, Pseq(accompLowSecSeq.slice(nil, 0)),
\freq2, Pseq(accompLowSecSeq.slice(nil, 1)), \freq2, Pseq(accompLowSecSeq.slice(nil, 1)),
\dur, Pseq(accompLowSecSeq.slice(nil, 2)) * tempo, \dur, Pseq(accompLowSecSeq.slice(nil, 2)) * beatFrac,
//\cutoff, Pseq(accompLowSecSeq.drop(-1).size.collect({0}).add(1)),
\busLower, if(secIndex % 2 == 0, {~accompLowLowerBusA.index}, {~accompLowLowerBusB.index}), \busLower, if(secIndex % 2 == 0, {~accompLowLowerBusA.index}, {~accompLowLowerBusB.index}),
\busUpper, if(secIndex % 2 == 0, {~accompLowUpperBusA.index}, {~accompLowUpperBusB.index})) \busUpper, if(secIndex % 2 == 0, {~accompLowUpperBusA.index}, {~accompLowUpperBusB.index}))
//\bus, ~accompLowBus)
}, { }, {
Pmono( Pmono(
\accompBass, \accompBass,
\amp, 0.5, \amp, 0.5,
\freq1, Pseq([accompLowSecSeq[0][0]]), \freq1, Pseq([accompLowSecSeq[0][0]]),
\freq2, Pseq([accompLowSecSeq[0][1]]), \freq2, Pseq([accompLowSecSeq[0][1]]),
\dur, Pseq([accompLowSecSeq[0][2]]) * tempo, \dur, Pseq([accompLowSecSeq[0][2]]) * beatFrac,
//\cutoff, Pseq(accompLowSecSeq.drop(-1).size.collect({0}).add(1)),
\busLower, if(secIndex % 2 == 0, {~accompLowLowerBusA.index}, {~accompLowLowerBusB.index}), \busLower, if(secIndex % 2 == 0, {~accompLowLowerBusA.index}, {~accompLowLowerBusB.index}),
\busUpper, if(secIndex % 2 == 0, {~accompLowUpperBusA.index}, {~accompLowUpperBusB.index})) \busUpper, if(secIndex % 2 == 0, {~accompLowUpperBusA.index}, {~accompLowUpperBusB.index}))
//\bus, ~accompLowBus)
}), }),
Pbind( Pbind(
\instrument, \accompTreble, \instrument, \accompTreble,
\freq, Pseq(accompHighSecSeq.slice(nil, 0)), \freq, Pseq(accompHighSecSeq.slice(nil, 0)),
\dur, Pseq(accompHighSecSeq.slice(nil, 1) * tempo), \dur, Pseq(accompHighSecSeq.slice(nil, 1) * beatFrac),
\sustain, Pseq(accompHighSecSeq.slice(nil, 2) * tempo), \sustain, Pseq(accompHighSecSeq.slice(nil, 2) * beatFrac),
\amp, 0.5, \amp, 0.5,
//\bus, if(secIndex % 2 == 0, {~accompHighBusA.index}, {~accompHighBusB.index})),
\bus, ~accompHighBus.index), \bus, ~accompHighBus.index),
Pbind( Pbind(
\instrument, \transport, \instrument, \transport,
\measure, Pseq(measureSeq), \measure, Pseq(measureSeq),
\beat, Pseq(beatSeq), \beat, Pseq(beatSeq),
\dur, tempo * 8 \dur, beatFrac * 8
) )
]); ]);
pattern pattern
@ -260,3 +250,34 @@ OSCFunc({ arg msg, time; {~updateSection.value(1, false, false)}.defer},'/playNe
}; };
) )
/*
//machine options
(
var durUnit = 0.15;
SynthDef(\machine, {arg freq, gate = 1, sustain, amp;
var sound;
sound = TWChoose.ar(Impulse.kr(0), [
PinkNoise.ar(EnvGen.kr(Env.perc(0.01, sustain, amp * 10), gate, doneAction: 2)),
BrownNoise.ar(EnvGen.kr(Env.perc(0.01, sustain, amp * 2), gate, doneAction: 2))
], [0, 20], 1);
Out.ar([0, 1], sound)
}).add;
~machine1 = Pbind(
\instrument, \machine,
\amp, Pseq(3000.collect({arg i; (i / 2000).clip(0, 0.03)})),
\dur, Pseq(1000.collect({[durUnit, durUnit + (durUnit / 100).rand2].wchoose([10, 1].normalizeSum)}).flat),
\sustain, Pseq(1000.collect({durUnit * (1.75 + 0.5.rand)})),//2.25].wchoose([1, 20].normalizeSum)})),
\freq, Pseq(1000.collect({[[300, 250], [300, 250].choose].wchoose([10, 1].normalizeSum)}).flat / 2)
).play;
SynthDef(\machine, {arg freq, gate = 1, sustain, amp = 0.03;
var trig, sound;
trig = Impulse.kr(10);
sound = BrownNoise.ar(EnvGen.kr(Env.perc(0.01, 0.3 + TRand.kr(0, 0.1, trig), amp), TDelay.kr(trig, TRand.kr(0, 0.002, Dust.kr(0.75)))));
Out.ar([0, 1], sound)
}).play;
)
*/

@ -23,7 +23,6 @@
sus = item[3]; sus = item[3];
note = sus.collect({[string, fret, i]}); note = sus.collect({[string, fret, i]});
//rest = (dur - sus).collect({[-1, -1]});
}, },
1, { 1, {
var freq, dur, sus; var freq, dur, sus;
@ -49,7 +48,6 @@
note ++ rest note ++ rest
}).flatten; }).flatten;
if(res.size > maxSize, {maxSize = res.size}); if(res.size > maxSize, {maxSize = res.size});
//res = res.extend(res.size.trunc(16) + 16, res.last)
res res
}); });
@ -135,8 +133,8 @@
lilyString = switch(p, lilyString = switch(p,
0, {lilyString + "\\clef treble\n"}, 0, {lilyString + "\\clef treble\n"},
1, {lilyString + "\\clef \"treble^8\"\n"}, 1, {lilyString + "\\clef \"treble^(8)\"\n"},
2, {lilyString + "\\clef bass\n"} 2, {lilyString + "\\clef \"bass_(8)\"\n"}
); );
lilyNotes = ["c", "cis", "d", "dis","e", "f", "fis", "g", "gis", "a", "ais", "b"]; lilyNotes = ["c", "cis", "d", "dis","e", "f", "fis", "g", "gis", "a", "ais", "b"];
@ -159,7 +157,6 @@
lilyString = lilyString ++ if((p != 2) && (group[0] == lastVal) && (group[0][0] != -1), {"~ "}, {""}); lilyString = lilyString ++ if((p != 2) && (group[0] == lastVal) && (group[0][0] != -1), {"~ "}, {""});
//add barcheck count //add barcheck count
lilyString = lilyString ++ if((curTime % curTimeSig == 0) && (i != 0), {measureCount = measureCount + 1; "| "}, {""}); lilyString = lilyString ++ if((curTime % curTimeSig == 0) && (i != 0), {measureCount = measureCount + 1; "| "}, {""});
//lilyString = lilyString ++ if((curTime % curTimeSig == 0) && ((measureCount % 4) == 0) && (i != 0), {"\n\\break \n"}, {""});
if((i == (sectionData[sectionCount][0] / 4)) && (g == 0),{ if((i == (sectionData[sectionCount][0] / 4)) && (g == 0),{
var barType, pageBreak; var barType, pageBreak;

Loading…
Cancel
Save