negatum-864a4fe-opt-par-play200719

time10 mo agoview0 views

Sound synthesis programs found through genetic programming have gone through an 'optimisation' stage that removes redundant elements, then through a 'parametrise' stage that identifies up to five constants that, when modulated, yield clearly different sonic characteristics. Ranges are estimated for these parameters, and input is normalised to the interval [0, 1]; a simple UI can be used to explore these parameters. The next task is to understand how the parameters can be coupled and automatically modulated by other processes, while still remaining within interesting sonic spaces.


Comment 19-Jul-2020:

This video is a bit misleading as I opened the source code of a different sound that the one you are hearing. The actual code of the sound played is

val param_0 = Param(audio, "p1", Some(Vector(3382.8875f, 3382.8875f, 3382.8875f, 3382.8875f)),
4)
val freq_0 = Protect(param_0, 0.1, 20000.0, false)
val impulse_0 = Impulse.ar(freq = freq_0, phase = 0.10654729)
val in_0 = Protect(impulse_0, -inf, inf, true)
val hPZ1 = HPZ1.ar(in_0)
val param_1 = Param(audio, "p3",
Some(Vector(0.0068862666f, 0.0068862666f, 0.0068862666f, 0.0068862666f)), 4)
val in_1 = Protect(hPZ1, -inf, inf, true)
val coeff = Protect(param_1, -0.999, 0.999, false)
val integrator = Integrator.ar(in_1, coeff = coeff)
val ring3 = param_0 ring3 integrator
val min_0 = ring3 min 0.10654729
val impulse_1 = Impulse.ar(freq = 0.1, phase = 1.0)
val decayTime = Param(audio, "p5", Some(Vector(0.0f, 0.0f, 0.0f, 0.0f)), 4)
val min_1 = decayTime min ring3
val atan2 = decayTime atan2 min_1
val param_2 = Param(audio, "p2", Some(Vector(0.01f, 0.01f, 0.01f, 0.01f)), 4)
val in_2 = Protect(atan2, -inf, inf, true)
val freq_1 = Protect(param_0, 10.0, 20000.0, false)
val rq = Protect(param_2, 0.01, 100.0, false)
val resonz = Resonz.ar(in_2, freq = freq_1, rq = rq)
val min_2 = decayTime min decayTime
val in_3 = Protect(min_1, -inf, inf, true)
val maxDelayTime = Protect(decayTime, 0.01, 20.0, false)
val protect = Protect(min_2, 0.0, inf, false)
val delayTime = protect min maxDelayTime
val allpassL = AllpassL.ar(in_3, maxDelayTime = maxDelayTime, delayTime = delayTime,
decayTime = decayTime)
val min_3 = allpassL min decayTime
val param_3 = Param(audio, "p4", Some(Vector(0.001f, 0.001f, 0.001f, 0.001f)), 4)
val in_4 = Protect(min_1, -inf, inf, true)
val winSize = Protect(param_3, 0.001, 2.0, false)
val pitchRatio = Protect(impulse_1, 0.0, 4.0, false)
val timeDispersion = (0.0: GE) min winSize
val pitchShift = PitchShift.ar(in_4, winSize = winSize, pitchRatio = pitchRatio,
pitchDispersion = 0.0, timeDispersion = timeDispersion)
val times = min_1 * 3.0
val dC = DC.ar(0.8758479)
val mix = Mix(Seq[GE](min_0, resonz, min_3, pitchShift, times, dC))
val sig = LeakDC.ar(mix.clip2(1.0)) * 0.47
Out.ar("bus".kr(0), sig * "gain".kr(1.0))
Loading comments...