Hi, I am encountering a strange behaviour of BufRd in combination with Select and Phasor that results in whining noise.
I use a sequence of filter frequencies for the left and right channels.
the sequence is driven by BufRd’s Phasor as an index for Select.ar.
With two channel WhiteNoise.ar and using the Phasor.ar for Select.ar everything works fine.
(
// actually i use an stereo file
~buf = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01-44_1.aiff");
~frequencies = [[5000, 15000],[2000, 5000],[200, 2000],[20, 200]];
Ndef(\x).clear;
Ndef(\x,{
var phasor, sig, src, segment, hi,lo;
phasor = Phasor.ar(0,rate: BufRateScale.kr(~buf.bufnum) * 1, start: 0, end: BufFrames.kr(~buf.bufnum));
// causes glitchy high whine with BufRd, ok with noise ugen
segment = ((phasor/BufFrames.kr(~buf.bufnum)) * 4);
//
// segment = 3;
// sig = BufRd.ar(2, ~buf.bufnum, phasor,loop: 1);
sig = WhiteNoise.ar(0.7)!2;
#hi,lo = Select.ar(segment, DC.ar(~frequencies) );
sig[0] = HPF.ar(sig[0], hi );
sig[0] = LPF.ar(sig[0], lo );
#hi,lo = Select.ar(segment, DC.ar(~frequencies.reverse) );
sig[1] = HPF.ar(sig[1], hi );
sig[1] = LPF.ar(sig[1], lo );
sig = sig.clip(-1,1);
// sig = sig.clip(-0.3,0.3);
Out.ar(0,sig);
}).play;
)
With a stereo wav file and a fixed number for Select.ar also.
(
// actually i use an stereo file
~buf = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01-44_1.aiff");
~frequencies = [[5000, 15000],[2000, 5000],[200, 2000],[20, 200]];
Ndef(\x).clear;
Ndef(\x,{
var phasor, sig, src, segment, hi,lo;
phasor = Phasor.ar(0,rate: BufRateScale.kr(~buf.bufnum) * 1, start: 0, end: BufFrames.kr(~buf.bufnum));
// causes glitchy high whine with BufRd, ok with noise ugen
// segment = ((phasor/BufFrames.kr(~buf.bufnum)) * 4);
//
segment = 1;
sig = BufRd.ar(2, ~buf.bufnum, phasor,loop: 1);
// sig = WhiteNoise.ar(0.7)!2;
#hi,lo = Select.ar(segment, DC.ar(~frequencies) );
sig[0] = HPF.ar(sig[0], hi );
sig[0] = LPF.ar(sig[0], lo );
#hi,lo = Select.ar(segment, DC.ar(~frequencies.reverse) );
sig[1] = HPF.ar(sig[1], hi );
sig[1] = LPF.ar(sig[1], lo );
sig = sig.clip(-1,1);
// sig = sig.clip(-0.3,0.3);
Out.ar(0,sig);
}).play;
)
But using Phasor.ar with Select.ar and BufRd.ar I get a high pitched whining noise.
(
// actually i use an stereo file
~buf = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01-44_1.aiff");
~frequencies = [[5000, 15000],[2000, 5000],[200, 2000],[20, 200]];
Ndef(\x).clear;
Ndef(\x,{
var phasor, sig, src, segment, hi,lo;
phasor = Phasor.ar(0,rate: BufRateScale.kr(~buf.bufnum) * 1, start: 0, end: BufFrames.kr(~buf.bufnum));
// causes glitchy high whine with BufRd, ok with noise ugen
segment = ((phasor/BufFrames.kr(~buf.bufnum)) * 4);
// segment = 1;
sig = BufRd.ar(2, ~buf.bufnum, phasor,loop: 1);
// sig = WhiteNoise.ar(0.7)!2;
#hi,lo = Select.ar(segment, DC.ar(~frequencies) );
sig[0] = HPF.ar(sig[0], hi );
sig[0] = LPF.ar(sig[0], lo );
#hi,lo = Select.ar(segment, DC.ar(~frequencies.reverse) );
sig[1] = HPF.ar(sig[1], hi );
sig[1] = LPF.ar(sig[1], lo );
// sig = sig.clip(-1,1);
sig = sig.clip(-0.06,0.06);
Out.ar(0,sig);
}).play;
)
i just dont see why ?