// 1. Define SynthDef and write to disk
SynthDef(\EchoesInLowlight, { |freq = 500, amp = 0.5, gate = 1, detune = 0, filterFreq = 1000, filterRes = 0.3|
var env = EnvGen.ar(Env.asr(0.01, 1, 0.3), gate, doneAction: 2);
var sig1 = SinOsc.ar(freq * (1 + detune), 0, 0.3) * env * amp;
var sig2 = SinOsc.ar(freq * (1 - detune), 0, 0.3) * env * amp;
var sig = (sig1 + sig2) * 0.5;
var filtered = LPF.ar(sig, filterFreq) * filterRes;
var modulated = filtered * EnvGen.kr(Env.linen(0.01, 0.5, 0.01), gate);
Out.ar(0, modulated ! 2);
}).writeDefFile;
// 2. Build Score with ONLY explicit [time, message] pairs
Score([
[0.0, [\s_new, \EchoesInLowlight, 1001, 0, 0, \freq, 500, \amp, 0.5, \detune, 0.01, \filterFreq, 1000, \filterRes, 0.3]],
[2.0, [\s_new, \EchoesInLowlight, 1002, 0, 0, \freq, 600, \amp, 0.4, \detune, 0.02, \filterFreq, 900, \filterRes, 0.4]],
[4.0, [\s_new, \EchoesInLowlight, 1003, 0, 0, \freq, 700, \amp, 0.6, \detune, 0.015, \filterFreq, 800, \filterRes, 0.5]],
[6.0, [\s_new, \EchoesInLowlight, 1004, 0, 0, \freq, 800, \amp, 0.7, \detune, 0.025, \filterFreq, 700, \filterRes, 0.6]],
[8.0, [\n_set, 1001, \gate, 0]],
[8.5, [\n_set, 1002, \gate, 0]],
[9.0, [\n_set, 1003, \gate, 0]],
[9.5, [\n_set, 1004, \gate, 0]],
[10.0, [\s_new, \EchoesInLowlight, 1005, 0, 0, \freq, 900, \amp, 0.8, \detune, 0.03, \filterFreq, 600, \filterRes, 0.7]],
[12.0, [\n_set, 1005, \gate, 0]],
[14.0, [\s_new, \EchoesInLowlight, 1006, 0, 0, \freq, 1000, \amp, 0.9, \detune, 0.04, \filterFreq, 500, \filterRes, 0.8]],
[16.0, [\n_set, 1006, \gate, 0]],
[18.0, [\s_new, \EchoesInLowlight, 1007, 0, 0, \freq, 1100, \amp, 0.7, \detune, 0.035, \filterFreq, 400, \filterRes, 0.9]],
[20.0, [\n_set, 1007, \gate, 0]],
[22.0, [\s_new, \EchoesInLowlight, 1008, 0, 0, \freq, 1200, \amp, 0.6, \detune, 0.03, \filterFreq, 300, \filterRes, 0.8]],
[24.0, [\n_set, 1008, \gate, 0]],
[26.0, [\s_new, \EchoesInLowlight, 1009, 0, 0, \freq, 1300, \amp, 0.5, \detune, 0.025, \filterFreq, 200, \filterRes, 0.7]],
[28.0, [\n_set, 1009, \gate, 0]],
[30.0, [\s_new, \EchoesInLowlight, 1010, 0, 0, \freq, 1400, \amp, 0.4, \detune, 0.02, \filterFreq, 100, \filterRes, 0.6]],
[32.0, [\n_set, 1010, \gate, 0]],
[34.0, [\s_new, \EchoesInLowlight, 1011, 0, 0, \freq, 1500, \amp, 0.3, \detune, 0.015, \filterFreq, 50, \filterRes, 0.5]],
[36.0, [\n_set, 1011, \gate, 0]],
[38.0, [\s_new, \EchoesInLowlight, 1012, 0, 0, \freq, 1600, \amp, 0.2, \detune, 0.01, \filterFreq, 20, \filterRes, 0.4]],
[40.0, [\n_set, 1012, \gate, 0]],
[42.0, [\s_new, \EchoesInLowlight, 1013, 0, 0, \freq, 1700, \amp, 0.1, \detune, 0.005, \filterFreq, 10, \filterRes, 0.3]],
[44.0, [\n_set, 1013, \gate, 0]],
[46.0, [\s_new, \EchoesInLowlight, 1014, 0, 0, \freq, 1800, \amp, 0.05, \detune, 0.001, \filterFreq, 5, \filterRes, 0.2]],
[48.0, [\n_set, 1014, \gate, 0]],
[50.0, [\s_new, \EchoesInLowlight, 1015, 0, 0, \freq, 1900, \amp, 0.01, \detune, 0.0001, \filterFreq, 2, \filterRes, 0.1]],
[52.0, [\n_set, 1015, \gate, 0]],
[54.0, [\s_new, \EchoesInLowlight, 1016, 0, 0, \freq, 2000, \amp, 0.001, \detune, 0.00001, \filterFreq, 1, \filterRes, 0.05]],
[56.0, [\n_set, 1016, \gate, 0]],
[58.0, [\s_new, \EchoesInLowlight, 1017, 0, 0, \freq, 2100, \amp, 0.0001, \detune, 0.000001, \filterFreq, 0.5, \filterRes, 0.01]],
[60.0, [\n_set, 1017, \gate, 0]],
[62.0, [\s_new, \EchoesInLowlight, 1018, 0, 0, \freq, 2200, \amp, 0.00001, \detune, 0.0000001, \filterFreq, 0.2, \filterRes, 0.001]],
[64.0, [\n_set, 1018, \gate, 0]],
[66.0, [\s_new, \EchoesInLowlight, 1019, 0, 0, \freq, 2300, \amp, 0.000001, \detune, 0.00000001, \filterFreq, 0.1, \filterRes, 0.0001]],
[68.0, [\n_set, 1019, \gate, 0]],
[70.0, [\s_new, \EchoesInLowlight, 1020, 0, 0, \freq, 2400, \amp, 0.0000001, \detune, 0.000000001, \filterFreq, 0.05, \filterRes, 0.00001]],
[72.0, [\n_set, 1020, \gate, 0]],
[74.0, [\s_new, \EchoesInLowlight, 1021, 0, 0, \freq, 2500, \amp, 0.00000001, \detune, 0.0000000001, \filterFreq, 0.02, \filterRes, 0.0000001]],
[76.0, [\n_set, 1021, \gate, 0]],
[78.0, [\s_new, \EchoesInLowlight, 1022, 0, 0, \freq, 2600, \amp, 0.000000001, \detune, 0.00000000001, \filterFreq, 0.01, \filterRes, 0.00000001]],
[80.0, [\n_set, 1022, \gate, 0]],
[82.0, [\s_new, \EchoesInLowlight, 1023, 0, 0, \freq, 2700, \amp, 0.0000000001, \detune, 0.000000000001, \filterFreq, 0.005, \filterRes, 0.000000001]],
[84.0, [\n_set, 1023, \gate, 0]],
[86.0, [\s_new, \EchoesInLowlight, 1024, 0, 0, \freq, 2800, \amp, 0.00000000001, \detune, 0.0000000000001, \filterFreq, 0.002, \filterRes, 0.0000000001]],
[88.0, [\n_set, 1024, \gate, 0]],
[90.0, [\s_new, \EchoesInLowlight, 1025, 0, 0, \freq, 2900, \amp, 0.000000000001, \detune, 0.00000000000001, \filterFreq, 0.001, \filterRes, 0.00000000001]],
[92.0, [\n_set, 1025, \gate, 0]],
[94.0, [\s_new, \EchoesInLowlight, 1026, 0, 0, \freq, 3000, \amp, 0.0000000000001, \detune, 0.000000000000001, \filterFreq, 0.0005, \filterRes, 0.0000000000001]],
[96.0, [\n_set, 1026, \gate, 0]],
[98.0, [\s_new, \EchoesInLowlight, 1027, 0, 0, \freq, 3100, \amp, 0.00000000000001, \detune, 0.0000000000000001, \filterFreq, 0.0002, \filterRes, 0.000000000000001]],
[100.0, [\n_set, 1027, \gate, 0]],
[102.0, [\s_new, \EchoesInLowlight, 1028, 0, 0, \freq, 3200, \amp, 0.000000000000001, \detune, 0.00000000000000001, \filterFreq, 0.0001, \filterRes, 0.00000000000000001]],
[104.0, [\n_set, 1028, \gate, 0]],
[106.0, [\s_new, \EchoesInLowlight, 1029, 0, 0, \freq, 3300, \amp, 0.0000000000000001, \detune, 0.000000000000000001, \filterFreq, 0.00005, \filterRes, 0.000000000000000001]],
[108.0, [\n_set, 1029, \gate, 0]],
[110.0, [\s_new, \EchoesInLowlight, 1030, 0, 0, \freq, 3400, \amp, 0.00000000000000001, \detune, 0.0000000000000000001, \filterFreq, 0.00002, \filterRes, 0.0000000000000000001]],
[112.0, [\n_set, 1030, \gate, 0]],
[114.0, [\s_new, \EchoesInLowlight, 1031, 0, 0, \freq, 3500, \amp, 0.000000000000000001, \detune, 0.00000000000000000001, \filterFreq, 0.00001, \filterRes, 0.00000000000000000001]],
[116.0, [\n_set, 1031, \gate, 0]],
[118.0, [\s_new, \EchoesInLowlight, 1032, 0, 0, \freq, 3600, \amp, 0.0000000000000000001, \detune, 0.000000000000000000001, \filterFreq, 0.000005, \filterRes, 0.000000000000000000001]],
[120.0, [\n_set, 1032, \gate, 0]],
[120.0, [\c_set, 0, 0]]
]).recordNRT(
outputFilePath: "~/output.wav".standardizePath,
headerFormat: "WAV",
sampleFormat: "int16",
sampleRate: 44100,
options: ServerOptions.new.numOutputBusChannels_(2),
duration: 120,
action: { 0.exit }
);
textural density in 500-1000Hz range
detuned oscillators with subtle rhythmic modulation
dark yet dynamic soundscape
filter sweeps and amplitude shaping
from initial detuning to more extreme detuning over time
from higher frequencies to lower frequencies
whether the extreme detuning at the end is too subtle
exploring the balance between darkness and dynamism
further exploration of granular processing
experimenting with more complex rhythmic modulation