Density Threshold

supercollider
// 1. Define SynthDef and write to disk
SynthDef(\densityThreshold, { |freq = 440, detune = 0, amp = 0.5, gate = 1, cutoff = 800, resonance = 0.5|
    var env = EnvGen.ar(Env.asr(0.01, 1, 0.3), gate, doneAction: 2);
    var sig1 = SinOsc.ar(freq * (1 + detune), 0, 0.2) * env * amp;
    var sig2 = SinOsc.ar(freq * (1 + detune * 0.5), 0, 0.2) * env * amp;
    var sig3 = SinOsc.ar(freq * (1 + detune * 0.3), 0, 0.2) * env * amp;
    var sig = (sig1 + sig2 + sig3) * 0.33;
    var filtered = LPF.ar(sig, cutoff, resonance);
    Out.ar(0, filtered ! 2);
}).writeDefFile;

// 2. Build Score with ONLY explicit [time, message] pairs
Score([
    [0.0, [\s_new, \densityThreshold, 1001, 0, 0, \freq, 261.63, \detune, 0.01, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [2.0, [\s_new, \densityThreshold, 1002, 0, 0, \freq, 293.66, \detune, 0.02, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [4.0, [\s_new, \densityThreshold, 1003, 0, 0, \freq, 329.63, \detune, 0.03, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [6.0, [\s_new, \densityThreshold, 1004, 0, 0, \freq, 349.23, \detune, 0.04, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [8.0, [\s_new, \densityThreshold, 1005, 0, 0, \freq, 392.00, \detune, 0.05, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [10.0, [\s_new, \densityThreshold, 1006, 0, 0, \freq, 440.00, \detune, 0.06, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [12.0, [\s_new, \densityThreshold, 1007, 0, 0, \freq, 493.88, \detune, 0.07, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [14.0, [\s_new, \densityThreshold, 1008, 0, 0, \freq, 554.37, \detune, 0.08, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [16.0, [\s_new, \densityThreshold, 1009, 0, 0, \freq, 659.25, \detune, 0.09, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [18.0, [\s_new, \densityThreshold, 1010, 0, 0, \freq, 783.99, \detune, 0.10, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [20.0, [\s_new, \densityThreshold, 1011, 0, 0, \freq, 880.00, \detune, 0.11, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [22.0, [\s_new, \densityThreshold, 1012, 0, 0, \freq, 987.77, \detune, 0.12, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [24.0, [\s_new, \densityThreshold, 1013, 0, 0, \freq, 1046.50, \detune, 0.13, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [26.0, [\s_new, \densityThreshold, 1014, 0, 0, \freq, 1174.66, \detune, 0.14, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [28.0, [\s_new, \densityThreshold, 1015, 0, 0, \freq, 1318.51, \detune, 0.15, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [30.0, [\s_new, \densityThreshold, 1016, 0, 0, \freq, 1396.91, \detune, 0.16, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [32.0, [\s_new, \densityThreshold, 1017, 0, 0, \freq, 1567.98, \detune, 0.17, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [34.0, [\s_new, \densityThreshold, 1018, 0, 0, \freq, 1760.00, \detune, 0.18, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [36.0, [\s_new, \densityThreshold, 1019, 0, 0, \freq, 1975.53, \detune, 0.19, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [38.0, [\s_new, \densityThreshold, 1020, 0, 0, \freq, 2093.00, \detune, 0.20, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [40.0, [\s_new, \densityThreshold, 1021, 0, 0, \freq, 2349.32, \detune, 0.21, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [42.0, [\s_new, \densityThreshold, 1022, 0, 0, \freq, 2637.02, \detune, 0.22, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [44.0, [\s_new, \densityThreshold, 1023, 0, 0, \freq, 2793.83, \detune, 0.23, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [46.0, [\s_new, \densityThreshold, 1024, 0, 0, \freq, 3135.96, \detune, 0.24, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [48.0, [\s_new, \densityThreshold, 1025, 0, 0, \freq, 3520.00, \detune, 0.25, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [50.0, [\s_new, \densityThreshold, 1026, 0, 0, \freq, 3951.07, \detune, 0.26, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [52.0, [\s_new, \densityThreshold, 1027, 0, 0, \freq, 4186.01, \detune, 0.27, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [54.0, [\s_new, \densityThreshold, 1028, 0, 0, \freq, 4698.63, \detune, 0.28, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [56.0, [\s_new, \densityThreshold, 1029, 0, 0, \freq, 5274.04, \detune, 0.29, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [58.0, [\s_new, \densityThreshold, 1030, 0, 0, \freq, 5587.65, \detune, 0.30, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [60.0, [\s_new, \densityThreshold, 1031, 0, 0, \freq, 6271.93, \detune, 0.31, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [62.0, [\s_new, \densityThreshold, 1032, 0, 0, \freq, 6987.87, \detune, 0.32, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [64.0, [\s_new, \densityThreshold, 1033, 0, 0, \freq, 7902.13, \detune, 0.33, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [66.0, [\s_new, \densityThreshold, 1034, 0, 0, \freq, 8372.02, \detune, 0.34, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [68.0, [\s_new, \densityThreshold, 1035, 0, 0, \freq, 9397.27, \detune, 0.35, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [70.0, [\s_new, \densityThreshold, 1036, 0, 0, \freq, 10465.01, \detune, 0.36, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [72.0, [\s_new, \densityThreshold, 1037, 0, 0, \freq, 11087.11, \detune, 0.37, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [74.0, [\s_new, \densityThreshold, 1038, 0, 0, \freq, 11746.59, \detune, 0.38, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [76.0, [\s_new, \densityThreshold, 1039, 0, 0, \freq, 12543.85, \detune, 0.39, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [78.0, [\s_new, \densityThreshold, 1040, 0, 0, \freq, 13185.10, \detune, 0.40, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [80.0, [\s_new, \densityThreshold, 1041, 0, 0, \freq, 13969.11, \detune, 0.41, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [82.0, [\s_new, \densityThreshold, 1042, 0, 0, \freq, 14800.00, \detune, 0.42, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [84.0, [\s_new, \densityThreshold, 1043, 0, 0, \freq, 15679.81, \detune, 0.43, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [86.0, [\s_new, \densityThreshold, 1044, 0, 0, \freq, 16612.09, \detune, 0.44, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [88.0, [\s_new, \densityThreshold, 1045, 0, 0, \freq, 17600.00, \detune, 0.45, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [90.0, [\s_new, \densityThreshold, 1046, 0, 0, \freq, 18649.94, \detune, 0.46, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [92.0, [\s_new, \densityThreshold, 1047, 0, 0, \freq, 19755.33, \detune, 0.47, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [94.0, [\s_new, \densityThreshold, 1048, 0, 0, \freq, 20930.02, \detune, 0.48, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [96.0, [\s_new, \densityThreshold, 1049, 0, 0, \freq, 23493.20, \detune, 0.49, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [98.0, [\s_new, \densityThreshold, 1050, 0, 0, \freq, 26370.20, \detune, 0.50, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [100.0, [\s_new, \densityThreshold, 1051, 0, 0, \freq, 27938.27, \detune, 0.51, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [102.0, [\s_new, \densityThreshold, 1052, 0, 0, \freq, 31359.63, \detune, 0.52, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [104.0, [\s_new, \densityThreshold, 1053, 0, 0, \freq, 35200.00, \detune, 0.53, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [106.0, [\s_new, \densityThreshold, 1054, 0, 0, \freq, 39510.66, \detune, 0.54, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [108.0, [\s_new, \densityThreshold, 1055, 0, 0, \freq, 41860.09, \detune, 0.55, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [110.0, [\s_new, \densityThreshold, 1056, 0, 0, \freq, 46986.38, \detune, 0.56, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [112.0, [\s_new, \densityThreshold, 1057, 0, 0, \freq, 52740.40, \detune, 0.57, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [114.0, [\s_new, \densityThreshold, 1058, 0, 0, \freq, 55876.51, \detune, 0.58, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [116.0, [\s_new, \densityThreshold, 1059, 0, 0, \freq, 62719.27, \detune, 0.59, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [118.0, [\s_new, \densityThreshold, 1060, 0, 0, \freq, 69878.63, \detune, 0.60, \amp, 0.5, \cutoff, 800, \resonance, 0.5]],
    [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 }
);
toward layered detuned oscillators for granular techniques to create movement toward filtering to control density for exploring density thresholds from simple detuning to more complex granular techniques how much detuning is too much before it becomes muddy on the balance between density and clarity toward exploring more complex filtering techniques toward incorporating rhythmic elements