⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 amf_testgennoisepink.c

📁 ADI SHARC DSP 音频算法标准模块库
💻 C
字号:
// Copyright(c) 2005 Analog Devices, Inc. All Rights Reserved.
// This software is proprietary and confidential to Analog Devices, Inc. and its licensors.

// File    : $Id: //depot/development/visualaudio/modules/2.5.0/SHARC/Source/AMF_TestGenNoisePink.c#3 $ 
// Part of : VisualAudio V2.5.0 
// Updated : $Date: 2006/10/12 $ by $Author: Fernando $



#include "AMF_TestGenNoisePink.h"
#include <stdlib.h>

// based on http://www.musicdsp.org/files/pink.txt

void AMF_TestGenNoisePink_Render(AMF_TestGenNoisePink * restrict instance,float * restrict * buffers,int tickSize);

SEG_MOD_FAST_CODE  void AMF_TestGenNoisePink_Render(AMF_TestGenNoisePink * restrict instance,float * restrict * buffers,int tickSize) {
    int i;
    float *out = buffers[0];
    int seed;    
    int tmp;
    float b0,b1,b2,b3,b4,b5,b6,white;
    float stdDev = instance->stdDev;

    srand(instance->seed);
    
    b0 = instance->filterStates[0];
    b1 = instance->filterStates[1];
    b2 = instance->filterStates[2];
    b3 = instance->filterStates[3];
    b4 = instance->filterStates[4];
    b5 = instance->filterStates[5];
    b6 = instance->filterStates[6];
    for (i = 0; i < tickSize; i++) 
    {
        tmp = rand();
        white = (float)(tmp * (1.0/RAND_MAX))-0.5;
        b0 = 0.99886f * b0 + white * 0.0555179f;
        b1 = 0.99332f * b1 + white * 0.0750759f;
        b2 = 0.96900f * b2 + white * 0.1538520f;
        b3 = 0.86650f * b3 + white * 0.3104856f;
        b4 = 0.55000f * b4 + white * 0.5329522f;
        b5 = -0.7616f * b5 + white * 0.0168980f;
        out[i] = 1.12937f*stdDev*(b0 + b1 + b2 + b3 + b4 + b5 + b6 + white * 0.5362f);
        b6 = white * 0.115926f;
    }
    instance->filterStates[0] = b0;
    instance->filterStates[1] = b1;
    instance->filterStates[2] = b2;
    instance->filterStates[3] = b3;
    instance->filterStates[4] = b4;
    instance->filterStates[5] = b5;
    instance->filterStates[6] = b6;
    instance->seed = tmp;
}

SEG_MOD_SLOW_CONST const AMF_ModuleClass AMFClassTestGenNoisePink = {
    
    /* Flags */
    0,
     
    /* Render function */
    (AMF_RenderFunction)AMF_TestGenNoisePink_Render,

    /* Default bypass */
    (void *)0,
    
    /* Input descriptor - no inputs. */
    0, 0,

    /* Output descriptor - 1 output, and it is mono. */
    1, 0,
};


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -