c语言频谱视化编程,播放音乐视觉效果下上跳动的频谱条如何用C语言实现

C/C++ codestatic inline MS_U16 _getMP3random(MS_U8 id)

{

static MS_U16 y[8]={0};

if(id==0xff)

{

MS_U16 x[8]={0};

MS_U8 c=7;

for(id=0;id<8;id++)

{

MS_U16 random = 0;

random = rand() % 101;

x[id]=((random >= 100) ? 100 : random);

}

#if 0

randomvalue[0]=(5*trandomvalue[0]+2*trandomvalue[1]-trandomvalue[2])/6;

randomvalue[7]=(2*trandomvalue[7-2]-trandomvalue[7-3]+5*trandomvalue[7-1])/6;

for( id=1;id<7;id++)

randomvalue[id]=(trandomvalue[id-1]+trandomvalue[id]+trandomvalue[id+1])/3;

#else

y[0]=(3*x[0]+2*x[1]+x[2]-x[4])/5;

y[1]=(4*x[0]+3*x[1]+2*x[2]+x[3])/10;

y[c-2]=(x[c-4]+2*x[c-3]+3*x[c-2]+4*x[c-1])/10;

y[c-1]=(x[c-3]-x[c-5]+2*x[c-2]+3*x[c-1])/5;

for(id=2;id

y[id]=(x[id-2]+x[id-1]+x[id]+x[id+1]+x[id+2])/5;

#endif

/*//平滑算法0

y[0]=(5*x[0]+2*x[1]-x[2])/6;

y[c-1]=(2*x[c-2]-x[c-3]+5*x[c-1])/6;

for(int i=1;i

y[i]=(x[i-1]+x[i]+x[i+1])/3;

*/

/*//平滑算法1

y[0]=(3*x[0]+2*x[1]+x[2]-x[4])/5;

y[1]=(4*x[0]+3*x[1]+2*x[2]+x[3])/10;

y[c-2]=(x[c-4]+2*x[c-3]+3*x[c-2]+4*x[c-1])/10;

y[c-1]=(x[c-3]-x[c-5]+2*x[c-2]+3*x[c-1])/5;

for(int i=2;i

y[i]=(x[i-2]+x[i-1]+x[i]+x[i+1]+x[i+2])/5;

*/

/*//平滑算法2

ThrptFivetmSmooth(float* x, float* y, int n)//五点三次平滑算法

{

y[0]=(69*x[0]+4*(x[1]+x[3])-6*x[3]-x[5])/70;

y[1]=(2*(x[0]+x[4])+27*x[1]+12*x[2]-8*x[3])/35;

y[n-2]=(2*(x[n-5]+x[n-1])-8*x[n-4]+12*x[n-3]+27*x[n-2])/35;

y[n-1]=(4*(x[n-4]+x[n-2])-x[n-5]+6*x[n-3]+69*x[n-1])/70;

for(int i=2;i

y[i]=(12*(x[i-1]+x[i+1])-3*(x[i-2]+x[i+2])+17*x[i])/35;

}

*/

}

return y[id];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值