MCPcopy Create free account
hub / github.com/ValveSoftware/steam-audio / Reconstructor

Method Reconstructor

core/src/core/reconstructor.cpp:44–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42// --------------------------------------------------------------------------------------------------------------------
43
44Reconstructor::Reconstructor(float maxDuration,
45 int maxOrder,
46 int samplingRate)
47 : mMaxDuration(maxDuration)
48 , mMaxOrder(maxOrder)
49 , mSamplingRate(samplingRate)
50 , mWhiteNoise(Bands::kNumBands, static_cast<int>(ceilf(maxDuration * samplingRate)))
51 , mBandIRs(Bands::kNumBands, static_cast<int>(ceilf(maxDuration * samplingRate)))
52 , mFilters(Bands::kNumBands)
53{
54 for (auto i = 0; i < Bands::kNumBands; ++i)
55 {
56 std::default_random_engine randomGenerator;
57 std::uniform_real_distribution<float> uniformDistribution(-1.0f, 1.0f);
58 auto uniformRandom = std::bind(uniformDistribution, randomGenerator);
59
60 for (auto j = 0u; j < mWhiteNoise.size(1); ++j)
61 {
62 mWhiteNoise[i][j] = uniformRandom();
63 }
64 }
65
66 IIR filters[Bands::kNumBands];
67 IIR::bandFilters(filters, samplingRate);
68 for (auto i = 0; i < Bands::kNumBands; ++i)
69 {
70 mFilters[i].setFilter(filters[i]);
71 }
72}
73
74void Reconstructor::reconstruct(int numIRs,
75 const EnergyField* const* energyFields,

Callers

nothing calls this directly

Calls 2

setFilterMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected