Populating AudioSampleBuffer


#1

Hello,

I've just started playing with juce, I'm also a noob in field of c++ so forgive me if my question is stupid.

I wrote a function which resamples the audiobuffer to lower frequancy(for given numeber of samples) to "rBuffer". 

Thi looks like this:


AudioSampleBuffer* AudioSampler::resample(int64 numSamples, int64 from, int64 into, int64 start)
{
    DBG("resampluje");
    //if(!bBuffer) return 0;
    rBuffer->setSize(2, numSamples  + start, true, true);
    rBuffer->clear(); //!temp
    int spsPerPixel = bBuffer->getNumSamples() / numSamples;
    if(spsPerPixel < 1) spsPerPixel = 1;
    int64 c = 0;
    DBG("resampluje2");
    float* l =  new float[bBuffer->getNumChannels()];
    float* s = new float[1];
    DBG("ustawione tablice:" + String(bBuffer->getNumSamples())+ ":" + String(rBuffer->getNumSamples())+ ":" + String(spsPerPixel));
    for (int i = 0; i < rBuffer->getNumSamples(); i++){
        
        for (int j = 0; j < rBuffer->getNumChannels(); j++){
            
            s[0] = *(bBuffer->getSampleData(j) + (i * spsPerPixel));
            if(c > 695){ DBG("sampel:" + String(s[0]) + ":" + String(c));}
            rBuffer->addFrom(j, start + c, s,1);
            l[j] = s[0];
        }
        
        c++;
        
    }
    return rBuffer;
}

The rBuffer is created first in constructor of my class and set to 2 channel, 100 samples.

Then in my function I set it's size for given numeber of samples .

My problem is that when I dont call rBuffer->Clear(), only the first 100 samples are set to correct values and the rest are undefined values.

I don't want to always clear old samples. Can someone please explain me how it works?