问题标签 [portaudio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何在 BeagleBoard 上的 Angstrom Linux 上启动时运行 C++、PortAudio 应用程序?
我有一个名为 xooky_nabox 的命令行应用程序,它是使用 c++ 编写的。它读取纯数据补丁,处理来自 beagleboard 的音频输入插孔的信号,并通过音频输出插孔输出信号。
我希望应用程序在 beagleoard 启动时运行并保持运行直到板关闭。没有图形用户界面,也没有连接键盘或显示器,只有音频输入和输出插孔。
如果我手动运行应用程序一切正常:
如果我在后台运行它也可以正常运行:
现在,让我展示两个版本的程序的代码布局(完整的东西在https://github.com/rvega/XookyNabox):
版本 1,主线程保持活动状态:
版本 2,执行被分叉并与启动它的终端分离:
尝试在启动时运行它
我尝试使用几种方法在启动时运行该程序的两个版本。结果总是一样的。当小猎犬启动时,我可以听到几分之一秒的声音输出,然后声音停止并出现登录屏幕(我有一个连接到板上的串行终端,并且我的计算机上正在运行 minicom)。对我来说最奇怪的是 xooky_nabox 进程实际上在登录后一直在运行但没有声音输出......
这是我尝试过的:
将 @reboot 条目添加到 crontab 并使用尾随 & 号启动程序(程序的版本 1):
向 crontab(版本 1)添加了一个 start-stop-daemon:
在 /etc/init.d/xooky 创建了一个脚本并做了
并尝试了不同版本的启动脚本:版本 1 的 start-stop-daemon,直接使用尾随 & 号调用程序(版本 1),直接调用不带尾随 & 号的程序(版本 2)。
此外,如果我从串行终端或 ssh 会话(usb 网络)手动运行程序;然后我运行 top,程序将运行几秒钟,消耗大约 15% 的 cpu。然后它会停止输出声音,它的cpu消耗会上升到30%左右。在这种情况下,我的 log.txt 文件显示操作系统没有向程序发送信号。
当程序的第 2 版在启动时运行时,日志将显示如下内容:
有人对如何调试有任何想法吗?关于如何在启动时启动我的程序的建议?
sdl - SDL 音频与 PortAudio
我正在寻找一个开源、跨平台和免费(用于商业用途)的音频输入/输出库。搜索最终归结为 SDL(1.3) 和 PortAudio。SDL 支持大量平台和声音系统。但它没有得到很好的优化,并且很难扩展后期可能需要的任何功能。而 portaudio 拥有我需要的一切。您对使用音频输入/输出库的意见将不胜感激。
c - PortAudio:如何从麦克风获取记录(获取数据)
我正在尝试使用 portaudio(跨平台功能)从麦克风读取,然后我想通过 FFT 将该数据放入,但我不太确定该怎么做。很多人告诉我:1.获取数据,2.应用 fft,但问题是我不太确定如何获取数据,portaudio 没有太多关于从麦克风获取输入的教程,如果你知道的话代码、教程或任何其他资源,它会非常完整。我已经搜索了一段时间了。请帮忙
c++ - 哪些实时 C++ 音频库适用于 Xcode 4?
我想在 C++ 中开始一个项目,这将允许我使用诸如float y = sin(2 * PI * f * t);
FM 合成和其他更复杂的算法之类的功能来创建声音。我在 Mac OS X Lion 上使用 Xcode 4,但希望最终将软件移植到 Windows 平台。我已经尝试过库 SFML 1.6 和 2.0、RTAudio 和 PortAudio,但我无法使用 Xcode 4 编译任何程序。窗口图形库和 MIDI 支持将是额外的好处,但我不需要它。
你有没有成功的库和方法?如果前面提到的任何库对您有用,您是如何使用 Xcode 4 编译的?
javascript - 在 NPObject 上调用方法时出错!在 JavaScript 中
我有一些想要使用 PortAudio 打开流的 Visual C++ 代码(FireBreath)。完成所有初始操作后,我有以下代码:
这个函数是从 JavaScript 调用的,在一定的秒数后,插件崩溃了Error calling method on NPObject!
,在 JavaScript 中调用它的那一行给我一个错误。
c++ - 如何在封装在类中的回调函数上发送指针
我实际上正在使用库 PortAudio 用 C++ 编写程序。该库使用回调函数来管理音频输入和输出。在 C++ 中,我在我的“音频”类中实现了这个回调函数,但我无法将它发送到 Pa_OpenDefaultStream()。编译器用这一行说“这个参数与 PaStreamCallback* 类型的参数不兼容”:
当我使用 C 时,像这样发送我的 callbackFunction 效果很好。如何将我的回调函数发送到此 OpenDefaultStream 函数?
c++ - 我无法编译 Qt + PortAudio sur Qt
我正在尝试在 Visual Studio 2010 上编译 Qt + PortAudio。我在视觉中创建了一个新的 Makefile 项目(Visual C++/General/Makefile 项目)。我收到此错误:
错误 8 错误 MSB3073:命令“qmake & nmake”以代码 2 退出。C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets 38 6 my_babel
错误 7 错误 U1077: 'c:\Qt\4.7.4\bin\qmake.exe' : return code '0x2' c:\Users\Ju\documents\visual studio 2010\Projects\my_babel\my_babel\NMAKE my_babel
python - 获取 IOError: [Errno Input overflowed] -9981 将 PyAudio Stream 输入和输出设置为 True
我正在尝试在我的 Mac(OS 10.7.2)上运行以下代码(来自 PyAudio 文档的示例):
我给出的错误是:
我在谷歌上搜索了这个错误,发现无论是使块更大或更小都会有所帮助。我试过这个,没有任何区别。我还尝试添加以下代码来捕获重载异常:
这避免了错误,但我没有输出我的输入音频,而是听到了一堆响亮的咔嗒声。
为了排除故障,我注释掉了 output=True 行,程序运行良好,但没有输出任何内容。我注释掉了 input=True 并改为读取 Wave 文件,并且流能够输出音频。我尝试创建 2 个流,一个用于输入,一个用于输出,但这也不起作用。
我还能做些什么来避免这个错误吗?
ruby - 在 ruby 中使用 PortAudio 包装器将声音录制到 .wav
我最近一直在玩 ruby,我决定开始一个简单的项目来编写一个 ruby 脚本,将 line-in 声音记录到.wav
文件中。我发现 ruby 不能很好地访问硬件设备(它可能不应该),但是 PortAudio 可以,我在这里发现了一个很棒的 PA 包装器(我认为它不是宝石,因为它使用了 rubyffi
附加到 PortAudio,PA 库可以在各种地方)。我一直在摸索 PortAudio 的文档和示例,以了解 PA 的工作原理。我已经很多年没有写作或阅读C
了。
我在创建过程中应该将哪些参数传递给流以及在创建过程中传递给缓冲区时遇到了困难。例如,a 到底是什么frame
,它与 和 等其他参数有什么channel
关系sample rate
。一般来说,我对音频编程也完全陌生,所以如果有人能指出一些关于设备级音频的一般教程等,我将不胜感激。
ruby-portaudio
提供了一个创建流和缓冲区的示例,将正弦波写入缓冲区,然后将缓冲区发送到要播放的流。我在示例中遇到的一些红宝石,特别是循环块。
如果我要录制,我应该将流读入缓冲区,然后操作该缓冲区并将其写入文件,对吗?
另外,如果我在这里叫错了树,并且有一种更简单的方法可以做到这一点(在红宝石中),那么一些方向会很好。
qt - c++ 在带有 Qt 的 Windows 中使用 PortAudio
我已经设法使用 MSYS 在 Windows 上编译 PortAudio。此过程创建了 2 个文件:libportaudio-2.dll 和 libportaudio.dll.a
现在我想链接 QtCreator 中的库,但我不能,因为它需要一个 .lib 文件。
如果有人有在 Windows 下使用 MSYS 编译和使用库的经验,我们将不胜感激。
(注意:它们是使用 MindGW 编译器编译的。我不想用 Microsoft Visual Studio 编译它,从那时起我将不得不编译 QT)