Exemplo n.º 1
0
        internal void Setup(AmbisonicOrder order, AmbisonicChannelOrder channelOrder, AmbisonicNormalisation normalisation, int bufferCount)
        {
            Debug.Assert(bufferCount > 1 && bufferCount < 100);
            lock (this)
            {
                _order         = order;
                _channelOrder  = channelOrder;
                _normalisation = normalisation;
                int sampleCount = Ambisonic.GetCoeffCount(order) * AudioSettings.outputSampleRate / 10;                 // 1/10 second buffer

                _activeSampleIndex = 0;
                _activeSamples     = null;
                _fullBuffers.Clear();
                _emptyBuffers.Clear();
                for (int i = 0; i < bufferCount; i++)
                {
                    float[] buffer = new float[sampleCount];
                    _emptyBuffers.Enqueue(buffer);
                }

                UpdateCoefficients();
            }
        }
Exemplo n.º 2
0
 public static float[] GetNormalisationWeights(AmbisonicNormalisation normalisation)
 {
     return((normalisation == AmbisonicNormalisation.FuMa) ? _weightsFuMa : _weightsSN3D);
 }