From ecb3ce75a983fd0fa900e1c20d7b8590fb882696 Mon Sep 17 00:00:00 2001 From: Leo Coogan Date: Sat, 14 Jun 2025 16:49:08 -0400 Subject: [PATCH] composition progress --- harsh_light_slows_sight.scd | 61 +++++++++++++++++++++++++++++++++++++ indirect_sinefb.scd | 31 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 harsh_light_slows_sight.scd create mode 100644 indirect_sinefb.scd diff --git a/harsh_light_slows_sight.scd b/harsh_light_slows_sight.scd new file mode 100644 index 0000000..0276899 --- /dev/null +++ b/harsh_light_slows_sight.scd @@ -0,0 +1,61 @@ +Ndef(\f1,{SinOscFB.ar(freq:142, feedback:Saw.ar(20 * SinOsc.ar(20)) + SinOsc.ar(0.1)).dup * 0.1}).play; + +( +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); +}).play; +) + +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}).play; + +( +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', )), + (\absTime: 12.0, \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; +) diff --git a/indirect_sinefb.scd b/indirect_sinefb.scd new file mode 100644 index 0000000..eb83e7e --- /dev/null +++ b/indirect_sinefb.scd @@ -0,0 +1,31 @@ +( +{ + 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; +) + + + +( +{ + SinOscFB.ar(197.1, SinOscFB.ar(313.3 * 0.8, )).dup; +}.play +) \ No newline at end of file