Ray的专栏

专注Android、J2ME开发

soundtouch之变调、变速、节拍

前一段日子在做变调不变速的算法,通过频域实现,谁知道到相位同步一直搞不定了,声音效果比较差。后来去偶然看到了soundtouch,这个强大的库让我为之振奋,现在已经完成,并做成了一个实时播放的demo,现把一些使用笔记简单地拿出来共享。 SoundTouch是一个开源的音频处理

2011-08-27 11:50:20

阅读数:13617

评论数:23

多媒体音量调节的方法

/** * * [多媒体音量调节] * [功能详细描述] * * @param keyCode * @param event * @return * @see android.app.Activity#onKeyDown(int...

2011-06-27 15:24:00

阅读数:3123

评论数:0

wave文件(*.wav)格式、PCM数据格式

 1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit  mon...

2011-06-17 09:11:00

阅读数:2245

评论数:0

SoundTouch音频处理库源码分析及算法提取(9)

我们都知道,当播放速度改变的时候,会带来一个副作用,那就是音调也会随着播放的速度而改变。播放速度加快,声音将升调,变得尖锐,播放速度减慢,声音将降调,变得低沉,当然这是题外之话。改变音频播放速度的方法有很多,我只针对ST变速算法的核心,也就是线性插值算法的实现。对于ST的插值算法前面已经提到。  ...

2011-06-13 10:21:00

阅读数:2997

评论数:0

SoundTouch音频处理库源码分析及算法提取(8)

 经过前面几个小节的介绍,各位想必已经对ST有个比较初步的认识。在往后的这些章节里,我将提出ST某些重要的算法以及实现。首先谈谈数字滤波器的实现。纵观整个ST的处理流程,仅仅在对声音样本进行重采样的时候可以通过bool bUseAAFilter的值来判断是否采用数字滤波器,具体在RateTrans...

2011-06-13 10:20:00

阅读数:2464

评论数:0

SoundTouch音频处理库源码分析及算法提取(7)

上一节说到TDStretch类成员函数processSamples,粗略分析了一下大概。至于流程是通过TDStretch类成员函数putsamples调用processSamples进行处理,我们不难联想到前面对于SoundTouch类成员函数putSamples的分析。TDStretch类成员函...

2011-06-13 10:19:00

阅读数:2518

评论数:0

SoundTouch音频处理库源码分析及算法提取(6)

TDStretch类的实现SoundTouch类成员函数putSamples(const SAMPLETYPE *samples, uint nSamples)实现如下,根据上篇的分析rate是一个比率,大于1表示速度加快,小于1表示速度减慢,对于播放速度减慢这种情况。……#ifndef PREV...

2011-06-13 10:18:00

阅读数:3381

评论数:1

SoundTouch音频处理库源码分析及算法提取(5)

变速类RateTransposer的实现回到SoundTouch类成员函数void SoundTouch::putSamples(const SAMPLETYPE *samples, uint nSamples)。定义一个SoundTouch类变量之后,通过简单地调用这个类函数,就可以实现音频的相...

2011-06-13 10:16:00

阅读数:3545

评论数:0

SoundTouch音频处理库源码分析及算法提取(4)

SoundTouch构造流程初始化的一点补充。在SoundTouch类构造函数中,我们留意到有这么一个函数calcEffectiveRateAndTempo()SoundTouch::SoundTouch(){    // Initialize rate transposer and tempo ...

2011-06-13 10:15:00

阅读数:3054

评论数:0

SoundTouch音频处理库源码分析及算法提取(3)

 SoundTouch音频处理库初始化流程剖析 2紧接上文《SoundTouch音频处理库初始化流程剖析》TDStretch类和基类的关系:FIFOSamplePipe -> FIFOProcessor ->TDStretchSoundTouch类成员class TDStretch *...

2011-06-13 10:13:00

阅读数:3651

评论数:0

SoundTouch音频处理库源码分析及算法提取(2)

SoundTouch音频处理库初始化流程剖析定义一个变量SoundTouch m_SoundTouch; SoundTouch的派生关系FIFOSamplePipe->FIFOProcessor->SoundTouch (流程[1])因此首先构造基类FIFOSamplePipe,接着派...

2011-06-13 10:12:00

阅读数:5794

评论数:0

SoundTouch音频处理库源码分析及算法提取(1)

SoundTouch音频处理库的使用异常简单,经过简单的编译之后,设置编译环境,以vc为例,直接在include包含SoundTouch目录下的include路径,接着在lib添加SoundTouch目录下的lib路径,然后在代码的头文件中添加头文件以及引用的库。如下:根据_DEBUG这个宏,我们...

2011-06-13 10:08:00

阅读数:24370

评论数:9

AudioRecord实现录音

Raw Audio Manipulation in Android Tuesday, September 1, 2009 | 2:13 AM Labels: Country: EMEA, Product: Android Version 1.5 of the Android SDK introdu...

2011-06-09 13:49:00

阅读数:5019

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