问题标签 [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 回答
783 浏览

c++ - 将 libsndfile 添加到 Qt 项目

我想在 Qt 项目中使用 libsndfile 库,然后我需要链接它,但我总是得到一个错误:

我试图将这些行添加到我的 .pro

1) INCLUDEPATH += C:/libsndfile/include LIBS += -LC:/libsndfile/lib/libsndfile-1.lib

2) INCLUDEPATH += C:/libsndfile/include/LIBS += C:/libsndfile/lib/libsndfile-1.lib

3) win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../../libsndfile/lib/ -llibsndfile-1

INCLUDEPATH += $$PWD/../../../../../../libsndfile/include DEPENDPATH += $$PWD/../../../../../ ../libsndfile/包括

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../../../../../libsndfile/lib/libsndfile-1.lib

您能帮我正确链接 sndfile 库吗?

0 投票
1 回答
843 浏览

libsndfile - 在 mac 10.6 雪豹上编译时,libsndfile 与 libvorbis 和 libogg 的链接错误

您好我正在尝试在 Mac OSX 10.6 上编译 libsndfile 1.0.25

我已经用 brew 安装了 libvorbis-1.3.4 和 libogg-1.3.1

1 - 我尝试用 brew 安装 libsndfile

2 - 我尝试使用 ./configure 和 make 手动安装 libsndfile

./configure 步骤似乎确实找到了 libvorbis 和 libogg,我已经确认这些是 x86_64 库。我希望输出中有一个提示,我不明白如何实现,并且有人可以快速发现它。感谢您的关注!

酿造错误输出:

手册产生错误输出:

0 投票
2 回答
3766 浏览

c++ - 使用 libsndfile 写入 wav 文件

我无法将短缓冲区写入 HD 上的 wav 文件。我遵循了一些教程,但它们都提供了不同的方法。无论如何,这是我实现它的方式,但由于某种原因它不起作用。当我尝试打印 的结果时outfile,我得到一个0,并且没有任何内容写入磁盘。另外,我尝试了不同的路径,有时有文件名,有时没有文件名。

更新:当我将路径更改为仅文件名(例如hello.wav而不是~/Documents/hello.wav)时,打印出outfile返回的内存位置,例如0x2194000.

0 投票
1 回答
796 浏览

c - libsndfile中的框架和项目之间的区别?

我正在编写一个处理音频文件的软件。我正在使用 libsndfile 库来读取波形文件数据,但我遇到了他们的文档没有解决的疑问:读取项目的函数和读取帧的函数有什么区别?或者,换句话说,如果我同时交换sf_read_short和,我会得到相同的结果sf_readf_short吗?

我在一些问题中读到音频帧等于单个样本,所以我认为 libsndfile 调用的项目可能是同一件事。在我的测试中,它们似乎是一样的。

0 投票
1 回答
160 浏览

c - 使用 portaudio 和 libsndfile 的可分发应用程序

我使用 portaudio 和 libsndfile 编写了一个小型 C 程序,它只能在我的 PC 上运行。在其他系统中,它要求提供 libportaudio.dll 和 libsndfile.dll。我正在链接 -lportaudio 和 -lsndfile。

我想让这项工作无处不在(Windows)而不要求这样的事情?

我应该怎么做才能使这个应用程序(.exe)可分发?

(我正在使用代码块和 Mingw)

提前致谢。

0 投票
3 回答
715 浏览

linux - 修改linux目录的权限

如何在 Linux shell 中修改已创建目录的写/读/执行权限?我需要安装libsnd库,但安装时出现错误,在此过程中无法创建目录。

0 投票
3 回答
43258 浏览

c - Visual Studio 2010 中的“错误 LNK2019:无法解析的外部符号”错误

我正在尝试编译和运行使用libsndfile库进行声音文件处理的 C 代码。

我使用此路径添加了头文件: project's Properties (in C/C++ -> General -> Additional Include Directories)

我也使用此路径链接了库: Project Properties -> Linker -> Input -> Additional Dependencies.

