AcoustID.Chromaprint.SilenceRemover.Consume C# (CSharp) Method

Consume() public method

public Consume ( short input, int length ) : void
input short
length int
return void
        public void Consume(short[] input, int length)
        {
            int offset = 0, n = length;
            if (m_start)
            {
                while (length > 0)
                {
                    m_average.AddValue(Math.Abs(input[offset]));
                    if (m_average.GetAverage() > m_threshold)
                    {
                        m_start = false;
                        break;
                    }
                    offset++;
                    length--;
                }
            }

            // TODO: workaround pointer magic: shift array data.
            if (offset > 0)
            {
                for (int i = 0; i < n - offset; i++)
                {
                    input[i] = input[i + offset];
                }

                // Not necessary?
                for (int i = n - offset; i < n; i++)
                {
                    input[i] = 0;
                }
            }

            if (length > 0)
            {
                m_consumer.Consume(input, length);
            }
        }

Usage Example

Ejemplo n.º 1
0
        public void TestPassThrough()
        {
            short[] samples = { 1000, 2000, 3000, 4000, 5000, 6000 };
            short[] data = (short[])(samples.Clone());

            AudioBuffer buffer = new AudioBuffer();
            SilenceRemover processor = new SilenceRemover(buffer);
            processor.Reset(44100, 1);
            processor.Consume(data, data.Length);
            processor.Flush();

            Assert.AreEqual(data.Length, buffer.data.Length);
            for (int i = 0; i < data.Length; i++)
            {
                Assert.AreEqual(data[i], buffer.data[i]); // << "Signals differ at index " << i;
            }
        }
All Usage Examples Of AcoustID.Chromaprint.SilenceRemover::Consume