Hello, new to JUCE/C++, and having fun.
I have a .zip file that contains 1 to 8 FIR filters as stereo .wav files. I would like to create an AudioBuffer for each .wav and hold in a suitable container.
I found some sample code that works using a MemoryBlock, but not sure how to convert to an AudioBuffer or how to write directly to an OwnedArray of AudioBuffer’s. Here is the MemoryBlock code:
juce::StringArray assetAudioNames;
std::vector<std::unique_ptr<juce::MemoryBlock>> assetAudio;
juce::FileInputStream assetsStream(file);
juce::ZipFile assets(&assetsStream, false);
for (int i = 0; i < assets.getNumEntries(); ++i)
{
auto stream = std::unique_ptr<juce::InputStream>(assets.createStreamForEntry(i));
if (stream != nullptr)
{
auto asset = assets.getEntry(i);
auto assetName = asset->filename;
auto assetSize = asset->uncompressedSize;
assetAudioNames.add(assetName);
// auto block = std::make_unique<MemoryBlock>(MemoryBlock(assetSize)); // NO
// MemoryBlock is appended to, not overwritten
auto block = std::make_unique<juce::MemoryBlock>(juce::MemoryBlock()); // YES
stream->readIntoMemoryBlock(*block, assetSize);
assetAudio.push_back(std::move(block));
}
}
Any ideas appreciated.
