问题标签 [libsndfile]

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.

0 投票
1 回答
525 浏览

c++ - 移植到 MSVS2010 C++ GUI 的 MSVS2010 C++ 控制台代码失败。为什么?

我刚刚完成了一个概念验证,或者我认为,将一些 C++ 代码作为控制台程序提供给 Microsoft Visual Studio 2010。编译的 C++ 代码如下:

}

所以接下来,这很关键,我希望它与 GUI 一起工作。也就是说,我加载了我想要的任何文件,并将该 wav 文件转换为文本。我在下面提供该代码:

为了便于阅读,我对此进行了编辑。这是一个标准的 MSVS2010 表格。我只添加了一个按钮和打开文件对话框。

在按钮的代码中,我从系统字符串转换为常规字符串,然后尝试使用上面的 C++ 代码将我的波形文件转换为 txt 信息。我知道转换代码有效,并且我知道按钮代码有效,因为我已经单独测试了它们。但是,当我现在尝试使用它时,我的库 sndfile.h 真的死了。

当我添加库 stdio.h、Windows.H、stdlib.h、iostream、fstream 时它给我的错误如下:

据我所知,我正确安装了库。毕竟,它在控制台情况下与这些库完美配合。但是,当我尝试在我的 GUI 表单中使用完全相同的代码和库时,似乎这些库不能很好地相互配合,因此,我无法正确读取我的 .h 文件并访问像 SNDFILE 这样的结构.

有人可以让我知道出了什么问题吗?我已经为此花费了几个小时,我希望我不必废弃 libsndfile 库。我真的想让它与 MSVS2010 和 GUI 一起工作,据我所知,这没有理由不工作。但你知道他们说什么,电脑不会说谎。

一如既往,感谢您的耐心帮助。极客欧米茄

0 投票
2 回答
981 浏览

audio - 将 wav 文件与 libsndfile 混合时的工件

我正在尝试实现一个混合钢琴样本的软件。我想创建一个包含一种声音、另一种声音和两者混合的 wav 文件。

我在一秒钟内截断样本,所以我有以下内容:[一秒钟的声音 1][一秒钟的声音 2][一秒钟的声音 1 + 声音 2]

问题是每次过渡都有一个奇怪的声音伪影。有人知道它来自哪里吗?

提前致谢。

这是我正在使用的代码:

0 投票
1 回答
597 浏览

c++ - 使用 sf_open_fd() 时,libsndfile 总是出现段错误

我正在尝试为我正在构建的应用程序流式传输音频,但我遇到了我正在使用的库的障碍。这个库是 libSndFile。每当我调用此函数时,该库总是有一个 SEGFAULT sf_open_fd(int fd, int mode, SF_INFO *info, int close_desc);,而不是sf_open(const char *path, int mode, SF_INFO *info)因为我需要让 libSndFile 解码内存缓冲区中的数据。我无法理解sf_virtual_open()文档,所以我改用它。我可以使用 fileno() 获得一个有效的文件描述符(它通常返回 14)并且我的 FILE 流是有效的,所以它就是这个函数。我不知道它可能在哪里 SEGFAULTing 或在什么地方。有没有更好的方法让 libSndFile 解码内存缓冲区,或者我没有使用正确的方法?

这是问题代码(我添加了一些注释让它更有意义)

我真的更喜欢不写入磁盘,但我必须获得一个有效的文件描述符和流。

注意:我正在使用 g++ 4.6.3 在 Xubuntu 12.04 上进行编译。

0 投票
1 回答
433 浏览

xcode - MacPorts 2.1.2 git 和 libsndfile 安装

我尝试使用端口安装 git 和 libsndfile,但我收到此消息。

问题是什么?

0 投票
2 回答
7437 浏览

g++ - 如何将 libsndfile 编译到项目中?

我正在尝试使用 libsndfile。我对 g++ 也不是很好。安装 libsndfile 的方法似乎是使用“make install”。我真的可以做到,所以我将它编译到一个目录中。

我试图在这里编译教程:http:
//parumi.wordpress.com/2007/12/16/how-to-write-wav-files-in-c-using-libsndfile/

当我尝试以下操作时:

我得到:

当我尝试执行以下操作时:

我明白了

我不确定我需要给 g++ 哪些开关。

0 投票
3 回答
10737 浏览

python - Python audiolab 安装,无法在 Mac OSX 上安装(或查找)libsndfile

尝试在 Mac 上安装 scikits.audiolab-0.11.0,它需要 libsndfile:http ://www.mega-nerd.com/libsndfile/ 。我确实使用 libsndfile_python-1.0.0-py2.7-macosx10.5.mpkg 安装了 libsndfile,但是 audiolab 设置给出了错误:找不到 libsndfile 库。audiolab 安装程序的错误如下。它建议可以在 site.cfg 中指定 libsndfile 的位置。

我对这些类型的安装缺乏经验,这妨碍了我理解这一点。任何人都可以就如何完成这项工作提供一些建议吗?或在下面回答我的问题?

  • 如果安装了 libsndfile,它会在哪里,所以我可以指定位置?否则如何正确安装?
  • 什么是 site.cfg 文件?我在我下载的 scikits.audiolab-0.11.0 文件夹中看到了一个 site.cfg.bdist_wininst 和一个 site.cfg.win32。
  • “在 [sndfile] 部分的 site.cfg 文件中指定”是什么意思(请参阅下面的错误)。这是否意味着我应该用括号之间的 /path/to/libsndfile 替换单词“sndfile”?

顺便说一句,我检查了我的 /usr/lib 目录,但没有 libsndfile。我认为默认情况下,audiolab 设置会在其中查找文件。

感谢您的阅读,以及任何帮助。

audiolab 安装程序出错:

0 投票
1 回答
257 浏览

c - 使用 VS2010 的 libsndfile 奇怪行为

我正在制作一个从麦克风录制的程序,然后使用 libsndfile 将其编码为 OGG 文件。

大约一个月前,我制作了这个程序的控制台版本,以确保录制和编码功能良好。现在,当我开始将这个程序作为一个窗口应用程序时,我发现唯一错误的是编码为 ogg 的函数。

这不是编译器或链接器错误,而是运行时错误。当我调用sf_format_check函数时,它返回 false,因此输出文件的参数有问题。所以我开始手动检查它是否sf_format_check正常工作并且一切都正确。但是当我编译旧的控制台版本时,它一切正常。

所以这是我的问题,这种行为的原因是什么?

这是我的功能。

0 投票
1 回答
2600 浏览

portaudio - 在 Win7 上将 WASAPI 与 PortAudio 一起使用时出错

我正在尝试使用 PortAudio 和 libsndfile 在我的 Windows 7 机器上以独占模式播放 .wav 文件,但我得到了

错误号 -9984 “不兼容的主机 API 特定流信息”。

我填写了 PaWasapiStreamInfo 结构如下:

然后分配 hostApiSpecificStreamInfo 参数并通过 Pa_OpenStream 打开流,如下所示:

我错过了一步吗?

谢谢,泰勒

0 投票
1 回答
1465 浏览

gtk - Gtk 音频播放器。如何在歌曲结束前停止声音

我正在开发一个非常简单的音频播放器。它使用 Gtk 和 portaudio/libsndfile。我用浏览、播放等几个按钮创建了一个简单的测试界面。我的播放器正确选择了文件名,按下播放后开始播放。但是一切都在等待播放完成。没有什么是活跃的,我想知道如何在它自己完成之前阻止它。

我的 Gtk 代码是:

如果有必要,我会给出播放声音的代码:

0 投票
1 回答
3339 浏览

c - 实时控制音量

我目前正在将libsndfilePortAudio V19结合使用来从文件中读取音频数据并进行播放。(请注意,我是在运行 Raspbian 的 Raspberry Pi 上执行此操作的。)我遇到的问题是,我需要为以这种方式播放的每个音频样本实时动态控制播放音量。我尝试使用系统调用通过 alsamixer 来操纵全局播放音量,这在我的用例中是一个可以接受的解决方案,但是延迟太高而无法工作。

我正在寻找的是两件事之一:

  • 一个可以实时处理修改音频音量的库,可以通过对 libsndfile 检索到的原始音频数据进行操作,或者通过设置具有最小延迟(亚毫秒)的全局播放音量。该库必须是免费的(免费)并可在 Raspbian 上使用;许可不是问题。

  • 需要对 libsndfile 检索到的音频数据应用数学变换,以修改数据的音量级别,最好目标音量在 [0.0f, 1.0f] 范围内,0.0f 为静音, 1.0f 是文件中的原始卷。

我试图到处寻找有关此主题的有用(免费)材料,但未能找到任何有帮助的东西。非常感谢任何帮助!