JUCE框架教程(7)——AudioBuffer基础
什么是AudioBuffer?
AudioBuffer本质上是一个容器,它通常保存我们的音频信息。它创造了通道和样本(sample)。我们可以通过一些函数来获取使用AudioBuffer通道或者样本的值。
代码实例
创建一个audio项目,默认设置
进入cpp文件,初始化buffer变量
void MainComponent::getNextAudioBlock (const juce::AudioSourceChannelInfo& bufferToFill)
{
// Your audio-processing code goes here!
bufferToFill.clearActiveBufferRegion();
auto* buffer = bufferToFill.buffer;
auto numChannels = buffer->getNumChannels();
auto numSamples = buffer->getNumSamples();
}
我们初始化了一个buffer,并且通过JUCE的API拿到了它的通道数和样本数
接下来,我们通过两个for循环在这个buffer的samples里面写入一些随机浮点数
for (auto channel = 0; channel < numChannels; channel++) {
//get the sample pointer
auto* writePointer = buffer->getWritePointer(channel);
for (auto sample = 0; sample < numSamples; sample++) {
//write randomFloat to the samples
writePointer[sample] = randomGenerator.nextFloat() * 0.2f;
}
}
到这里我们就完成了使用AudioBuffer生成音频输出,由于不断产生随机浮点数,我们在编译后会听见白噪音。