HephAudio v3.1.0
A cross-platform C++ library for recording, playing, and processing audio on Windows, Android, Linux, iOS, and macOS.
Loading...
Searching...
No Matches
HephAudio::PitchShifter Class Reference

changes the pitch without changing the playback speed. More...

#include <PitchShifter.h>

Inheritance diagram for HephAudio::PitchShifter:
HephAudio::OlaEffect HephAudio::DoubleBufferedAudioEffect HephAudio::AudioEffect

Public Member Functions

 PitchShifter ()
 
 PitchShifter (size_t hopSize, const Window &wnd)
 
 PitchShifter (double toneChange, size_t hopSize, const Window &wnd)
 
virtual ~PitchShifter ()=default
 
virtual std::string Name () const override
 
virtual double GetToneChange () const
 
virtual void SetToneChange (double toneChange)
 
- Public Member Functions inherited from HephAudio::OlaEffect
virtual ~OlaEffect ()=default
 
virtual size_t CalculateRequiredFrameCount (size_t outputFrameCount, const AudioFormatInfo &formatInfo) const
 
virtual void ResetInternalState () override
 
virtual void Process (AudioBuffer &buffer, size_t startIndex, size_t frameCount) override
 
virtual size_t GetHopSize () const
 
virtual void SetHopSize (size_t hopSize)
 
virtual size_t GetWindowSize () const
 
virtual void SetWindow (const Window &wnd)
 
virtual void Process (AudioBuffer &buffer)
 
virtual void Process (AudioBuffer &buffer, size_t startIndex)
 
- Public Member Functions inherited from HephAudio::DoubleBufferedAudioEffect
virtual ~DoubleBufferedAudioEffect ()=default
 
- Public Member Functions inherited from HephAudio::AudioEffect
virtual ~AudioEffect ()=default
 
virtual bool HasMTSupport () const
 
virtual bool HasRTSupport () const
 
virtual size_t GetThreadCount () const
 
virtual void SetThreadCount (size_t threadCount)
 
virtual size_t CalculateOutputFrameCount (size_t inputFrameCount, const AudioFormatInfo &formatInfo) const
 
virtual size_t CalculateAdvanceSize (size_t renderFrameCount, const AudioFormatInfo &formatInfo) const
 

Protected Member Functions

virtual void ProcessST (const AudioBuffer &inputBuffer, AudioBuffer &outputBuffer, size_t startIndex, size_t frameCount) override
 
- Protected Member Functions inherited from HephAudio::OlaEffect
 OlaEffect ()
 
 OlaEffect (size_t hopSize)
 
 OlaEffect (size_t hopSize, const Window &wnd)
 
virtual size_t CalculateMaxNumberOfOverlaps () const
 
virtual size_t CalculatePastSamplesSize () const
 
- Protected Member Functions inherited from HephAudio::DoubleBufferedAudioEffect
 DoubleBufferedAudioEffect ()
 
virtual AudioBuffer CreateOutputBuffer (const AudioBuffer &inputBuffer, size_t startIndex, size_t frameCount) const
 
virtual void InitializeOutputBuffer (const AudioBuffer &inputBuffer, AudioBuffer &outputBuffer, size_t startIndex, size_t frameCount) const
 
- Protected Member Functions inherited from HephAudio::AudioEffect
 AudioEffect ()
 
virtual void ProcessMT (const AudioBuffer &inputBuffer, AudioBuffer &outputBuffer, size_t startIndex, size_t frameCount)
 

Protected Attributes

double pitchFactor
 
- Protected Attributes inherited from HephAudio::OlaEffect
size_t hopSize
 
Heph::DoubleBuffer wnd
 
size_t currentIndex
 
AudioBuffer pastSamples
 
- Protected Attributes inherited from HephAudio::AudioEffect
size_t threadCount
 

Detailed Description

changes the pitch without changing the playback speed.

Constructor & Destructor Documentation

◆ PitchShifter() [1/3]

HephAudio::PitchShifter::PitchShifter ( )

creates a new instance and initializes it with default values.

◆ PitchShifter() [2/3]

HephAudio::PitchShifter::PitchShifter ( size_t hopSize,
const Window & wnd )

◆ PitchShifter() [3/3]

HephAudio::PitchShifter::PitchShifter ( double toneChange,
size_t hopSize,
const Window & wnd )

creates a new instance and initializes it with the provided values.

Parameters
toneChangein semitones. Positive value raises the pitch, negative value lowers it.
hopSize@copydetalis hopSize
wnd@copydetalis wnd

◆ ~PitchShifter()

virtual HephAudio::PitchShifter::~PitchShifter ( )
virtualdefault

releases the resources and destroys the instance.

Member Function Documentation

◆ Name()

virtual std::string HephAudio::PitchShifter::Name ( ) const
overridevirtual

gets the name of the audio effect.

Implements HephAudio::AudioEffect.

◆ GetToneChange()

virtual double HephAudio::PitchShifter::GetToneChange ( ) const
virtual

gets the tone change in semitones.

◆ SetToneChange()

virtual void HephAudio::PitchShifter::SetToneChange ( double toneChange)
virtual

sets the tone change in semitones.

Parameters
toneChangein semitones. Positive value raises the pitch, negative value lowers it.

◆ ProcessST()

virtual void HephAudio::PitchShifter::ProcessST ( const AudioBuffer & inputBuffer,
AudioBuffer & outputBuffer,
size_t startIndex,
size_t frameCount )
overrideprotectedvirtual

applies the effect using single thread.

Parameters
inputBuffercontains the audio data which will be processed.
outputBuffercontains the processed audio data.
startIndexindex of the first sample to process.
frameCountnumber of frames to process.

Implements HephAudio::AudioEffect.

Member Data Documentation

◆ pitchFactor

double HephAudio::PitchShifter::pitchFactor
protected

frequency multiplier.