25#include "../vctr/vctr.h"
26#include <juce_dsp/juce_dsp.h>
62template <is::anyVctr Src>
65 using SIMDRegister = juce::dsp::SIMDRegister<typename Src::value_type>;
67 VCTR_ASSERT (src.size() == SIMDRegister::SIMDNumElements);
69 if constexpr (Config::archARM)
71 return SIMDRegister { src.getNeon (i).value };
75 constexpr size_t registerSize = SIMDRegister::SIMDRegisterSize;
77 if constexpr (registerSize == 32)
79 return SIMDRegister { src.getAVX (i).value };
82 return SIMDRegister { src.getSSE (i).value };
102template <
class SampleType>
105 auto numSamples = block.getNumSamples();
106 return Span { block.getChannelPointer (channelIdx), numSamples };
116template <
class SampleType>
119 auto numSamples = block.getNumSamples();
120 return Span { block.getChannelPointer (channelIdx), numSamples, simdAlignedSpanStorageInfo<SampleType>() };
131template <
class SampleType>
134 auto numSamples = size_t (buffer.getNumSamples());
135 return Span { buffer.getWritePointer (
int (channelIdx)), numSamples };
146template <
class SampleType>
149 auto numSamples = size_t (buffer.getNumSamples());
150 return Span { buffer.getReadPointer (
int (channelIdx)), numSamples };
The view type.
Definition: Span.h:66
Helper functions to integrate vctr into dsp code written with JUCE (https://github....
Definition: vctr_juce_helpers.h:33
auto blockChannelAsSpanSIMDAligned(const juce::dsp::AudioBlock< SampleType > &block, size_t channelIdx)
Returns a Span that views a single channel of a juce::dsp::AudioBlock, expecting SIMD aligned memory.
Definition: vctr_juce_helpers.h:117
auto blockChannelAsSpan(const juce::dsp::AudioBlock< SampleType > &block, size_t channelIdx)
Returns a Span that views a single channel of a juce::dsp::AudioBlock.
Definition: vctr_juce_helpers.h:103
auto toSIMDRegister(const Src &src, size_t i=0)
Loads elements of src into a juce::SIMDRegister.
Definition: vctr_juce_helpers.h:63
auto audioBufferChannelAsSpan(juce::AudioBuffer< SampleType > &buffer, size_t channelIdx)
Returns a Span that views a single channel of a juce::AudioBuffer.
Definition: vctr_juce_helpers.h:132