Tag: portaudio

C中的Windows虚拟麦克风

我刚才问了一个类似的问题,但我不太了解,所以我不够具体。 我想编写一个程序,从我的麦克风接收输入,处理它,然后将输出发送到假的“虚拟麦克风”,好像我创建的处理过的声音是麦克风听到的。 然后,我希望能够将此虚拟麦克风与任何支持选择麦克风输入(几乎任何编写良好的软件)的应用程序一起用作有效麦克风。 那么应用程序“听到”将是我处理的麦克风输入版本。 我正在使用C语言中的Portaudio,我可以从麦克风中捕获,处理并发送到扬声器就好了。 现在我需要用虚假麦克风替换应用程序中的真实扬声器。 Windows似乎有一些API。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff536201%28v=vs.85%29.aspx所以我的接收器引脚将是真正的麦克风,我将不得不创建一个新的源引脚应该对其他应用程序可见。 我该怎么做呢? 我很难找到代码示例或者甚至是任何非常有用的文档。 语言:C OS:Windows 7

如何使用mingw和msys构建Port Audio?

我在Windows机器上构建Port Audio时遇到问题。 我正在关注本教程: http : //portaudio.com/docs/v19-doxydocs/compile_windows_mingw.html 在./configure运行构建过程后运行make ,最后输出此消息,这就是构建过程停止的地方。 /bin/sh ./libtool –mode=link gcc -shared -rpath /usr/local/lib -no-undefined – export-symbols-regex “(Pa|PaMacCore|PaJack|PaAlsa|PaAsio|PaOSS)_.*” -version-inf o 2:0:0 -o lib/libportaudio.la src/common/pa_allocation.lo src/common/pa_convert ers.lo src/common/pa_cpuload.lo src/common/pa_dither.lo src/common/pa_debugprint .lo src/common/pa_front.lo src/common/pa_process.lo src/common/pa_stream.lo src/ common/pa_trace.lo src/hostapi/skeleton/pa_hostapi_skeleton.lo src/hostapi/wmme/ pa_win_wmme.lo src/os/win/pa_win_hostapis.lo src/os/win/pa_win_util.lo src/os/wi n/pa_win_waveformat.lo -lwinmm *** Warning: linker path does not have real file for library […]

在Xcode 5中的osx 10.9上使用Portaudio – 架构x86_64的未定义符号

我试图在Xcode 5中使用OSX 10.9上的Portaudio,但遇到了一些问题。 我已经下载了源码,rand ./configure和make,在我的xcode项目中包含了include文件夹,并运行了Pa_Initialize()来获取此错误。 我已经尝试将xcode构建设置中的体系结构从“标准体系结构(64位Intel)(x86_64)”设置为“Universal(32/64位Intel)(x86_64,i386)”,但没有成功。 我已经按照这里和这里的说明/解决方案,但还没有找到解决方案。 有没有人让这个lib在xcode 5中工作? 我不是在C中链接库的最有经验的人,所以任何帮助都会受到赞赏。

Ubuntu和Raspbian上的Portaudio错误

我最近开始在C程序中使用PortAudio,但是我在初始化它时遇到了麻烦。 问题出在Pa_Initialize()函数中。 这是我的代码: #include “portaudio.h” #include #include main() { PaError err; err = Pa_Initialize(); if ( err != paNoError ) goto error; error: Pa_Terminate(); fprintf( stderr, “******* ERROR *******\n” ); fprintf( stderr, “Error number: %d\n”, err ); fprintf( stderr, “Error message: %s\n”, Pa_GetErrorText( err ) ); return err; } 我收到以下错误: ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to […]

如果当前播放另一个节目,Portaudio将无法播放声音

我有一个使用PortAudio的程序。 目前我正在使用Pa_OpenDefaultStream(&stream, 0, 2, paFloat32, 44100, 256, audioCB, udata) ,但是当我编译并运行我的程序时,如果另一个程序当前正在运行(如音乐播放器)。 错误字符串是PortAudio error: Device unavailable 我想我需要运行Pa_OpenStream ,但是我不确定应该通过什么来使它与其他程序一起运行。 作为参考,我尝试打印出可用设备上的信息,但我不知道如何处理这些信息。 Device 0 name /dev/dsp hostAPI 0 maxInputChannels 16 maxOutPutChannels 0 defaultLowInputLatency 0.011610 defaultLowOutputLatency -0.117208 defaultHighInputLatency 0.046440 defaultHighOutputLatency 0.000000 defaultSampleRate 44100.000000 Device 1 name /dev/dsp1 hostAPI 0 maxInputChannels 16 maxOutPutChannels 0 defaultLowInputLatency 0.011610 defaultLowOutputLatency -0.117208 defaultHighInputLatency 0.046440 defaultHighOutputLatency 0.000000 […]

