aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Audio/Renderer/Dsp/Effect/ExponentialMovingAverage.cs
blob: 78e46bf96255b53c37636f5b49db9ccc3304f4c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System.Runtime.CompilerServices;

namespace Ryujinx.Audio.Renderer.Dsp.Effect
{
    public struct ExponentialMovingAverage
    {
        private float _mean;

        public ExponentialMovingAverage(float mean)
        {
            _mean = mean;
        }

        public float Read()
        {
            return _mean;
        }

        public float Update(float value, float alpha)
        {
            _mean += alpha * (value - _mean);

            return _mean;
        }
    }
}