What is happening here? I am guessing phase modulation but not sure

Trying to figure out what is going on here. The droplet synth is interacting with the brainwave synth in interesting ways. Almost like ripples in water. Is that phase modulation? The freq parameter on the droplet synth can control the whether it sounds like ripples (vs just tones on top of the brainwave synth) But what is responsible for the interesting rippling that almost sounds like a delay? I am trying to figure out how to explore more and control the rippling.

Listen with headphones for full effect!

(
SynthDef(\brainwave, {|prime = 300, diff = 10, fade = 10, primetime = 20, difftime = 30, level= 0.4, gate = 1|
var freqtransition = VarLag.kr(prime, primetime, 0, \lin);
var left = SinOsc.ar(freqtransition);
var right = SinOsc.ar(freqtransition - VarLag.kr(diff, difftime, 0, \lin));
var env = EnvGen.kr(Env.asr(fade, level, fade, 4), gate, doneAction:2);
Out.ar(0, [left, right] * env);
}).add;

SynthDef(\droplet, { |freq = 440, amp = 1, sustain = 1, out = 0, pan = 0|
    var sig;
    sig = SinOsc.ar(freq, 0, amp) * EnvGen.kr(Env.perc(0.01, sustain), doneAction: Done.freeSelf);
Out.ar(out, (Pan2.ar(sig,pan)));
}).add;

t = Routine({
    var delta;
	Synth(\brainwave);
	10.wait;
    15.do {
        delta = rrand(4, 14);

        Synth(\droplet, [freq: exprand(285, 310), amp: rrand(0.1, 0.2), pan: rrand(-0.7, 0.7), sustain: delta * 0.8]);
        delta.yield;
    }
});
)


t.play;

Any thoughts much appreciated.

Thanks!!

It is just good ole beating.

The brainwave oscillators are beating at 10hz because they are 10hz apart. The droplet comes in and beats against the two brainwave oscillators at the difference in frequency between itself and each of the brainwave oscillators. I think we perceive the one it is closest to. So, if it is at 293hz, it will beat at 293-290=3hz. It is also beating at 7, but I think it is masked by the 3hz beating.

It is easier to understand when you see the frequency of the three oscillators:

(
SynthDef(\brainwave, {|prime = 300, diff = 10, fade = 10, primetime = 20, difftime = 30, level= 0.4, gate = 1|
var freqtransition = VarLag.kr(prime, primetime, 0, \lin);
var left = SinOsc.ar(freqtransition.poll);
var right = SinOsc.ar((freqtransition - VarLag.kr(diff, difftime, 0, \lin)).poll);
var env = EnvGen.kr(Env.asr(fade, level, fade, 4), gate, doneAction:2);
Out.ar(0, [left, right] * env);
}).add;

SynthDef(\droplet, { |freq = 440, amp = 1, sustain = 1, out = 0, pan = 0|
    var sig;
    sig = SinOsc.ar(freq.poll, 0, amp) * EnvGen.kr(Env.perc(0.01, sustain), doneAction: Done.freeSelf);
Out.ar(out, (Pan2.ar(sig,pan)));
}).add;

t = Routine({
    var delta;
	Synth(\brainwave);
	10.wait;
    inf.do {
        delta = rrand(4, 14);

        Synth(\droplet, [freq: exprand(285, 310), amp: rrand(0.1, 0.2), pan: rrand(-0.7, 0.7), sustain: delta * 0.8]);
        delta.yield;
    }
});
)

The crafty thing here is the percussive envelope of the droplet allows the droplet beating against either of the two brainwave oscillators to be perceived separately from the brainwave beating. Without the envelope it wouldn’t be so effective. Super slick.

Sam

1 Like

Thanks Sam! The .poll is great!