Audacity 3.2.0
Public Member Functions | Public Attributes | List of all members
MixerOptions::ResampleParameters Struct Referencefinal

#include <MixerOptions.h>

Collaboration diagram for MixerOptions::ResampleParameters:
[legend]

Public Member Functions

 ResampleParameters (bool highQuality, const SampleTrack &leader, double rate, const Warp &options)
 

Public Attributes

bool mHighQuality {}
 
bool mVariableRates { false }
 
std::vector< double > mMinFactor
 
std::vector< double > mMaxFactor
 

Detailed Description

Definition at line 80 of file MixerOptions.h.

Constructor & Destructor Documentation

◆ ResampleParameters()

MixerOptions::ResampleParameters::ResampleParameters ( bool  highQuality,
const SampleTrack leader,
double  rate,
const Warp options 
)

Definition at line 38 of file MixerOptions.cpp.

40 : mHighQuality{ highQuality }
41{
42 auto range = TrackList::Channels<const SampleTrack>(&leader);
43 auto size = range.size();
44 mMinFactor.reserve(size);
45 mMaxFactor.reserve(size);
46 for (auto pTrack : range) {
47 double factor = (rate / pTrack->GetRate());
48 if (const auto envelope = options.envelope) {
49 // variable rate resampling
50 mVariableRates = true;
51 mMinFactor.push_back(factor / envelope->GetRangeUpper());
52 mMaxFactor.push_back(factor / envelope->GetRangeLower());
53 }
54 else if (options.minSpeed > 0.0 && options.maxSpeed > 0.0) {
55 // variable rate resampling
56 mVariableRates = true;
57 mMinFactor.push_back(factor / options.maxSpeed);
58 mMaxFactor.push_back(factor / options.minSpeed);
59 }
60 else {
61 // constant rate resampling
62 mVariableRates = false;
63 mMinFactor.push_back(factor);
64 mMaxFactor.push_back(factor);
65 }
66 }
67}
std::vector< double > mMaxFactor
Definition: MixerOptions.h:85
std::vector< double > mMinFactor
Definition: MixerOptions.h:85

References MixerOptions::Warp::envelope, MixerOptions::Warp::maxSpeed, MixerOptions::Warp::minSpeed, mMaxFactor, mMinFactor, mVariableRates, and size.

Member Data Documentation

◆ mHighQuality

bool MixerOptions::ResampleParameters::mHighQuality {}

Definition at line 83 of file MixerOptions.h.

Referenced by MixerSource::MakeResamplers().

◆ mMaxFactor

std::vector<double> MixerOptions::ResampleParameters::mMaxFactor

Definition at line 85 of file MixerOptions.h.

Referenced by MixerSource::MakeResamplers(), and ResampleParameters().

◆ mMinFactor

std::vector<double> MixerOptions::ResampleParameters::mMinFactor

Definition at line 85 of file MixerOptions.h.

Referenced by MixerSource::MakeResamplers(), and ResampleParameters().

◆ mVariableRates

bool MixerOptions::ResampleParameters::mVariableRates { false }

The documentation for this struct was generated from the following files: