c 语言,pcm 数据增大音量

原创 2015年11月19日 16:09:54
static int raiseVolume(unsigned char *buf,int len_in,float level)
{


#ifndef clamp
#define clamp(a,min,max) (((a)>(max))?(max):(((a)<(min))?(min):(a)))
#endif


#define NS_CHANNELS 2
int ch = 0,i;
int16_t*    a   = (int16_t*)buf; // Audio data
    int         len = len_in/2; // Number of samples
    for(ch = 0; ch < NS_CHANNELS ; ch++){
      if(1){
register int vol = (int)(255.0 * level);
for(i=ch;i<len;i+=NS_CHANNELS){
 register int x = (a[i] * vol) >> 8;
 a[i]=clamp(x,SHRT_MIN,SHRT_MAX);
}
      }
    }
return 0;
}

PCM音频数据音量大小调节

转载:http://blog.csdn.net/timsley/article/details/50683084 PCM音频数据增大或减小的原理主要是,将采样的数据乘上一个数字或者是除以一个数字...

PCM音频数据音量大小调节

PCM音频数据增大或减小的原理主要是,将采样的数据乘上一个数字或者是除以一个数字,但要注意溢出处理。具体实现如下 C语言实现 #define OLD_FILE_PATH "file.pcm" ...
  • dxpqxb
  • dxpqxb
  • 2017年10月24日 14:39
  • 114

C 语言的 bit 和 bit操作 显示数据的 二进制形式

1.Bit :所有数据在电脑中 都是用0和1进行运算和存储的 像这样 01010101 C语言中 怎样显示数据的二进制 最左边的称为高位 最右边的称为低位 高位为0 低位为1 1一个0或1称为1b...

【数据结构与算法】(六) c 语言实现简单的二叉树静态创建及先序、中序、后序遍历

// // main.c // testBinaryTree // // Created by lan on 16/3/15. // Copyright © 2016年 lan. All ri...
  • tzshlyt
  • tzshlyt
  • 2016年03月16日 00:33
  • 292

【C语言】PCM音频数据处理---降低采样率

【C语言】PCM音频数据处理---降低采样率
  • Timsley
  • Timsley
  • 2016年02月17日 23:44
  • 4581

【C语言】PCM音频数据处理---左右声道分离

我用一麦克风录制的PCM数据是16bit,双声道的,用Audacity工具查看可知,右声道是没有声音的,左声道才有声音,如下图所示 所以为了节省存储空间,完全可以将左右声道分离出来,左右声道分离的方...
  • Timsley
  • Timsley
  • 2016年02月17日 22:32
  • 3552

C 语言 数据结构之双向链表

#include #include struct Node {   char data;   struct Node *left;   struct Node *right; }; typ...

C 语言中实现数据与方法的封装

在 C 语言中可以用结构体代替类,用函数指针代替成员方法,实现数据成员与成员方法的封装,在客户端程序中写出的程序与 C++ 类似,唯一的不同是 C 语言中调用函数指针成员时必须将本对象的地址传给函数,...
  • Justme0
  • Justme0
  • 2013年08月19日 00:25
  • 2772

C 语言 键盘输入一组数据,两种方式排序输出。

1. 自定义一个函数,将三个数字按照由大到小或者有小到大的顺序排列并且输出。  要求:在main函数中完成三个数字的输入,调用自定义的函数选择排序方式,并完成三个数字的排列和输出  2. 自定义一...

C 语言的数据序列化

原文: http://blog.codingnow.com/2010/03/c_serialization.html ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c 语言,pcm 数据增大音量
举报原因:
原因补充:

(最多只允许输入30个字)