当前位置: 首页>>代码示例>>C++>>正文


C++ computefiltercoefs函数代码示例

本文整理汇总了C++中computefiltercoefs函数的典型用法代码示例。如果您正苦于以下问题:C++ computefiltercoefs函数的具体用法?C++ computefiltercoefs怎么用?C++ computefiltercoefs使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了computefiltercoefs函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: computefiltercoefs

void AnalogFilter::setfreq (REALTYPE frequency)
{
    if (frequency < 0.1) frequency = 0.1;
    REALTYPE rap = freq / frequency;
    if (rap < 1.0) rap = 1.0 / rap;

    oldabovenq = abovenq;
    abovenq = frequency > (SAMPLE_RATE / 2 - 500.0);

    int nyquistthresh = (abovenq ^ oldabovenq);

    if ((rap > 3.0) || (nyquistthresh != 0))
    {
        // if the frequency is changed fast, it needs interpolation
        // (now, filter and coeficients backup)
        for (int i = 0; i < 3; i++)
        {
            oldc[i] = c[i];
            oldd[i] = d[i];
        }

        for (int i = 0; i < MAX_FILTER_STAGES + 1; i++)
        {
            oldx[i] = x[i];
            oldy[i] = y[i];
        }

        if (firsttime == 0)
            needsinterpolation = 1;
    }

    freq = frequency;
    computefiltercoefs();
    firsttime = 0;
}
开发者ID:alessandropetrolati,项目名称:juced,代码行数:35,代码来源:AnalogFilter.cpp

示例2: cosf

/*
 * Initialise the filters
 */
void SUBnote::initfilter(bpfilter &filter,
                         float freq,
                         float bw,
                         float amp,
                         float mag)
{
    filter.xn1 = 0.0f;
    filter.xn2 = 0.0f;

    if(start == 0) {
        filter.yn1 = 0.0f;
        filter.yn2 = 0.0f;
    }
    else {
        float a = 0.1f * mag; //empirically
        float p = RND * 2.0f * PI;
        if(start == 1)
            a *= RND;
        filter.yn1 = a * cosf(p);
        filter.yn2 = a * cosf(p + freq * 2.0f * PI / synth.samplerate_f);

        //correct the error of computation the start amplitude
        //at very high frequencies
        if(freq > synth.samplerate_f * 0.96f) {
            filter.yn1 = 0.0f;
            filter.yn2 = 0.0f;
        }
    }

    filter.amp  = amp;
    filter.freq = freq;
    filter.bw   = bw;
    computefiltercoefs(filter, freq, bw, 1.0f);
}
开发者ID:peter1000,项目名称:Carla,代码行数:37,代码来源:SUBnote.cpp

示例3: computefiltercoefs

/*
 * Initialise the filters
 */
void SUBnote::initfilter(bpfilter &filter,
                         REALTYPE freq,
                         REALTYPE bw,
                         REALTYPE amp,
                         REALTYPE mag)
{
    filter.xn1=0.0;
    filter.xn2=0.0;

    if (start==0) {
        filter.yn1=0.0;
        filter.yn2=0.0;
    } else {
        REALTYPE a=0.1*mag;//empirically
        REALTYPE p=RND*2.0*PI;
        if (start==1) a*=RND;
        filter.yn1=a*cos(p);
        filter.yn2=a*cos(p+freq*2.0*PI/SAMPLE_RATE);

        //correct the error of computation the start amplitude
        //at very high frequencies
        if (freq>SAMPLE_RATE*0.96) {
            filter.yn1=0.0;
            filter.yn2=0.0;

        };
    };

    filter.amp=amp;
    filter.freq=freq;
    filter.bw=bw;
    computefiltercoefs(filter,freq,bw,1.0);
};
开发者ID:ishkabbible,项目名称:ZASF,代码行数:36,代码来源:SUBnote.cpp

示例4: computefiltercoefs_hiQ

void
RBFilter::settype (int type_)
{
    type = type_;
    if(!qmode) computefiltercoefs ();
    else computefiltercoefs_hiQ ();
};
开发者ID:eriser,项目名称:guitareffectvst,代码行数:7,代码来源:RBFilter.cpp

示例5: dB2rap

void
RBFilter::setgain (float dBgain)
{
    gain = dB2rap (dBgain);
    if(!qmode) computefiltercoefs ();
    else computefiltercoefs_hiQ ();
};
开发者ID:eriser,项目名称:guitareffectvst,代码行数:7,代码来源:RBFilter.cpp

示例6: computefiltercoefs

void AnalogFilter::setfreq(float frequency)
{
    if(frequency < 0.1f)
        frequency = 0.1f;
    float rap = freq / frequency;
    if(rap < 1.0f)
        rap = 1.0f / rap;

    oldabovenq = abovenq;
    abovenq    = frequency > (halfsamplerate_f - 500.0f);

    bool nyquistthresh = (abovenq ^ oldabovenq);


    //if the frequency is changed fast, it needs interpolation
    if((rap > 3.0f) || nyquistthresh) { //(now, filter and coeficients backup)
        oldCoeff = coeff;
        for(int i = 0; i < MAX_FILTER_STAGES + 1; ++i)
            oldHistory[i] = history[i];
        if(!firsttime)
            needsinterpolation = true;
    }
    freq = frequency;
    computefiltercoefs();
    firsttime = false;
}
开发者ID:CallisteHanriat,项目名称:lmms,代码行数:26,代码来源:AnalogFilter.cpp

示例7: cleanup

void SVFilter::setstages(int stages_)
{
    if(stages_ >= MAX_FILTER_STAGES)
        stages_ = MAX_FILTER_STAGES - 1;
    stages = stages_;
    cleanup();
    computefiltercoefs();
}
开发者ID:grimtraveller,项目名称:zynaddsubfx,代码行数:8,代码来源:SVFilter.cpp

示例8: computefiltercoefs

void 
AnalogFilter::setSR(unsigned int value)
{

  iSAMPLE_RATE = value;
  ifSAMPLE_RATE=(float) iSAMPLE_RATE;
  computefiltercoefs ();

}  
开发者ID:yroffin,项目名称:Rakkarack,代码行数:9,代码来源:AnalogFilter.C

示例9: setstages

void
setstages (ZEq10ban_t * s, AnalogFilter *filter, int stages_)
{
  if (stages_ >= MAX_FILTER_STAGES)
    stages_ = MAX_FILTER_STAGES - 1;
  filter->stages = stages_;
  AnalogFilter_Cleanup (s,filter);
  computefiltercoefs (s,filter);
};
开发者ID:BackupTheBerlios,项目名称:holap,代码行数:9,代码来源:analogfilter.c

示例10: cleanup

void
RBFilter::setstages (int stages_)
{
    if (stages_ >= MAX_FILTER_STAGES)
        stages_ = MAX_FILTER_STAGES - 1;
    stages = stages_;
    cleanup ();
    if(!qmode) computefiltercoefs ();
    else computefiltercoefs_hiQ ();
};
开发者ID:eriser,项目名称:guitareffectvst,代码行数:10,代码来源:RBFilter.cpp

示例11: cleanup

void AnalogFilter::setstages(int stages_)
{
    if(stages_ >= MAX_FILTER_STAGES)
        stages_ = MAX_FILTER_STAGES - 1;
    if(stages_  != stages) {
        stages = stages_;
        cleanup();
        computefiltercoefs();
    }
}
开发者ID:loki42,项目名称:Carla,代码行数:10,代码来源:AnalogFilter.cpp

示例12: computefiltercoefs

void SVFilter::setfreq(REALTYPE frequency) {
    if (frequency<0.1) frequency=0.1;
    REALTYPE rap=freq/frequency;
    if (rap<1.0) rap=1.0/rap;

    oldabovenq=abovenq;
    abovenq=frequency>(SAMPLE_RATE/2-500.0);

    int nyquistthresh=(abovenq^oldabovenq);


    if ((rap>3.0)||(nyquistthresh!=0)) { //if the frequency is changed fast, it needs interpolation (now, filter and coeficients backup)
        if (firsttime==0) needsinterpolation=1;
        ipar=par;
    };
    freq=frequency;
    computefiltercoefs();
    firsttime=0;

};
开发者ID:rsenn,项目名称:eXT2,代码行数:20,代码来源:SVFilter.C

示例13: computefiltercoefs

void SVFilter::setfreq(REALTYPE frequency)
{
  REALTYPE rap;
  int nyquistthresh;

  if (frequency < 0.1)
  {
    frequency = 0.1;
  }

  rap = freq / frequency;
  if (rap < 1.0)
  {
    rap = 1.0 / rap;
  }

  oldabovenq = abovenq;
  abovenq = frequency > (m_sample_rate / 2 - 500.0);

  nyquistthresh = (abovenq ^ oldabovenq);

  if (rap > 3.0 || nyquistthresh != 0)
  {
    // if the frequency is changed fast, it needs interpolation (now, filter and coeficients backup)
    if (firsttime == 0)
    {
      needsinterpolation = 1;
    }

    ipar = par;
  }

  freq = frequency;

  computefiltercoefs();

  firsttime = 0;
}
开发者ID:XelaRellum,项目名称:zyn,代码行数:38,代码来源:sv_filter.cpp

示例14: computefiltercoefs

void SVFilter::setfreq(float frequency)
{
    if(frequency < 0.1f)
        frequency = 0.1f;
    float rap = freq / frequency;
    if(rap < 1.0f)
        rap = 1.0f / rap;

    oldabovenq = abovenq;
    abovenq    = frequency > (synth->samplerate_f / 2 - 500.0f);

    bool nyquistthresh = (abovenq ^ oldabovenq);

    //if the frequency is changed fast, it needs interpolation
    if((rap > 3.0f) || nyquistthresh) { //(now, filter and coeficients backup)
        if(!firsttime)
            needsinterpolation = true;
        ipar = par;
    }
    freq = frequency;
    computefiltercoefs();
    firsttime = false;
}
开发者ID:grimtraveller,项目名称:zynaddsubfx,代码行数:23,代码来源:SVFilter.cpp

示例15: setfreq

void
setfreq (ZEq10ban_t * s, AnalogFilter *filter, float frequency)
{
  int i;
  if (frequency < 0.1)
    frequency = 0.1;
  float rap = filter->freq / frequency;
  if (rap < 1.0)
    rap = 1.0 / rap;

  filter->oldabovenq = filter->abovenq;
  filter->abovenq = frequency > (s->SAMPLE_RATE / 2 - 500.0);

  int nyquistthresh = (filter->abovenq ^ filter->oldabovenq);


  if ((rap > 3.0) || (nyquistthresh != 0))
    {				//if the frequency is changed fast, it needs interpolation (now, filter and coeficients backup)
      for (i = 0; i < 3; i++)
	{
	  filter->oldc[i] = filter->c[i];
	  filter->oldd[i] = filter->d[i];
	};
      for (i = 0; i < MAX_FILTER_STAGES + 1; i++)
	{
	  filter->oldx[i] = filter->x[i];
	  filter->oldy[i] = filter->y[i];
	};
      if (filter->firsttime == 0)
	filter->needsinterpolation = 1;
    };
  filter->freq = frequency;
  computefiltercoefs (s,filter);
  filter->firsttime = 0;

};
开发者ID:BackupTheBerlios,项目名称:holap,代码行数:36,代码来源:analogfilter.c


注:本文中的computefiltercoefs函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。