@@ -232,12 +232,14 @@ namespace LV {
232232
233233 void Audio::get_spectrum (BufferPtr const & buffer, std::size_t samplelen, std::string const & channel_name, bool normalised, float multiplier)
234234 {
235- get_spectrum (buffer, samplelen, channel_name, normalised);
235+ auto spectrum {Buffer::create (buffer->get_size ())};
236+ get_spectrum (spectrum, samplelen, channel_name, normalised);
236237
237- auto data = static_cast <float *> (buffer->get_data ());
238- std::size_t datasize = buffer->get_size () / sizeof (float );
238+ auto result_ptr {static_cast <float *> (buffer->get_data ())};
239+ auto spectrum_ptr {static_cast <float const *> (spectrum->get_data ())};
240+ auto count {buffer->get_size () / sizeof (float )};
239241
240- visual_math_simd_mul_floats_float (data, data , multiplier, datasize );
242+ visual_math_simd_mul_floats_float (result_ptr, spectrum_ptr , multiplier, count );
241243 }
242244
243245 void Audio::get_spectrum_for_sample (BufferPtr const & buffer, BufferConstPtr const & sample, bool normalised)
@@ -255,12 +257,14 @@ namespace LV {
255257
256258 void Audio::get_spectrum_for_sample (BufferPtr const & buffer, BufferConstPtr const & sample, bool normalised, float multiplier)
257259 {
258- get_spectrum_for_sample (buffer, sample, normalised);
260+ auto spectrum {Buffer::create (buffer->get_size ())};
261+ get_spectrum_for_sample (spectrum, sample, normalised);
259262
260- auto data = static_cast <float *> (buffer->get_data ());
261- std::size_t datasize = buffer->get_size () / sizeof (float );
263+ auto result_ptr {static_cast <float *> (buffer->get_data ())};
264+ auto spectrum_ptr {static_cast <float const *> (spectrum->get_data ())};
265+ auto count {buffer->get_size () / sizeof (float )};
262266
263- visual_math_simd_mul_floats_float (data, data , multiplier, datasize );
267+ visual_math_simd_mul_floats_float (result_ptr, spectrum_ptr , multiplier, count );
264268 }
265269
266270 void Audio::normalise_spectrum (BufferPtr const & buffer)
0 commit comments