但是在调试时,我收到以下错误:

1>sil.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification 1>sil.obj : error LNK2019: unresolved external symbol _sf_write_sync referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_write_double referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_close referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_read_double referenced in function _main 1>sil.obj : error LNK2019: unresolved external symbol _sf_open referenced in function _main 1>c:\users\anam\documents\visual studio 2010\Projects\silence\Debug\silence.exe : fatal error LNK1120: 5 unresolved externals

有人可以在这里找出问题吗?我是使用 Visual Studio 的新手,我真的需要帮助!

0 投票
0 回答
1039 浏览

audio - libsndfile:读取 wav 跳过 JUNK 块

我一直在使用 libsndfile 库。但直到最近,我发现我的一些 wav 文件中有这个额外的 JUNK 部分,而 libsndfile 并没有将其归类为 JUNK,而只是将其作为数据读取。

我的 wav 文件的结构如下所示:

带有 JUNK 部分的 test.wav.

我想知道我应该如何跳过或忽略这个垃圾部分。请注意,fmt现在位于偏移量 ( off=56) 而不是off=20,这是我的 test.wav 没有任何 JUNK 的时候。

如果解决方案是使用 libsndfile 以外的其他库,那么请提出建议,哪一个可以让我以编程方式跳过这个 JUNK 块。

0 投票
0 回答
381 浏览

sox - 使用 SoX 交换 CAF 文件的字节顺序

我们正在尝试使用 SoX 将我们的 WAV 转换为 iPhone 项目的 CAF。目前,作为办公室中唯一一台 Mac 的拥有者,我必须定期运行 afconvert 来执行此操作,但我更希望实际制作音频的人可以在 Windows 上执行此操作。

我从源代码编译 SoX 以启用 CAF 支持,将它和一个批处理文件提供给声音专家,一切看起来都很好。但是我们开始得到失真的声音,我发现原因是 SoX 生成的 CAF 中数据的字节序与 afconvert 生成的相反。

所以,我在批处理文件的命令行中添加了--endian swap,不再考虑它。但是问题仍然存在,所以我跟踪了一个 SoX 转换,发现它在编写 CAF 文件(或者实际上是 SoX 使用 libsndfile 的任何文件类型)时完全忽略了字节序标志。如果写入 WAV,SoX 会在写入时进行交换,但对于 CAF(它使用 libsndfile),什么也不做。

afconvert 将交换字节序,问题是 SoX 不会将任何字节序信息传递给 libsndfile。相关标志是 reverse_bytes(无论格式如何,反转给定数据的字节)和 reverse_endian(无论目标格式如何,反转字节序)。在设置 libsndfile 的 SF_INFO 时,这些都没有被引用,可以告诉它使用的字节顺序(通过 SF_INFO 的格式成员),但是推断使用哪个所需的信息(源数据的字节序和/或默认值) dest 文件的字节序)似乎不可用。

谁能建议我获取此信息的方法?

0 投票
1 回答
746 浏览

c++ - portaudio/libsndfile framesperbuffer 变量

谁能告诉我portaudio回调函数变量framesperbuffer是什么?如果我想通过 PA_WriteStream() 每次迭代播放 64 字节数据的音频流,那么我应该在framesperbuffer中输入什么值?

同样在lsbsndfile库中,读取波形文件的函数需要提供具有名称框架的变量。IE

如果我输入 frames=256 那么 fptr 中总是返回 64 个样本,其余的都是垃圾,而 read 函数的返回值是 256。我已经检查了以下代码

现在数组 [0] 到数组 [63] 包含值,数组 [64] 到数组 [255] 在文件读取的每次迭代中包含空值。现在我必须将读取的数据写入 portaudio 音频播放功能,然后应该填充什么framesperbuffer 。

同样在某些情况下,我需要处理数据并将样本减少到 32(当我消耗两个样本以形成一个输出样本时)那么我应该在framesperbuffer变量中输入什么值?