22template <
typename SampleType>
30 const AudioBuffer<SampleType>& inputAudio,
31 const AudioBuffer<SampleType>& outputAudio
33 m_inputAudio (inputAudio),
34 m_outputAudio (outputAudio),
35 m_cache (std::make_shared<Cache>())
54 if (m_cache->inputSpectrum ==
nullptr)
55 m_cache->inputSpectrum = std::make_shared<
Spectrum> (m_inputAudio);
57 return *m_cache->inputSpectrum;
63 if (m_cache->outputSpectrum ==
nullptr)
64 m_cache->outputSpectrum = std::make_shared<
Spectrum> (m_outputAudio);
66 return *m_cache->outputSpectrum;
72 if (m_cache->impulseResponse ==
nullptr)
74 m_cache->impulseResponse = std::make_shared<
ImpulseResponse<SampleType>> (
80 return *m_cache->impulseResponse;
86 mutable std::shared_ptr<
Spectrum> inputSpectrum =
nullptr;
87 mutable std::shared_ptr<
Spectrum> outputSpectrum =
nullptr;
88 mutable std::shared_ptr<
ImpulseResponse<SampleType>> impulseResponse =
nullptr;
91 const AudioBuffer<SampleType>& m_inputAudio;
92 const AudioBuffer<SampleType>& m_outputAudio;
94 std::shared_ptr<Cache> m_cache;
Contains audio-related artefacts useful for analysis by matchers.
const AudioBuffer< SampleType > & inputAudio() const
Returns a buffer with input audio.
const AudioBuffer< SampleType > & outputAudio() const
Returns a buffer with output audio.
const Spectrum & outputSpectrum() const
Returns a spectrum of the output audio.
AnalysisContext(const AudioBuffer< SampleType > &inputAudio, const AudioBuffer< SampleType > &outputAudio)
Creates an instance of analysis context.
const ImpulseResponse< SampleType > & impulseResponse() const
Returns an impulse response of the output audio vs input audio.
const Spectrum & inputSpectrum() const
Returns a spectrum of the input audio.
Container for representing an impulse response (IR)
Frequency-domain representation of a multi-channel audio signal.