first timeline draft
parent
c364d9844d
commit
328a57f434
|
@ -1,6 +1,6 @@
|
|||
( // synthdef /////////
|
||||
SynthDef(\fm_grainer, {
|
||||
arg out = 0, modfreq = rrand(10,1000), carfreq = 100 ;
|
||||
arg out = 0, modfreq = rrand(10,1000), carfreq = 100, amp=0.5 ;
|
||||
var signal;
|
||||
|
||||
signal = GrainFM.ar(
|
||||
|
@ -11,12 +11,12 @@ SynthDef(\fm_grainer, {
|
|||
modfreq: modfreq,
|
||||
// index: LFNoise1.kr.range(1, 90),
|
||||
index: SinOsc.kr(0.05)*0.2,// LFNoise1.kr.range(1, 90),
|
||||
pan: LFNoise1.kr.range(-1,1),
|
||||
pan: 0,
|
||||
envbufnum: -1
|
||||
) * 0.2;
|
||||
|
||||
signal = signal * EnvGen.kr(Env.linen(1,60,10,0.4,\lin),doneAction:Done.freeSelf);
|
||||
signal = signal * EnvGen.kr(Env.linen(1,60,10,0.4,\lin),doneAction:Done.freeSelf) * amp;
|
||||
|
||||
Out.ar(out, Splay.ar(signal));
|
||||
Out.ar(out, signal);
|
||||
}).add;
|
||||
);
|
|
@ -1,8 +1,8 @@
|
|||
(
|
||||
SynthDef(\henonSynth1, {
|
||||
|
||||
arg out=0;
|
||||
var sig, freq;
|
||||
arg out=0, amp=0.5, gate=1, fadeTime=1;
|
||||
var sig, freq, env;
|
||||
|
||||
freq = HenonN.ar(
|
||||
freq: 5000,
|
||||
|
@ -19,15 +19,10 @@ SynthDef(\henonSynth1, {
|
|||
sig = sig.clip2(0.8);
|
||||
sig = LeakDC.ar(sig);
|
||||
|
||||
// if you don't have sc3_plugins, comment out the following line
|
||||
//sig = sig + (Greyhole.ar(in:sig, feedback:0.2, diff: 1, delayTime: 0.6) * 0.7);
|
||||
env = EnvGen.kr( Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
|
||||
gate, doneAction: Done.freeSelf);
|
||||
|
||||
//y = SinOsc.kr(0.1,phase:1.5pi).range(0,1);
|
||||
//x = SinOsc.kr(0.1,phase:1.5pi).range(0,1);
|
||||
//x = SinOsc.kr(0.1,phase:1pi,mul:5).clip2.range(0,1);
|
||||
|
||||
//Out.ar(out, sig);
|
||||
//sig = ~octoPanOut.value(sig, x, y, fact);
|
||||
sig = sig * env * amp;
|
||||
|
||||
Out.ar(out,sig);
|
||||
}).add;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
( // latoocarfian trig and 2DC ...
|
||||
SynthDef(\latooTriggers, { |out, trigA=1.1|
|
||||
var trig, sig;
|
||||
SynthDef(\latooTriggers, { |out, trigA=1.1, gate=1, fadeTime=1, amp=0.5|
|
||||
var trig, sig, env;
|
||||
|
||||
trig = LatoocarfianTrig.kr(
|
||||
minfreq: 4,
|
||||
|
@ -38,6 +38,12 @@ SynthDef(\latooTriggers, { |out, trigA=1.1|
|
|||
|
||||
sig = LeakDC.ar(sig * 0.6);
|
||||
|
||||
env = EnvGen.kr(
|
||||
Env([0, 1, 0], [fadeTime, fadeTime], \sin, 1),
|
||||
gate, doneAction: Done.freeSelf);
|
||||
|
||||
sig = sig * env * amp;
|
||||
|
||||
Out.ar(out,sig);
|
||||
|
||||
}).add;
|
||||
|
|
249
rhizosphere.scd
249
rhizosphere.scd
|
@ -97,7 +97,7 @@ s.meter; s.plotTree;
|
|||
);
|
||||
|
||||
(
|
||||
var timeLine, r;
|
||||
var timeLine;
|
||||
|
||||
// CmdPeriod frees these, but not the busses, so only these need to be re-inst.
|
||||
|
||||
|
@ -138,10 +138,10 @@ var timeLine, r;
|
|||
~panner3y.free;
|
||||
~panner4y.free;
|
||||
//~panner1y = SynthDef(\pannerOsc, {Out.kr(~panBus1y, SinOsc.kr(0.1).range(0.1,0.2))}).play;
|
||||
~panner1y = SynthDef(\randomPanY1, { Out.kr(~panBus1y, LFNoise2.kr(1).range(0,0.28))}).play;
|
||||
~panner2y = SynthDef(\randomPanY2, { Out.kr(~panBus2y, LFNoise2.kr(1).range(0,0.28))}).play;
|
||||
~panner3y = SynthDef(\randomPanY3, { Out.kr(~panBus3y, LFNoise2.kr(1).range(0,0.28))}).play;
|
||||
~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise2.kr(1).range(0,0.28))}).play;
|
||||
~panner1y = SynthDef(\randomPanY1, { Out.kr(~panBus1y, LFNoise1.kr(1).range(0,0.28))}).play;
|
||||
~panner2y = SynthDef(\randomPanY2, { Out.kr(~panBus2y, LFNoise1.kr(1).range(0,0.28))}).play;
|
||||
~panner3y = SynthDef(\randomPanY3, { Out.kr(~panBus3y, LFNoise1.kr(1).range(0,0.28))}).play;
|
||||
~panner4y = SynthDef(\randomPanY4, { Out.kr(~panBus4y, LFNoise1.kr(1).range(0,0.28))}).play;
|
||||
// convert to SynthDef + Synth for common oscilations?
|
||||
|
||||
~reverb1wetBus.free; ~wetOsc.free; // clean up
|
||||
|
@ -165,105 +165,193 @@ timeLine = Routine {
|
|||
"--- starting forestSoil granulation ...".postln;
|
||||
|
||||
~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20]);
|
||||
|
||||
~soil1durBus = Bus.control(s,1);
|
||||
~soil1durBus.value = 0.0001;
|
||||
~soil1.map(\dur, ~soil1durBus);
|
||||
|
||||
wait(80);
|
||||
|
||||
"--- starting soil2 ...".postln;
|
||||
~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf, \dur, 0.0001 ,\fadeTime, 20]);
|
||||
|
||||
~soil2durBus = Bus.control(s,1);
|
||||
~soil2durBus.value = 0.0001;
|
||||
~soil2.map(\dur, ~soil2durBus);
|
||||
|
||||
wait(20);
|
||||
|
||||
"--- starting oscilating duration ...".postln;
|
||||
~soil1DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil1durBus, SinOsc.kr(0.01,1.5pi).range(0.0001, 0.1))} ).play;
|
||||
|
||||
wait(20);
|
||||
|
||||
"--- starting oscilating duration 2...".postln;
|
||||
~soil2DurOsc = SynthDef( \soilDurOsc, {Out.kr(~soil2durBus, SinOsc.kr(0.01,1.5pi).range(0.0001, 0.2))} ).play;
|
||||
|
||||
wait(120);
|
||||
|
||||
"--- return to static duration...".postln;
|
||||
~soil1.set(\dur, 0.0001);
|
||||
wait(1);
|
||||
~soil2.set(\dur, 0.0001);
|
||||
|
||||
|
||||
// this could repeat somewhat?
|
||||
|
||||
|
||||
"--- fade soils...".postln;
|
||||
~soil1.set(\gate, 0, \fadeTime, 15); // use envelope to fade out
|
||||
wait(3);
|
||||
~soil2.set(\gate, 0, \fadeTime, 15); // use envelope to fade out
|
||||
wait(2);
|
||||
wait(20);
|
||||
|
||||
~soil1DurOsc.free;
|
||||
~soil2DurOsc.free;
|
||||
|
||||
/* NOTES:
|
||||
~soil1DurOsc = SynthDef(\soilDurOsc, {Out.kr(30, SinOsc.kr(0.01,1.5pi).range(0.0001, 1))}).play
|
||||
~soil1DurOsc.free
|
||||
// start oscilation, very slowly
|
||||
~soil1.set(\dur, 0.0001);
|
||||
|
||||
~soil1 = Synth(\granSoil, [\out, ~octoBus1, \sndbuf, ~forestSoilBuf]);
|
||||
|
||||
~soil1.set(\rate, 0.2);
|
||||
~soil1.set(\out, 1);
|
||||
~soil1.set(\dur, 0.01);
|
||||
~soil1.set(\amp, 1);
|
||||
~soil1.set(\out, 1);
|
||||
~soil1.set(\envbuf, ~planotaBuf);
|
||||
|
||||
// send SinOscilation to a argument via bus
|
||||
~foreskrBus = Bus.control(s, 1);
|
||||
~soil1.map(\dur, ~foreskrBus);
|
||||
~durOsc = {Out.kr(~foreskrBus, SinOsc.kr(0.1).range(0.007,0.1))}.play;
|
||||
~durOsc.free;
|
||||
|
||||
// another granulator
|
||||
~soil2 = Synth(\granSoil, [\out, ~octoBus2, \sndbuf, ~forestSoilBuf]);
|
||||
~soil2.map(\dur, ~foreskrBus);
|
||||
|
||||
~soil2.set(\amp, 0.1)
|
||||
|
||||
~soil1.set(\gate, 0, \fadeTime, 2); // use envelope to fade out
|
||||
~soil2.set(\gate, 0, \fadeTime, 2); // use envelope to fade out
|
||||
|
||||
// stop:free
|
||||
~soil1.free // stop.
|
||||
~soil2.free // stop.
|
||||
*/
|
||||
// trigRingz //////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
"--- starting lorenzTrig1 ...".postln;
|
||||
~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5, \fadeTime, 5]);
|
||||
~lorenzTrig1.set(\fadeTime, 5, \gate, 0);
|
||||
wait(30);
|
||||
|
||||
//~lorenzTrig1.free;
|
||||
"--- starting stdTrig1 ...".postln;
|
||||
~stdTrig1 = Synth(\stndTrigRing, [\out, ~octoBus2, \freq,1900, \amp,0.5,\fadeTime, 10]);
|
||||
wait(20);
|
||||
|
||||
"--- starting lorenzTrig2 ...".postln;
|
||||
~lorenzTrig2 = Synth(\lorenzTrigRing, [\out, ~octoBus3, \freq, 400, \amp, 0.3, \fadeTime, 10, \min, 5, \max, 20]);
|
||||
wait(20);
|
||||
|
||||
"--- starting stdTrig2 ...".postln;
|
||||
~stdTrig2 = Synth(\stndTrigRing, [\freq, 70, \min, 0, \max, 2, \decay, 2, \ffreq, 200, \amp, 0.4, \out, ~octoBus4, \fadeTime, 20]) ;
|
||||
wait(20);
|
||||
|
||||
"--- starting henoTrig1 ...".postln;
|
||||
~henoTrig1 = Synth(\henoTrigRing, [\out, ~octoBus2, \freq, 2700, \amp, 1, \min, 0.1, \max, 1, \fadeTime, 20]);
|
||||
wait(20);
|
||||
|
||||
"--- starting henoTrig1 ...".postln;
|
||||
~gbmanTrig1 = Synth(\gbmanTrigRing, [\out, ~octoBus1, \freq, 90, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 2]);
|
||||
wait(20);
|
||||
|
||||
"--- starting latooTrig1 ...".postln;
|
||||
~latooTrig1 = Synth(\latooTrigRing, [\out, ~octoBus4, \freq, 3300, \decay, 3, \min, 0.2, \max, 1, \amp, 0.2, \fadeTime, 10 ]);
|
||||
wait(20);
|
||||
|
||||
"--- starting latooTrig2 ...".postln;
|
||||
~latooTrig2 = Synth(\latooTrigRing, [\out, ~octoBus3, \freq, 4300, \decay, 0.2, \min, 1, \max, 10, \amp, 0.2, \fadeTime, 10 ]);
|
||||
wait(20);
|
||||
|
||||
"--- starting fhnTrig1 ...".postln;
|
||||
~fhnTrig1 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 110, \amp, 0.5, \decay, 2, \min, 0.2, \max, 1, \amp, 0.4, \fadeTime, 10]);
|
||||
wait(20);
|
||||
|
||||
"--- starting fhnTrig2 ...".postln;
|
||||
~fhnTrig2 = Synth(\fhnTrigRing, [\out, ~octoBus2, \freq, 2110, \amp, 0.5, \min, 2, \max, 20, \amp, 0.5, \fadeTime, 10]);
|
||||
wait(40);
|
||||
|
||||
"--- starting ~fmgrainer ...".postln;
|
||||
~fmgrainer = Routine { 200.do({ x = Synth(\fm_grainer, [ "modfreq", rrand(10,1000), "carfreq", rrand(40,100), \out, ~octoBus1 ]); 1.wait; }); "--- fmgrains done generating new ones ...".postln; }.play;
|
||||
// this one will fade out by itself at some point
|
||||
wait(60);
|
||||
|
||||
"--- fading out ~stdTrig1, stdTrig2, lorenzTrig2, henoTrig1...".postln;
|
||||
~stdTrig1.set(\fadeTime, 5, \gate, 0);
|
||||
~stdTrig2.set(\fadeTime, 8, \gate, 0);
|
||||
~lorenzTrig2.set(\fadeTime, 12, \gate, 0);
|
||||
~henoTrig1.set(\fadeTime, 15, \gate, 0);
|
||||
wait(30);
|
||||
|
||||
"--- fading out ...".postln;
|
||||
~gbmanTrig1.set(\fadeTime, 15, \gate, 0);
|
||||
~latooTrig1.set(\fadeTime, 1, \gate, 0);
|
||||
~latooTrig2.set(\fadeTime, 10, \gate, 0);
|
||||
~fhnTrig1.set(\fadeTime, 1, \gate, 0);
|
||||
wait(20);
|
||||
|
||||
"--- fading out lorenzTrgi1 ...".postln;
|
||||
~lorenzTrig1.set(\fadeTime, 30, \gate, 0);
|
||||
wait(80);
|
||||
|
||||
"--- fading out fhnTrig2 ...".postln;
|
||||
~fhnTrig2.set(\fadeTime, 20, \gate, 0);
|
||||
|
||||
"--- latooWanderings ...".postln;
|
||||
~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 30, \amp, 0.3]);
|
||||
wait(60);
|
||||
|
||||
"--- markov1 ...".postln;
|
||||
~markov1 = Synth(\markovS1, [ \out, ~octoBus1, \freq, 440, \tsize, 3, \amp, 0.3, \clip, 0.69, \fadeTime, 0.01 ]);
|
||||
wait(60);
|
||||
|
||||
"--- markov fade, latooWan fade, distbleeps ...".postln;
|
||||
~markov1.set(\gate, 0, \fadeTime, 0.01);
|
||||
~latooWan1.set(\gate, 0, \fadeTime, 0.01);
|
||||
~distbleeps = Synth(\latooTriggers, [\out, ~octoBus3, \trigA, 1.1, \fadeTime, 0.01, \amp, 0.7]);
|
||||
wait(60);
|
||||
|
||||
"--- markov7 ...".postln;
|
||||
~markov7 = Synth(\markovS1, [ \out, ~octoBus2, \freq, 740, \tsize, 3, \amp, 0.1, \clip, 0.9, \fadeTime, 7 ]);
|
||||
wait(60);
|
||||
|
||||
"--- fade: markov7, distbleeps ...".postln;
|
||||
~markov7.set(\gate, 0, \fadeTime, 0.01);
|
||||
~distbleeps.set(\gate, 0, \fadeTime, 0.01);
|
||||
|
||||
"--- markov9 ...".postln;
|
||||
~markov9 = Synth(\markovS1, [ \out, ~octoBus1, \freq, 1940, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.01 ]);
|
||||
wait(30);
|
||||
|
||||
"--- fade: markov9 ...".postln;
|
||||
~markov9.set(\gate, 0, \fadeTime, 0.01);
|
||||
wait(5);
|
||||
|
||||
"--- markov10,11,12 ...".postln;
|
||||
~markov10 = Synth(\markovS1, [ \out, ~octoBus4,
|
||||
\freq, 501, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.1 ]);
|
||||
~markov11 = Synth(\markovS1, [ \out, ~octoBus3,
|
||||
\freq, 1101, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.1 ]);
|
||||
~markov12 = Synth(\markovS1, [ \out, ~octoBus2,
|
||||
\freq, 3001, \tsize, 3, \amp, 0.2, \clip, 0.9, \fadeTime, 0.1 ]);
|
||||
wait(60);
|
||||
|
||||
"--- noiseCrackle ...".postln;
|
||||
~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 40 ]);
|
||||
"--- fade markov10,11,12 ...".postln;
|
||||
~markov10.set(\gate, 0, \fadeTime, 50);
|
||||
~markov11.set(\gate, 0, \fadeTime, 50);
|
||||
~markov12.set(\gate, 0, \fadeTime, 50);
|
||||
wait(40);
|
||||
|
||||
"--- noiseCrackle lpfa hpfa ...".postln;
|
||||
~noiseCr1.set(\lpfa,1,\hpfa,0);
|
||||
wait(10);
|
||||
|
||||
"--- noiseCrackle lpfa hpfa ...".postln;
|
||||
~noiseCr1.set(\lpfa,0,\hpfa,1);
|
||||
wait(5);
|
||||
|
||||
"--- noiseCrackle lpfa hpfa ...".postln;
|
||||
~noiseCr1.set(\lpfa,1,\hpfa,1);
|
||||
wait(10);
|
||||
|
||||
"--- darkHenon ...".postln;
|
||||
~darkHenon1 = Synth(\henonLsynth2, [\out, ~octoBus4, \fadeTime, 60]);
|
||||
wait(20);
|
||||
|
||||
"--- noiseCrackle amp 0.5 ...".postln;
|
||||
~noiseCr1.set(\amp, 0.5);
|
||||
wait(40);
|
||||
|
||||
"--- noiseCrackle amp 0.2 ...".postln;
|
||||
~noiseCr1.set(\amp, 0.2);
|
||||
wait(30);
|
||||
|
||||
"--- noiseCrackle fade ...".postln;
|
||||
~noiseCr1.set(\fadeTime, 30, \gate,0);
|
||||
wait(60);
|
||||
|
||||
"--- henonS1 ...".postln;
|
||||
~henonS1 = Synth(\henonSynth1, [\out, ~octoBus3, \amp, 0.2, \fadeTime, 40]);
|
||||
wait(180);
|
||||
|
||||
"--- final fade henonS1, darkHenon ...".postln;
|
||||
~henonS1.set(\gate, 0, \fadeTime, 50);
|
||||
~darkHenon1.set(\gate, 0, \fadeTime, 40);
|
||||
|
||||
|
||||
|
||||
|
@ -381,43 +469,6 @@ timeLine = Routine {
|
|||
\freq, 5000, \tsize, 3, \amp, 0.1, \clip, 0.9, \fadeTime, 10 ]);
|
||||
wait(30);
|
||||
|
||||
~markov10 = Synth(\markovS1, [ \out, ~octoBus1,
|
||||
\freq, 501, \tsize, 3, \amp, 0.1, \clip, 0.9, \fadeTime, 10 ]);
|
||||
~markov11 = Synth(\markovS1, [ \out, ~octoBus1,
|
||||
\freq, 1101, \tsize, 3, \amp, 0.1, \clip, 0.9, \fadeTime, 10 ]);
|
||||
~markov12 = Synth(\markovS1, [ \out, ~octoBus1,
|
||||
\freq, 3001, \tsize, 3, \amp, 0.1, \clip, 0.9, \fadeTime, 10 ]);
|
||||
|
||||
~markov5.set(\gate, 0);
|
||||
~markov6.set(\gate, 0);
|
||||
|
||||
wait(30);
|
||||
|
||||
~markov7.set(\gate, 0, \fadeTime, 40);
|
||||
~markov8.set(\gate, 0, \fadeTime, 40);
|
||||
~markov9.set(\gate, 0, \fadeTime, 40);
|
||||
wait(60);
|
||||
|
||||
~markov10.set(\gate, 0, \fadeTime, 40);
|
||||
~markov11.set(\gate, 0, \fadeTime, 40);
|
||||
~markov12.set(\gate, 0, \fadeTime, 40);
|
||||
wait(20);
|
||||
|
||||
|
||||
~noiseCr1 = Synth(\noiseCrackle, [\out, ~octoBus1, \fadeTime, 10 ]);
|
||||
wait(30);
|
||||
|
||||
~noiseCr1.set(\lpfa,1,\hpfa,0);
|
||||
wait(10);
|
||||
|
||||
~noiseCr1.set(\lpfa,0,\hpfa,1);
|
||||
wait(5);
|
||||
|
||||
~noiseCr1.set(\lpfa,1,\hpfa,1);
|
||||
wait(30);
|
||||
|
||||
~noiseCr1.set(\fadeTime, 20, \gate,0);
|
||||
|
||||
**********/
|
||||
|
||||
|
||||
|
@ -514,7 +565,7 @@ FreqScope.new(400, 200, 0, server: s);
|
|||
~henonSquare = Synth(\henonSquare, [\out, ~octoBus1, \amp, 0.2]);
|
||||
~henonSquare.set(\gate,0);
|
||||
|
||||
~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 0.1]);
|
||||
~latooWan1 = Synth(\latooWanderings, [\out, ~octoBus4, \fadeTime, 20, \amp, 0.3]);
|
||||
~latooWan1.set(\out,1)
|
||||
~latooWan1.set(\out,~octoBus1)
|
||||
~latooWan1.set(\amp,1)
|
||||
|
@ -546,30 +597,6 @@ FreqScope.new(400, 200, 0, server: s);
|
|||
|
||||
|
||||
|
||||
////// ring resonator ringing the clicks from triggers
|
||||
|
||||
~stdTrig1 = Synth(\stndTrigRing, [\out, ~octoBus1, \freq,1900]);
|
||||
~stdTrig1.free
|
||||
|
||||
(~stdTrig2 = Synth(\stndTrigRing, [\freq, 70, \min, 0, \max, 2, \decay, 2, \ffreq, 200, \amp, 0.9,
|
||||
\out, ~octoBus1]) )
|
||||
~stdTrig2.free
|
||||
|
||||
~henoTrig1 = Synth(\henoTrigRing, [\out, ~octoBus1, \freq, 700, \amp, 0.5], ~octoPanner1, \addBefore);
|
||||
~henoTrig1.free;
|
||||
|
||||
~gbmanTrig1 = Synth(\gbmanTrigRing, [\out, ~octoBus1, \freq, 900, \amp, 0.5], ~octoPanner1, \addBefore);
|
||||
~gbmanTrig1.free;
|
||||
|
||||
~latooTrig1 = Synth(\latooTrigRing, [\out, ~octoBus1, \freq, 300], ~octoPanner1, \addBefore);
|
||||
~latooTrig1.free;
|
||||
|
||||
~lorenzTrig1 = Synth(\lorenzTrigRing, [\out, ~octoBus1, \freq, 1400, \amp, 0.5]);
|
||||
~lorenzTrig1.free;
|
||||
|
||||
~fhnTrig1 = Synth(\fhnTrigRing, [\out, ~octoBus1, \freq, 2100, \amp, 0.5], ~octoPanner1, \addBefore);
|
||||
~fhnTrig1.free;
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue