diff --git a/benchmarks/BM_flacfile.cpp b/benchmarks/BM_flacfile.cpp index e6fbd18e..9d17de3a 100644 --- a/benchmarks/BM_flacfile.cpp +++ b/benchmarks/BM_flacfile.cpp @@ -10,6 +10,7 @@ #define DR_FLAC_IMPLEMENTATION #include "dr_flac.h" #include "ghc/filesystem.hpp" +#include "absl/memory/memory.h" #include #ifndef NDEBUG #include @@ -60,7 +61,7 @@ BENCHMARK_DEFINE_F(FileFixture, SndFile)(benchmark::State& state) { for (auto _ : state) { SndfileHandle sndfile(filePath1.c_str()); - buffer = std::make_unique>(sndfile.channels() * sndfile.frames()); + buffer = absl::make_unique>(sndfile.channels() * sndfile.frames()); sndfile.readf(buffer->data(), sndfile.frames()); } } @@ -69,7 +70,7 @@ BENCHMARK_DEFINE_F(FileFixture, DrFlac)(benchmark::State& state) { for (auto _ : state) { auto* flac = drflac_open_file(filePath2.c_str(), nullptr); - buffer = std::make_unique>(flac->channels * flac->totalPCMFrameCount); + buffer = absl::make_unique>(flac->channels * flac->totalPCMFrameCount); drflac_read_pcm_frames_f32(flac, flac->totalPCMFrameCount, buffer->data()); } } diff --git a/benchmarks/BM_pan.cpp b/benchmarks/BM_pan.cpp index 130f466e..8cafb079 100644 --- a/benchmarks/BM_pan.cpp +++ b/benchmarks/BM_pan.cpp @@ -69,7 +69,7 @@ BENCHMARK_DEFINE_F(PanArray, BlockOps)(benchmark::State& state) { { sfz::fill(span2, 1.0f); sfz::add(span1, span2); - sfz::applyGain(piFour, span2); + sfz::applyGain(piFour(), span2); sfz::cos(span2, span1); sfz::sin(span2, span2); sfz::applyGain(span1, absl::MakeSpan(left)); diff --git a/benchmarks/BM_pointerIterationOrOffsets.cpp b/benchmarks/BM_pointerIterationOrOffsets.cpp index 0e157af9..33afb4ab 100644 --- a/benchmarks/BM_pointerIterationOrOffsets.cpp +++ b/benchmarks/BM_pointerIterationOrOffsets.cpp @@ -14,7 +14,7 @@ constexpr int bigNumber { 2399132 }; class IterOffset : public benchmark::Fixture { public: - void SetUp(const ::benchmark::State& /* state */) { + void SetUp(const ::benchmark::State& state) { std::random_device rd { }; std::mt19937 gen { rd() }; std::uniform_real_distribution dist { 0.001f, 1.0f }; diff --git a/benchmarks/BM_random.cpp b/benchmarks/BM_random.cpp new file mode 100644 index 00000000..e69de29b diff --git a/benchmarks/BM_readChunk.cpp b/benchmarks/BM_readChunk.cpp index 9ee46ffe..4cdc2068 100644 --- a/benchmarks/BM_readChunk.cpp +++ b/benchmarks/BM_readChunk.cpp @@ -12,7 +12,7 @@ #define DR_WAV_IMPLEMENTATION #include "dr_wav.h" #include "AudioBuffer.h" -#include +#include "absl/memory/memory.h" #ifndef NDEBUG #include #endif @@ -30,7 +30,7 @@ public: sndfile = SndfileHandle(rootPath.c_str()); numFrames = static_cast(sndfile.frames()); - output = std::make_unique>(sndfile.channels(), sndfile.frames()); + output = absl::make_unique>(sndfile.channels(), sndfile.frames()); } void TearDown(const ::benchmark::State& /* state */) { diff --git a/benchmarks/BM_resample.cpp b/benchmarks/BM_resample.cpp index 17233b78..75101ac3 100644 --- a/benchmarks/BM_resample.cpp +++ b/benchmarks/BM_resample.cpp @@ -8,7 +8,7 @@ #include "AudioBuffer.h" #include "SIMDHelpers.h" #include -#include +#include "absl/memory/memory.h" #include #include #include "ghc/filesystem.hpp" @@ -151,8 +151,8 @@ void upsample8xStage(absl::Span input, absl::Span outp template std::unique_ptr> upsample2x(const sfz::AudioBuffer& buffer) { - // auto tempBuffer = std::make_unique>(buffer.getNumFrames() * 2); - auto outputBuffer = std::make_unique>(buffer.getNumChannels(), buffer.getNumFrames() * 2); + // auto tempBuffer = absl::make_unique>(buffer.getNumFrames() * 2); + auto outputBuffer = absl::make_unique>(buffer.getNumChannels(), buffer.getNumFrames() * 2); for (size_t channelIdx = 0; channelIdx < buffer.getNumChannels(); channelIdx++) { upsample2xStage(buffer.getConstSpan(channelIdx), outputBuffer->getSpan(channelIdx)); } @@ -162,8 +162,8 @@ std::unique_ptr> upsample2x(const sfz::AudioBuffer& buffe template std::unique_ptr> upsample4x(const sfz::AudioBuffer& buffer) { - auto tempBuffer = std::make_unique>(buffer.getNumFrames() * 2); - auto outputBuffer = std::make_unique>(buffer.getNumChannels(), buffer.getNumFrames() * 4); + auto tempBuffer = absl::make_unique>(buffer.getNumFrames() * 2); + auto outputBuffer = absl::make_unique>(buffer.getNumChannels(), buffer.getNumFrames() * 4); for (size_t channelIdx = 0; channelIdx < buffer.getNumChannels(); channelIdx++) { upsample2xStage(buffer.getConstSpan(channelIdx), absl::MakeSpan(*tempBuffer)); upsample4xStage(absl::MakeConstSpan(*tempBuffer), outputBuffer->getSpan(channelIdx)); @@ -174,9 +174,9 @@ std::unique_ptr> upsample4x(const sfz::AudioBuffer& buffe template std::unique_ptr> upsample8x(const sfz::AudioBuffer& buffer) { - auto tempBuffer2x = std::make_unique>(buffer.getNumFrames() * 2); - auto tempBuffer4x = std::make_unique>(buffer.getNumFrames() * 4); - auto outputBuffer = std::make_unique>(buffer.getNumChannels(), buffer.getNumFrames() * 8); + auto tempBuffer2x = absl::make_unique>(buffer.getNumFrames() * 2); + auto tempBuffer4x = absl::make_unique>(buffer.getNumFrames() * 4); + auto outputBuffer = absl::make_unique>(buffer.getNumChannels(), buffer.getNumFrames() * 8); for (size_t channelIdx = 0; channelIdx < buffer.getNumChannels(); channelIdx++) { upsample2xStage(buffer.getConstSpan(channelIdx), absl::MakeSpan(*tempBuffer2x)); upsample4xStage(absl::MakeConstSpan(*tempBuffer2x), absl::MakeSpan(*tempBuffer4x)); @@ -202,7 +202,7 @@ public: SndfileHandle sndfile(rootPath.c_str()); numFrames = sndfile.frames(); numChannels = sndfile.channels(); - interleavedBuffer = std::make_unique>(numChannels * numFrames); + interleavedBuffer = absl::make_unique>(numChannels * numFrames); sndfile.readf(interleavedBuffer->data(), sndfile.frames()); } @@ -231,7 +231,7 @@ public: BENCHMARK_DEFINE_F(SndFile, HIIR2X_scalar)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample2x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); @@ -241,7 +241,7 @@ BENCHMARK_DEFINE_F(SndFile, HIIR2X_scalar)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, HIIR4X_scalar)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample4x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); @@ -251,7 +251,7 @@ BENCHMARK_DEFINE_F(SndFile, HIIR4X_scalar)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, HIIR8X_scalar)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample8x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); @@ -261,7 +261,7 @@ BENCHMARK_DEFINE_F(SndFile, HIIR8X_scalar)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, HIIR2X_vector)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample2x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); @@ -271,7 +271,7 @@ BENCHMARK_DEFINE_F(SndFile, HIIR2X_vector)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, HIIR4X_vector)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample4x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); @@ -281,7 +281,7 @@ BENCHMARK_DEFINE_F(SndFile, HIIR4X_vector)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, HIIR8X_vector)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample8x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); @@ -291,7 +291,7 @@ BENCHMARK_DEFINE_F(SndFile, HIIR8X_vector)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC2x_BEST)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -299,7 +299,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC2x_BEST)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_BEST_QUALITY, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -308,7 +308,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC2x_BEST)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC2x_MEDIUM)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -316,7 +316,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC2x_MEDIUM)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_MEDIUM_QUALITY, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -325,7 +325,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC2x_MEDIUM)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC2x_FASTEST)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -333,7 +333,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC2x_FASTEST)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_FASTEST, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -343,7 +343,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC2x_FASTEST)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC4x_BEST)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -351,7 +351,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC4x_BEST)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_BEST_QUALITY, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -360,7 +360,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC4x_BEST)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC4x_MEDIUM)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -368,7 +368,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC4x_MEDIUM)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_MEDIUM_QUALITY, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -377,7 +377,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC4x_MEDIUM)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC4x_FASTEST)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -385,7 +385,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC4x_FASTEST)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_FASTEST, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -394,7 +394,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC4x_FASTEST)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC8x_BEST)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -402,7 +402,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC8x_BEST)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_BEST_QUALITY, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -411,7 +411,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC8x_BEST)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC8x_MEDIUM)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -419,7 +419,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC8x_MEDIUM)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_MEDIUM_QUALITY, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -428,7 +428,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC8x_MEDIUM)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, SRC8x_FASTEST)(benchmark::State& state) { for (auto _ : state) { - auto intermediateBuffer = std::make_unique>(2 * numChannels * numFrames); + auto intermediateBuffer = absl::make_unique>(2 * numChannels * numFrames); SRC_DATA srcData; srcData.data_in = interleavedBuffer->data(); srcData.data_out = intermediateBuffer->data(); @@ -436,7 +436,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC8x_FASTEST)(benchmark::State& state) srcData.input_frames = static_cast(numFrames); srcData.output_frames = static_cast(2 * numFrames); src_simple(&srcData, SRC_SINC_FASTEST, static_cast(numChannels)); - auto outBuffer = std::make_unique>(numChannels, 2 * numFrames); + auto outBuffer = absl::make_unique>(numChannels, 2 * numFrames); sfz::readInterleaved(*intermediateBuffer, outBuffer->getSpan(0), outBuffer->getSpan(1)); benchmark::DoNotOptimize(outBuffer); } @@ -445,7 +445,7 @@ BENCHMARK_DEFINE_F(SndFile, SRC8x_FASTEST)(benchmark::State& state) BENCHMARK_DEFINE_F(SndFile, HIIR8X_default)(benchmark::State& state) { for (auto _ : state) { - auto baseBuffer = std::make_unique>(numChannels, numFrames); + auto baseBuffer = absl::make_unique>(numChannels, numFrames); sfz::readInterleaved(*interleavedBuffer, baseBuffer->getSpan(0), baseBuffer->getSpan(1)); auto outBuffer = upsample8x(*baseBuffer); benchmark::DoNotOptimize(outBuffer); diff --git a/benchmarks/BM_resampleChunk.cpp b/benchmarks/BM_resampleChunk.cpp index b5c37905..a75c06c5 100644 --- a/benchmarks/BM_resampleChunk.cpp +++ b/benchmarks/BM_resampleChunk.cpp @@ -11,7 +11,7 @@ #include "ghc/filesystem.hpp" #include "Oversampler.h" #include "AudioBuffer.h" -#include +#include "absl/memory/memory.h" #include @@ -75,7 +75,7 @@ public: sndfile = SndfileHandle(rootPath.c_str()); numFrames = static_cast(sndfile.frames()); - output = std::make_unique>(sndfile.channels(), numFrames * 4); + output = absl::make_unique>(sndfile.channels(), numFrames * 4); } void TearDown(const ::benchmark::State& /* state */) { diff --git a/benchmarks/BM_wavfile.cpp b/benchmarks/BM_wavfile.cpp index d7d590c2..a4533195 100644 --- a/benchmarks/BM_wavfile.cpp +++ b/benchmarks/BM_wavfile.cpp @@ -9,7 +9,7 @@ #define DR_WAV_IMPLEMENTATION #include "dr_wav.h" #include "ghc/filesystem.hpp" -#include +#include "absl/memory/memory.h" #ifndef NDEBUG #include #endif @@ -17,7 +17,7 @@ class FileFixture : public benchmark::Fixture { public: - void SetUp(const ::benchmark::State& state) { + void SetUp(const ::benchmark::State& /* state */) { filePath1 = getPath() / "sample1.wav"; filePath2 = getPath() / "sample2.wav"; filePath3 = getPath() / "sample3.wav"; @@ -59,7 +59,7 @@ BENCHMARK_DEFINE_F(FileFixture, SndFile)(benchmark::State& state) { for (auto _ : state) { SndfileHandle sndfile(filePath1.c_str()); - buffer = std::make_unique>(sndfile.channels() * sndfile.frames()); + buffer = absl::make_unique>(sndfile.channels() * sndfile.frames()); sndfile.readf(buffer->data(), sndfile.frames()); } } @@ -74,7 +74,7 @@ BENCHMARK_DEFINE_F(FileFixture, DrWav)(benchmark::State& state) { #endif std::terminate(); } - buffer = std::make_unique>(wav.channels * wav.totalPCMFrameCount); + buffer = absl::make_unique>(wav.channels * wav.totalPCMFrameCount); drwav_read_pcm_frames_f32(&wav, wav.totalPCMFrameCount, buffer->data()); } }