You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
scd/harsh_light_slows_sight.scd

90 lines
3.1 KiB
Plaintext

(
Ndef(\f1,{SinOscFB.ar(freq:142, feedback:Saw.ar(20 * SinOsc.ar(20)) + SinOsc.ar(0.1)).dup * 0.1}).add;
Ndef(\f2,{
var freq = MouseX.kr(100, 400);
var input = SinOsc.ar(freq, 0, 0.1);
var response = WeaklyNonlinear.ar(input);
var filt = RLPF.ar(response, XLine.kr(500, 5000, 10), 0.3);
Pan2.ar(0.1 * filt, 0);
}).add;
Ndef(\f3,{WeaklyNonlinear.ar(SinOsc.ar(70), Impulse.kr(20), ratex:0.1, ratey:20, freq:440, initx:10 + SinOsc.kr(40), inity:20 + SinOsc.kr(20), alpha:SinOsc.kr(1), xexponent:0, beta:0, yexponent:0).dup * 0.1}).add;
Ndef(\f4, {
var f1 = 197.9;
var f2 = 210.3;
var f3 = 239.7;
// feedback amounts
var fbAmt = Line.kr(0, 1, 8); // can modulate later
// var fbAmt = 0;
var x1, x2, x3;
var sig;
// Indirect feedback cycle sorta
x1 = SinOscFB.ar(f1, SinOscFB.ar(f2, 1 * SinOsc.kr(10), mul:1 + SinOsc.kr(30)));
x2 = SinOscFB.ar(f2, x1);
x3 = SinOscFB.ar(f3, x2 * fbAmt);
// Mix and protect ears
sig = Limiter.ar((x1 + x2 + x3).dup * 0.2);
sig = AllpassC.ar(sig, maxdelaytime:0.2 + SinOsc.kr(0.1), delaytime:0.8 + SinOsc.kr(0.1), decaytime:0.0, mul:1.0);
}).add;
)
)
(
ClipTimeline('azzz').tracks = [ ( 'index': 0, 'recordArmed': false, 'recordBus': 0, 'muted': false ), ( 'index': 1, 'recordArmed': false, 'recordBus': 0, 'muted': false ), ( 'index': 2, 'recordArmed': false, 'recordBus': 0, 'muted': false ), ( 'index': 3, 'recordArmed': false, 'recordBus': 0, 'muted': false ) ];
{
ClipTimeline('azzz').eventList = TimelineEventList.newFrom([
(\absTime: 0, \dur: 0.0, \label: 'start', \playDur: 0.0, \relDur: 0.0, \sustain: 0, \type: 'start', ),
PlayerEvent((\absTime: 0.0, \dur: 4.0, \legato: 1, \midinote: 0.0, \playDur: 4.0, \receiver: PlayerWrapper(Ndef('f1')), \relDur: 4.0, \sustain: 4.0, \type: 'player', )),
PlayerEvent((\absTime: 4.0, \dur: 4.0, \legato: 1, \midinote: 1.0, \playDur: 4.0, \receiver: PlayerWrapper(Ndef('f2')), \relDur: 4.0, \sustain: 4.0, \type: 'player', )),
PlayerEvent((\absTime: 8.0, \dur: 4.0, \legato: 1, \midinote: 2.0, \playDur: 4.0, \receiver: PlayerWrapper(Ndef('f3')), \relDur: 4.0, \sustain: 4.0, \type: 'player', )),
PlayerEvent((\absTime: 12.0, \dur: 4.0, \legato: 1, \midinote: 3.0, \playDur: 4.0, \receiver: PlayerWrapper(Ndef('f4')), \relDur: 4.0, \sustain: 4.0, \type: 'player', )),
(\absTime: 16, \dur: 0, \label: 'end', \playDur: 0, \relDur: 0, \type: 'end', ),
]);
}.value;
);
ClipTimeline(\azzz).edit
ClipTimeline(\azzz).play
Pdef.defaultQuant = 0; // disable
//////////////////////////////////////////////////////////////////////////////////////////
(
{
var f1 = 197.9;
var f2 = 210.3;
var f3 = 239.7;
// feedback amounts
var fbAmt = Line.kr(0, 1, 8); // can modulate later
// var fbAmt = 0;
var x1, x2, x3;
var sig;
// Indirect feedback cycle sorta
x1 = SinOscFB.ar(f1, SinOscFB.ar(f2, 1 * SinOsc.kr(10), mul:1 + SinOsc.kr(30)));
x2 = SinOscFB.ar(f2, x1);
x3 = SinOscFB.ar(f3, x2 * fbAmt);
// Mix and protect ears
sig = Limiter.ar((x1 + x2 + x3).dup * 0.2);
sig = AllpassC.ar(sig, maxdelaytime:0.2 + SinOsc.kr(0.1), delaytime:0.8 + SinOsc.kr(0.1), decaytime:0.0, mul:1.0);
}.play;
)