编译PortAudio示例时出错

(我在Ubuntu上)我正在尝试运行PortAudio示例,但是会遇到很多错误(如下所述)。 我已将头文件portaudio.h放在程序目录中。 我不知道。 我认为这是链接器错误。 请帮忙! /tmp/cc5EbTlT.o:在函数main’: paex_record.c:(.text+0x37e): undefined reference to Pa_Initialize’paex_record.c :(。text + 0x397):未定义引用Pa_GetDefaultInputDevice’ paex_record.c:(.text+0x3de): undefined reference to Pa_GetDeviceInfo’paex_record.c :(。text + 0x436):未定义引用Pa_OpenStream’ paex_record.c:(.text+0x45a): undefined reference to Pa_StartStream’paex_record.c :(。text + 0x493):未定义引用Pa_Sleep’ paex_record.c:(.text+0x4c2): undefined reference to Pa_IsStreamActive’paex_record.c :(。text + 0x4eb):未定义引用Pa_CloseStream’ paex_record.c:(.text+0x5fa): undefined reference to Pa_GetDefaultOutputDevice’paex_record.c :(。text + 0x641):未定义引用Pa_GetDeviceInfo’ paex_record.c:(.text+0x6b2): undefined reference to Pa_OpenStream’paex_record.c :(。text + 0x6e3):undefined引用Pa_StartStream’ paex_record.c:(.text+0x71c): […]

在PortAudio中连续录制(来自麦克风或输出)

我正在尝试在PortAudio中创建一个音乐可视化应用程序,我做了一些基础研究,并找到了一些关于如何从麦克风录制到(临时)文件的示例。 但是没有示例在录制期间数据未用于运行时。 那么如何启动连续的音频流,我可以从当前的“帧”中捕获数据? 这就是我尝试这样做的方式: #include #include #include #include #include “portaudio.h” #define SAMPLE_RATE (44100) typedef struct{ int frameIndex; int maxFrameIndex; char* recordedSamples; } testData; PaStream* stream; static int recordCallback(const void* inputBuffer, void* outputBuffer, unsigned long frameCount, const PaStreamCallbackTimeInfo* timeInfo, PaStreamCallbackFlags statusFlags, void* userData){ testData* data = (testData*)userData; const char* buffer_ptr = (const char*)inputBuffer; char* index_ptr = […]

在C中实现简单的高通和低通滤波器

尝试使用portaudio记录一些数据,然后使用算法filter更改录制的语音,然后播放。 我已经validation了很多(来自示例),但我对C很新,我认为在我的filter实现中我做了一些愚蠢的事情。 #if LOW_PASS { float RC = 1.0/(CUTOFF*2*3.14); float dt = 1.0/SAMPLE_RATE; float alpha = dt/(RC+dt); float filteredArray[numSamples]; filteredArray[0] = data.recordedSamples[0]; for(i=1; i<numSamples; i++){ filteredArray[i] = filteredArray[i-1] + (alpha*(data.recordedSamples[i] – filteredArray[i-1])); } data.recordedSamples = filteredArray; } #endif #if HIGH_PASS { float RC = 1.0/(CUTOFF*2*3.14); float dt = 1.0/SAMPLE_RATE; float alpha = RC/(RC + dt); […]

如何使用C中的FFTW从PortAudio中提取样本的频率信息

我想制作一个程序,用PortAudio录制音频数据(我完成了这部分),然后显示录制音频的频率信息(现在,我想显示每组样本的平均频率)他们进来的时候)。 从我做过的一些研究中,我知道我需要进行FFT。 所以我用谷歌搜索了一个库,在C中找到了FFTW。 但是,现在我有点失落。 我应该怎么处理我记录的样本以从中提取一些频率信息? 我应该使用什么样的FFT(我假设我需要一个真实的数据1D?)? 一旦我进行了FFT,如何从它给我的数据中获取频率信息? 编辑:我现在也发现了自相关算法。 好点吗? 更简单? 非常感谢,对不起,如果这样,我绝对没有经验。 我希望它至少有点意义。