diff --git a/lilypond/counterfeit_in_colonial_connecticut_score.midi b/lilypond/counterfeit_in_colonial_connecticut_score.midi index 9605592..e0e8ec5 100644 Binary files a/lilypond/counterfeit_in_colonial_connecticut_score.midi and b/lilypond/counterfeit_in_colonial_connecticut_score.midi differ diff --git a/lilypond/counterfeit_in_colonial_connecticut_score.pdf b/lilypond/counterfeit_in_colonial_connecticut_score.pdf index ccdfd80..29a5491 100644 Binary files a/lilypond/counterfeit_in_colonial_connecticut_score.pdf and b/lilypond/counterfeit_in_colonial_connecticut_score.pdf differ diff --git a/lilypond/includes/cicc_low.ly b/lilypond/includes/cicc_low.ly index f0b53f6..f378ddf 100644 --- a/lilypond/includes/cicc_low.ly +++ b/lilypond/includes/cicc_low.ly @@ -5,11 +5,11 @@ \clef bass \bar "||" \mark \markup { \bold \box 1.1 } \time 2/2 - <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 1.2 } <<{ a,,4 ^ \markup{ 5.0 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | r2 <<{ a,,4 ^ \markup{ 4.3 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r4 | R1 | r2. <<{ a,,4 ^ \markup{ 3.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | r2. <<{ a,,4 ^ \markup{ 2.9 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | <<{ a,,4 ^ \markup{ 2.1 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 1.4 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | r2. <<{ a,,4 ^ \markup{ 0.7 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | \bar "||" \mark \markup { \bold \box 1.3 } <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | r2 <<{ f,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice r4 | R1 | R1 | R1 | R1 | <<{ e,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r2. | R1 | + <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 1.2 } <<{ a,,4 ^ \markup{ 5.0 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | r2 <<{ a,,4 ^ \markup{ 4.3 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r4 | R1 | r2. <<{ a,,4 ^ \markup{ 3.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | r2. <<{ a,,4 ^ \markup{ 2.9 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | <<{ a,,4 ^ \markup{ 2.1 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 1.4 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | r2. <<{ a,,4 ^ \markup{ 0.7 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | \bar "||" \mark \markup { \bold \box 1.3 } <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | r2 <<{ f,,4 ^ \markup{ 4.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice r4 | R1 | R1 | R1 | R1 | <<{ e,,4 ^ \markup{ 2.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r2. | R1 | \time 3/2 R1*3/2 | \bar ".|" \mark \markup { \bold \box 1.4 } \time 2/2 - <<{ d,4 ^ \markup{ -36.7 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | + <<{ d,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \time 3/2 R1*3/2 | \bar "|.|" \mark \markup { \bold \box 2.1 } \pageBreak @@ -19,13 +19,13 @@ R1*3/2 | \bar "|.|" \mark \markup { \bold \box 2.1 } \time 3/2 r2. <<{ a,,4 ^ \markup{ 0.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | \bar "||" \mark \markup { \bold \box 2.3 } \time 2/2 - <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | <<{ f,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | r4 <<{ e,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r2 | R1 | R1 | R1 | R1 | R1 | \bar ".|" \mark \markup { \bold \box 2.4 } <<{ d,4 ^ \markup{ -36.7 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \bar "|.|" \mark \markup { \bold \box 3.1 } + <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | <<{ f,,4 ^ \markup{ 4.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | r4 <<{ e,,4 ^ \markup{ 2.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r2 | R1 | R1 | R1 | R1 | R1 | \bar ".|" \mark \markup { \bold \box 2.4 } <<{ d,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \bar "|.|" \mark \markup { \bold \box 3.1 } \pageBreak - <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 3.2 } <<{ a,,4 ^ \markup{ 5.0 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | r2 <<{ a,,4 ^ \markup{ 4.3 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r4 | R1 | R1 | r2. <<{ a,,4 ^ \markup{ 3.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | R1 | <<{ a,,4 ^ \markup{ 2.9 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | <<{ a,,4 ^ \markup{ 2.1 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | r2. <<{ a,,4 ^ \markup{ 1.4 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 0.7 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 3.3 } <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | r2. <<{ f,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice | R1 | R1 | R1 | R1 | r4 <<{ e,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r2 | R1 | + <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 3.2 } <<{ a,,4 ^ \markup{ 5.0 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | r2 <<{ a,,4 ^ \markup{ 4.3 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r4 | R1 | R1 | r2. <<{ a,,4 ^ \markup{ 3.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | R1 | <<{ a,,4 ^ \markup{ 2.9 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | <<{ a,,4 ^ \markup{ 2.1 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | r2. <<{ a,,4 ^ \markup{ 1.4 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 0.7 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 3.3 } <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | r2. <<{ f,,4 ^ \markup{ 4.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice | R1 | R1 | R1 | R1 | r4 <<{ e,,4 ^ \markup{ 2.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r2 | R1 | \time 3/2 R1*3/2 | \bar ".|" \mark \markup { \bold \box 3.4 } \time 2/2 - <<{ d,4 ^ \markup{ -36.7 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | + <<{ d,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | \time 3/2 R1*3/2 | \bar "|.|" \mark \markup { \bold \box 4.1 } \pageBreak @@ -35,4 +35,4 @@ R1*3/2 | \bar "|.|" \mark \markup { \bold \box 4.1 } \time 3/2 R1*3/2 | \bar "||" \mark \markup { \bold \box 4.2 } \time 2/2 - <<{ a,,4 ^ \markup{ 5.0 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 4.4 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | <<{ a,,4 ^ \markup{ 3.8 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | R1 | r2. <<{ a,,4 ^ \markup{ 3.1 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 2.5 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | r2 <<{ a,,4 ^ \markup{ 1.9 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r4 | R1 | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 1.3 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 0.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 4.3 } <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | r2 <<{ f,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice r4 | R1 | R1 | R1 | r2 <<{ e,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r4 | R1 | R1 | R1 | R1 | \bar ".|" \mark \markup { \bold \box 4.4 } <<{ d,4 ^ \markup{ -36.7 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 ] \bar "|." } + <<{ a,,4 ^ \markup{ 5.0 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 4.4 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | <<{ a,,4 ^ \markup{ 3.8 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2. | R1 | R1 | R1 | r2. <<{ a,,4 ^ \markup{ 3.1 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 2.5 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | r2 <<{ a,,4 ^ \markup{ 1.9 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r4 | R1 | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 1.3 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | r4 <<{ a,,4 ^ \markup{ 0.6 } } \new Voice { \voiceTwo a,,4 }>> \oneVoice r2 | R1 | R1 | R1 | \bar "||" \mark \markup { \bold \box 4.3 } <<{ d,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | r2 <<{ f,,4 ^ \markup{ 4.0 } } \new Voice { \voiceTwo f,,4 }>> \oneVoice r4 | R1 | R1 | R1 | r2 <<{ e,,4 ^ \markup{ 2.0 } } \new Voice { \voiceTwo e,,4 }>> \oneVoice r4 | R1 | R1 | R1 | R1 | \bar ".|" \mark \markup { \bold \box 4.4 } <<{ d,,4 ^ \markup{ 0.0 } } \new Voice { \voiceTwo d,,4 }>> \oneVoice r2. | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 | R1 ] \bar "|." } diff --git a/supercollider/cicc_gui.scd b/supercollider/cicc_gui.scd index 525a07c..1a3489e 100644 --- a/supercollider/cicc_gui.scd +++ b/supercollider/cicc_gui.scd @@ -77,7 +77,7 @@ pauseButton.value = 0; if(pState.value == 0, {~patterns[0].stop; clock.string = clockStringFunc.value((startPos * ~totalDur * 5).asInteger)}, - {~patterns[0].play})} + {~currentSection = 0; ~play.set(\sel, ~currentSection % 2); ~patterns[~currentSection].play})} ), pauseButton = Button(view).states_([["pause", Color.black], ["pause", Color.black, Color.grey]]).action_( {| pState | diff --git a/supercollider/cicc_main.scd b/supercollider/cicc_main.scd index 9a35e71..5c8999d 100644 --- a/supercollider/cicc_main.scd +++ b/supercollider/cicc_main.scd @@ -19,6 +19,7 @@ appEnvironment.push; ~patterns = ~allMusicData[0]; ~scoreData = ~allMusicData[1]; ~sectionOffsets = ~allMusicData[2]; +~currentSection = 0; ~play = Synth.new(\masterPlayerControl); @@ -46,8 +47,9 @@ appEnvironment.push; //appEnvironment.pop; ) ~fader = Synth(\crossFade, [\sel, 0, \busA, ~busA.index, \busB, ~busB.index]); -~play.set(\sel, 1); -~patterns[1].play(quant: 0) +~currentSection = 0 +~play.set(\sel, ~currentSection % 2); +~patterns[~currentSection].play(quant: 0) ~transcribe.value(~scoreData) ~patterns[0].stop diff --git a/supercollider/cicc_musical_data_generator.scd b/supercollider/cicc_musical_data_generator.scd index 3af7575..f7e36a1 100644 --- a/supercollider/cicc_musical_data_generator.scd +++ b/supercollider/cicc_musical_data_generator.scd @@ -318,7 +318,7 @@ finalizeAccompLow = {arg guitarSeq, sectionSeq; trig = item.last; if(lastTrigVal != trig, { freq1 = if(trig > -1, {62.midicps / 4 * 3/4}, {62.midicps / 4}); - freq2 = freq1 + if(trig > -1, {5 * (1-trig)}, {0}); + freq2 = freq1 + if(trig > -1, {(5 * (1-trig))}, {0}); finalDur = durAccum; accompLowSeq = accompLowSeq.add([freq1, freq2, finalDur]); durAccum = 0; @@ -331,15 +331,15 @@ finalizeAccompLow = {arg guitarSeq, sectionSeq; sectionSeq.collect({arg section; if(section[1] == 1, { var curTime = section[0]; - accompLowSeq = accompLowSeq.add([62.midicps / 4, 62.midicps / 8, curTime]); + accompLowSeq = accompLowSeq.add([62.midicps / 8, (62.midicps / 8) + 0, curTime]); curTime = curTime - (50.rand + 50).round(4).asInteger; - accompLowSeq = accompLowSeq.add([64.midicps / 8, 64.midicps / 8, curTime]); + accompLowSeq = accompLowSeq.add([64.midicps / 8, (64.midicps / 8) + 2, curTime]); curTime = curTime - (50.rand + 50).round(4).asInteger; - accompLowSeq = accompLowSeq.add([65.midicps / 8, 65.midicps / 8, curTime]); + accompLowSeq = accompLowSeq.add([65.midicps / 8, (65.midicps / 8) + 4, curTime]); }); if(section[1] == -1, { var curTime = section[0]; - accompLowSeq = accompLowSeq.add([62.midicps / 4, 62.midicps / 4, curTime]); + accompLowSeq = accompLowSeq.add([62.midicps / 4, (62.midicps / 4) + 0, curTime]); }); }); diff --git a/supercollider/cicc_sonifier.scd b/supercollider/cicc_sonifier.scd index 432e253..e8bea11 100644 --- a/supercollider/cicc_sonifier.scd +++ b/supercollider/cicc_sonifier.scd @@ -32,7 +32,7 @@ SynthDef(\masterPlayerControl, { //accompLowSig = SelectX.ar(sel, [In.ar(~accompLowBusA), In.ar(~accompLowBusB)]) * accompLowVol; accompLowSig = Mix.ar( [ - In.ar(~accompLowBusA) * EnvGen.kr(Env.asr(0.001, 1, 0.1), (sel + 1) % 2).poll, + In.ar(~accompLowBusA) * EnvGen.kr(Env.asr(0.001, 1, 0.1), (sel + 1) % 2), In.ar(~accompLowBusB) * EnvGen.kr(Env.asr(0.001, 1, 0.1), sel) ] ) * accompLowVol; @@ -57,7 +57,7 @@ SynthDef(\masterPlayerControl, { SynthDef(\transport, {arg beat, fin; SendReply.kr(Changed.kr(beat * (beat < fin)),'/measureClock', values: [beat]); SendReply.kr(TDelay.kr(Changed.kr(beat * (beat < fin)), 0.25),'/measureClockReset', values: [beat]); - SendReply.kr(Changed.kr(beat.poll < fin.poll),'/playNextSubsection'); + SendReply.kr(Changed.kr(beat < fin),'/playNextSubsection'); }).add; @@ -73,7 +73,21 @@ SynthDef(\karplus, {arg freq, gate = 1, amp = 0.5, bus; //~~~~accompaniment SynthDef(\accompBass, {arg freq1 = 100, freq2 = 100, gate = 1, amp = 0.5, bus, cutoff = 0; var bassDrop; - bassDrop = Mix.ar([SinOsc.ar(freq1, 0, 0.5), SinOsc.ar(freq2, 0, 0.5)]) * + bassDrop = Mix.ar( + [ + SinOsc.ar(freq1, 0, 0.5), + /* + Select.ar(((freq2 - freq1).poll < 1.1).poll, + [ + SinOsc.ar(freq2, 0, 0.5), + SinOsc.ar((freq1 + + (EnvGen.kr(Env.cutoff(10), Impulse.kr(0) + Changed.kr(freq2)) * (freq2 - freq1))).poll, 0, 0.5) + ] + ); + */ + SinOsc.ar(freq2, 0, 0.5) + ] + ) * EnvGen.kr(Env.perc(0.1, 10, level: amp), Impulse.kr(0) + Changed.kr(freq2)); //EnvGen.kr(Env.cutoff(0.1, level: amp), cutoff); Out.ar(bus, bassDrop) @@ -118,8 +132,9 @@ SynthDef(\droneOut, {arg gate, bus; OSCFunc({ arg msg, time; - ~play.set(\sel, 0); - ~patterns[2].play(quant: 0) + ~currentSection = ~currentSection + 1; + ~play.set(\sel, ~currentSection % 2); + ~patterns[~currentSection].play(quant: 0) },'/playNextSubsection', s.addr); //~~~~gen music