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

c - WAV 文件分析 C (libsndfile, fftw3)

我正在尝试开发一个简单的 C 应用程序,它可以在 WAV 文件中的给定时间戳的某个频率范围内给出 0-100 的值。

示例:我的频率范围为 44.1kHz(典型的 MP3 文件),我想将该范围分成 n 个范围(从 0 开始)。然后我需要得到每个范围的幅度,从 0 到 100。

到目前为止我所管理的:

使用 libsndfile 我现在能够读取 WAV 文件的数据。

但是,我对 FFT 的理解相当有限。但我知道为了在我需要的范围内获得振幅是必需的。但是我该如何从这里继续前进?我找到了图书馆 FFTW-3,它似乎适合这个目的。

我在这里找到了一些帮助:https ://stackoverflow.com/a/4371627/1141483

并在这里查看了 FFTW 教程:http ://www.fftw.org/fftw2_doc/fftw_2.html

但由于我不确定 FFTW 的行为,我不知道从这里开始。

还有一个问题,假设您使用 libsndfile:如果您强制读取单通道(使用立体声文件),然后读取样本。那么您实际上只会读取整个文件的一半样本吗?其中一半来自通道 1,还是会自动将其过滤掉?

非常感谢您的帮助。

编辑:我的代码可以在这里看到:

0 投票
1 回答
1736 浏览

c++ - 如何正确 FFT 声音阵列?

我正在尝试获取输入音频样本中存在的频率列表。似乎我需要做一个 FFT 才能得到这个结果,但是当我 FFT 时我得到了奇怪的答案(使用 FFTW):我得到的数组主要包含零和一些不可能的大元素(300+ 位!) - 以及这些大数字无论我改变输入音调的频率还是改变 FFT 的样本长度,总是在同一个地方(最后 5 个位置,最后 46 个位置以及其他一些偶尔出现的位置)。我究竟做错了什么?这是我的代码:

0 投票
1 回答
425 浏览

java - libsox 或 libsndfile 是否有 javax.sound 接口?

我正在寻找从已经使用 javax.sound 完成其工作的 Java 应用程序打开/操作 CAF(核心音频格式)文件。有谁知道 libsox 或 libsndfile 的 javax.sound 包装器,每个都本机支持 CAF?

0 投票
1 回答
2209 浏览

arm - 如何为 Arm/Raspberry Pi 交叉编译 libsndfile

我正在尝试让一个在 Linux 下运行的工作交叉编译器(Debian 挤压 amd64),但我似乎无法将我的文件与已安装的文件链接起来libsndfile,我假设我需要交叉编译源代码以针对 Raspberry- Pi 并链接到该版本。但我似乎无法找到关于执行./configureandmake阶段以编译到目标的简单说明。

注意:我按照以下步骤操作:如何构建 GCC 4.7 工具链以进行交叉编译?构建并使用Eclipse的交叉编译器。

0 投票
3 回答
2071 浏览

c++ - 如何使用 libsndfile 将 .wav 文件加载到数组中?

我查看了使用 libsndfile 的示例程序,但无法编译它们中的任何一个。我希望能够将 .wav 文件读入整数(或双精度)数组,而不必担心它是什么类型的 .wav 文件,甚至不必担心标题中的任何内容。我只关心将数据放入数组中,因此我可以对单个样本进行自己的处理。

我已经下载了 libsndfile 的源代码。有这么多文件和文件夹,我不知道从哪里开始。我需要包括什么?我需要使用哪些方法?有人有一个实际有效的简单示例吗?

0 投票
1 回答
1099 浏览

dll - 在 Visual Studio 2010 Express 中链接 libsndfile 时遇到问题

我第一次尝试使用libsndfile(它是windows 64位版本),在尝试链接时遇到了问题。每当我尝试编译程序时,都会收到此错误:

错误 LNK2019:函数 _main 中引用的未解析的外部符号 _sf_close

到目前为止,这是我尝试将其链接到程序的过程。

在项目属性中,我去了 Config。Prop.-> VC++ 目录,并将头文件的路径添加到包含目录选项卡,将.lib 文件的路径添加到库目录选项卡。

在 C/C++-> General-> Additional Include Directories 中,我添加了头文件的路径。

在 Linker->Input->Additional Dependencies 我添加了 .lib 文件的路径,对我来说是 C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib

我已将#include "sndfile.h" 添加到 .cpp 文件中,但由于某种原因,它似乎无法访问 dll 中的函数。我真的不太了解链接,我所做的只是我从互联网上搜索到的拼凑而成,所以我不确定我做错了什么。任何帮助是极大的赞赏。

