- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我使用 Rtaudio 库,我想实现一个音频程序,我可以在其中控制声像(例如,将声音从左声道转移到右声道)。
在我的特定情况下,我使用双工模式(您可以在此处找到示例:duplex mode)。这意味着我将麦克风输入链接到扬声器输出。
我应该在输出缓冲区上应用过滤器吗?什么样的过滤器?
谁能帮帮我?
最佳答案
要减少左侧的信号,只需将左侧的每个样本乘以一个小于或等于 1 的数,我们称它为 l。同样,对于右侧,我们将其称为 r。一般来说,您不想乘以大于 1 的数字,否则可能会导致信号失真。
l 和 r 都是“平移位置”的函数。你如何从平移位置到你的数字是一些讨论的问题。如果这是为了一些简单的事情,您可以线性地降低值,在极端情况下使用这些值:
Hard Left:
l=1; r=0
Center:
l=1; r=1
Hard Right:
l=0; r=1;
如果这是更奇葩的东西,你应该在谷歌上搜索“pan law”。这是一个看起来不错的例子:
http://www.kvraudio.com/forum/viewtopic.php?p=4264576
更新:我从未使用过 RT 音频(我通常使用类似的 PortAudio),但我认为要平移的代码看起来像这样,其中 l 和 r 如上所述(假设类型为 int32_t - 带符号的 32 位整数):
int inout( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
double streamTime, RtAudioStreamStatus status, void *data )
{
if ( status ) std::cout << "Stream over/underflow detected." << std::endl;
int32_t *ob = (int32_t *)outputBuffer;
int32_t *in = (int32_t *)inputBuffer;
unsigned long *bytes = (unsigned long *) data;
int i =0;
while( i < bytes / 4 ) {
ob[i] = (int32_t) ( ib[i] * l + .5 );
++i;
ob[i] = (int32_t) ( ib[i] * r + .5 );
++i;
}
return 0;
}
关于c++ - 如何使用 RtAudio 调整音频声像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243079/
我目前正在尝试学习音频编程。我的目标是打开一个wav文件,提取所有内容并使用RtAudio播放样本。 我制作了一个WaveLoader类,让我提取样本和元数据。我使用this指南来做到这一点,并使用0
这个问题在这里已经有了答案: How to adjust audio panning with RtAudio (1 个回答) 关闭 7 年前。 我使用 RtAudio 库。 我想实现一个可以控制声
我使用 Rtaudio 库,我想实现一个音频程序,我可以在其中控制声像(例如,将声音从左声道转移到右声道)。 在我的特定情况下,我使用双工模式(您可以在此处找到示例:duplex mode)。这意味着
我正在考虑RTAudio + RTMidi和 PortAudio + PortMidi对于需要实时音频和 MIDI 处理的新项目。任何有使用这两个库经验的人都可以推荐一个吗?为什么? 我更喜欢 C++
因此,我一直在尝试使用 RtAudio 和 libsndfile。 任务看起来很简单: 1.) 使用 libsndfile 将一些样本读入缓冲区(使用 SndfileHandle 类和 readf()
我正在尝试同时使用 RtAudio 和 RtMidi。我在同一个文件夹中有 RtAudio.cpp、RtAudio.h、RtHelper.h、RtMidi.cpp 和 RtMidi.h 以及 2 个测
我需要创建 librtaudio.dylib,一个可动态加载的 RtAudio 库 (http://www.music.mcgill.ca/~gary/rtaudio/)。我想编写 CFFI 绑定(b
这是我在 Stackoverflow 上的第一篇文章,希望我做对了。 我是 C++ 新手。 我一直在玩 RtAudio 和 Qt(在 linux、桌面和树莓派上)。 后端是 ALSA。 我的台式计算机
RtAudio 文档说。 Windows(DirectSound): 配置脚本提供对 MinGW 编译器的支持。 DirectSound 支持使用“--with-ds”标志指定。 为了在 Window
我是一名优秀的程序员,十分优秀!