0 投票
0 回答
296 浏览

c++ - 用于 iOS 的许可声音文件解析库

有谁知道任何带有许可许可证的声音文件解析库,以便在 iOS 上使用,作为 libsndfile 的替代品?理想情况下,我正在寻找 C/C++ 代码,但我也会考虑 ObjC 代码。

只要图书馆没有陷入 l/gpl 中,我就可以接受功能不那么全面的图书馆

到目前为止搜索什么都没有,有人知道任何宝石吗?

0 投票
1 回答
2925 浏览

visual-c++ - 查询:将 libsndfile 与 Visual Studio 2010 C++ 集成。错误:找不到 libsndfile.dll

作为我学习 C++ 的一部分,我正在自学如何将 wav 文件读入 C++。我在网上找到了许多推荐以下库的资源:libsnfile 库 所以我按照下面的一些教程来测试库的基本功能,但我无法使用 Visual Studio 2010 编译该库。

我在网上搜索了以下错误,但没有找到任何对我的特定错误有用的东西。我下载了此处找到的 libsndfile C++ Windows 安装程序。我使用的是 32 位版本,因为我使用的是 win32 C++ 控制台版本。但是,我的 Visual Studio 是 64 位的。下载安装程序后,我执行了以下操作:

我进入了 Visual Studio。在我的项目下,我做了以下事情:

在项目属性中: 1. VC++

包含 >> 添加 ...\libsnfile\include 库 >> 添加 ...\libsnfile\lib 2. C\C++ 添加以下目录作为附加依赖
项 ...\libsnfile\lib\libsndfile-1.lib

我这样做是为了将此第三方库添加到我的项目中。在此之后,为了测试,我运行了以下代码:

我对其进行了编码以确保我可以访问我的程序中的 sndfile.h 并编译所有内容。当我尝试实现以下代码时出现问题:

然后,当我尝试运行我的程序时,在 Visual Studio 中单击运行时出现系统错误。它说,

我尝试了 64 位 Windows 安装程序并尝试过,但它不起作用。有人明白我在做什么吗?我在 Windows 7 上运行 Visual Studio 的 2010 作为我的开发环境。

如果我犯了一个愚蠢的错误,我深表歉意,但如果有人能帮助我,我将不胜感激。正如我上面谈到的,我尝试了一些 hacky 修复,但没有任何效果。

编辑:我也知道这个线程here,但这对我当前的问题没有任何意义,因为我没有做他们正在谈论的任何这条路径的东西。

热烈的问候, GeekyOmega

0 投票
1 回答
1239 浏览

visual-studio-2010 - C++ 程序未在 Visual Studio 2010 中读取绝对路径

我有一个 C++ 程序没有读取 Visual Studio 中的绝对路径。

以下代码适用于我的桌面环境(Windows 7、Visual Studio 2010、64 位)。但是,在我的 macbook 上,我正在为具有完全相同 Visual Studio 2010 的 Windows 7 64 位虚拟机运行 bootcamp 和/或 VMware。

我试图解决这个问题:

  1. 我确保我的 macbook 上的绝对路径与桌面上的绝对路径相同。我进一步确保我安装了第三方库来以与桌面两次相同的方式读取我的波形文件。

  2. 我重写了在桌面上运行的程序,在我的 macbook 上重新安装了库。更简单的程序可以在桌面上运行,但是唉,仍然无法在 macbook 上读取绝对路径。

  3. 我移动了 wav 文件,因此不是路径,而是实际项目解决方案本身。不用找了。

  4. 谷歌。

为了您的利益,我将代码包含在底部。我使用 libsndfile 库来读取 wav 文件。我可能只是尝试使用我非常旧的蹩脚 Windows 笔记本电脑,但无法理解我的 macbook VM 机器上可能出了什么问题。

}

我的输出,当我运行这个程序时

一如既往,感谢您阅读此问题。我非常感谢你们中的任何人所获得的任何帮助、帮助或智慧。特别是如果您遇到类似的问题。

热烈的问候, GeekyOmega

0 投票
1 回答
986 浏览

linux - 为 ARM 架构构建 libsndfile 库

我需要构建 libsndfile 以在 Iphone/Ipad 上的音频引擎中使用它。我没有错误地构建它,但是对于 i386 架构,所以当我构建我的项目时遇到了一些错误:

如何为 arm 架构构建它?

我发现了 Erik de Castro Lopo 说要这样做的主题:

但是当我构建时,我得到了这个:

我能怎么做 ?谢谢!