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

c - 录制的声音比原始声音慢

我正在尝试实现循环功能。基本上我将音乐样本保存在缓冲区中。然后,当我按下循环输入按钮时,我会及时设置初始循环,当按下循环输出时设置循环输出时间。为了获得循环部分,我制作了循环时间 - 及时循环,这给了我循环的秒数。然后我乘以秒 * 采样率 (44100),分配一个具有该大小的新缓冲区并用声音数据填充它。一切正常,但是当我通过 Open SL ES 收听循环缓冲区时,声音比原来的慢。我真的不知道为什么...

谢谢你的时间

0 投票
1 回答
175 浏览

c++ - windows下在代码块中链接64位sndfile lib

我有一个 openframeworks 项目,它在带有 sndfile 的 OS X 上运行良好,但是在 Windows 下,我在链接时遇到了问题。我已经使用 32 位版本成功编译了一个简单的独立项目,步骤如下:

  1. 在链接器设置菜单中添加了 lib 文件
  2. 在搜索目录菜单中添加了 bin 和 include 文件夹
  3. 将dll复制到调试文件夹

我以相同的方式链接了 64 位,但它给了我未定义的引用错误,例如对 'sf_open ' 的未定义引用我尝试将我的 mingw 编译器更改为 64 位版本,但没有任何变化。

当我以 64 位链接库时,我必须做些什么不同的事情吗?我不能使用 32 位版本,因为 openframeworks 项目无法使用它运行。

0 投票
1 回答
489 浏览

go - PortAudio:默认每缓冲区帧的播放滞后

我正在尝试使用 PortAudio 在 Go 中异步播放音频。据我所知,PortAudio 处理自己的线程,所以我不需要使用 Go 的任何内置并发东西。我正在使用 libsndfile 加载文件(也是 Go 绑定)。这是我的代码:

使用这些功能,在初始化 PortAudio 和所有其他功能后,播放我提供的音轨 - 只是。它非常滞后,并且减慢了我的应用程序的其余部分(游戏循环)。

但是,如果我将每个缓冲区的帧值从FramesPerBufferUnspecified较高的值更改为 1024,音频播放正常并且不会干扰我的应用程序的其余部分。

为什么是这样?PortAudio 文档建议使用未指定的值将“选择最佳延迟值”,但我绝对没有看到。

此外,在播放这个非常高的值时,我注意到音频中有一些微小的人工制品 - 小的“爆裂”噪音。

我的回调函数或其他任何问题是否有问题,可能导致这些问题中的一个或两个?

我正在使用 OSX 10.10.5、Go 1.3.3 以及 Homebrew 的 libsndfile 和 portaudio。

谢谢。

0 投票
1 回答
262 浏览

libsndfile - VS 2012 Vc++ 应用程序项目中的 libsndfile 库构建错误

我正在使用 libsndfile 库的 Win 7 上创建 Visual Studio VC++ 应用程序项目。

库(libsndfile-1.dll,libsndfile-1.dll)位于:

C:\SVN\US\AdditionalIncludeDir\libsndfile

及其标题(sndfile.hh,sndfile.h)在

C:\SVN\US\AdditionalIncludeDir\Include

Visual Studio 项目位于:

C:\SVN\US\Simulation\audioSim.vcxproj

我已将库头引用添加为:

项目属性->C/C++->General->Additional Include Directories-> ..\AdditionalIncludeDir\Include
和静态库引用为

项目属性->链接器>附加依赖项:libsndfile-1.lib 项目属性->链接器>附加库目录:..\AdditionalIncludeDir\libsndfile

我也添加了

..\AdditionalIncludeDir\libsndfile

在 Win 7 中的用户环境变量中的 路径

顶级 C++ 文件将库用作:

mic1.wav 在哪里

C:\SVN\US\Simulation\filedata

构建项目仍然给我错误:

为什么会发生这种情况?

谢谢
赛迪

0 投票
2 回答
116 浏览

macos - OSX 上的 Libsndfile 损坏数据

我在 OSX 上制作基于 Libsndfile 的音频应用程序时遇到了奇怪的问题。读取和写入缓冲区中的数据以奇怪且不可预测的方式损坏。

这是一个为我重现问题的简短程序:

该程序编译并运行良好,但使用 Valgrind 运行它会显示这种错误:

提前感谢您的帮助-T

0 投票
1 回答
530 浏览

c++ - 结合 libsndfile 和 RtAudio?

所以,我一直在试验 RtAudio 和 libsndfile。

任务似乎很简单:

1.) 使用 libsndfile 将一些样本读入缓冲区(使用 SndfileHandle 类和 readf())

2.) 使用 RtAudio 播放样本

但是,由于某种原因,我得到的只是噪音和大量失真......我试图将样本读取为 16 位 PCM(使用短缓冲区),并使用 RTAUDIO_SINT16 格式来播放它。没有成功...事实上,我尝试了许多不同的组合,只有噪音...

我最接近实际播放的是使用 int16_t 作为缓冲区和 RTAUDIO_SINT16。看起来合乎逻辑,对吧?无论如何,它仍然像使用 bitcrusher 一样。尝试了 JACK 和 ALSA,以及缓冲区大小的许多不同组合,但无济于事......

关于如何将这两者结合起来的任何提示?

我使用静态缓冲区可能是一个问题(只是为了实验,当然不会在最终产品中这样做......)?

0 投票
3 回答
1172 浏览

c - libsndfile :未定义的引用

  • 我已将 bin 文件夹添加到系统 PATH 以及“libsndfile-1.dll”到程序的主目录。

  • 我已经链接了包含目录并从代码块的库链接器中添加了“libsndfile-1.lib”库。

  • 我已经.a从 dll 和原始定义文件中制作并链接了其他 s。因为否则它会抱怨。


在我发现头文件没有定义大量示例中隐含的函数之后。我运行了一个只包含引用可用函数的程序。 https://github.com/michaelwu/libsndfile/blob/master/examples/sfprocess.c 当然,有些东西不会再工作了,因为当我运行程序时它抛出运行时错误:应用程序无法正确启动( 0xc000007b)


我现在缺少什么?

0 投票
1 回答
3032 浏览

c - C 错误:来自 libsndfile 的“未定义的对 'sf_open' 的引用”

我正在使用 Code::Blocks 来测试一些代码,但我无法构建此代码:

错误是“未定义对 `sf_open' 的引用”,这不仅发生在 sf_open 上,还发生在 sndfile.h 中的任何函数上。

实际上,这是我为到达这里所做的:

  • 我首先从 mega-nerd 网站下载并安装了适用于 Windows x64 的 libsndfile(我使用的是 Windows 10),并尝试运行此代码...没有用,这次的错误是“sndfile.h:否这样的文件或目录”

  • 所以过了一会儿我去了安装目录(C:\ Program Files \ Mega-Nerd \ libsndfile \ include)并将标题复制到标题的CodeBlocks默认目录(C:\ Program Files(x86)\ CodeBlocks \ MinGW \ include),然后我再次尝试,它终于找到了标题!但是现在这个错误正在发生......

Sooo我想我没有以正确的方式打开标题,我对此没有太多经验......我在互联网上的任何地方都找不到答案,我希望我能在这里获得一些运气,谢谢!

0 投票
1 回答
2170 浏览

c - 在波形文件上使用 KissFFT

我正在尝试使用带有这个 11 秒 44kHz .wav 样本文件的KissFFT 库作为测试输入。

但是,当我处理窗口大小为 512 的文件时,我只得到 1 个输出值。这很奇怪,44kHz 的 11 秒 .wav 文件不应该给出 1 个值作为窗口大小为 512 的输出。像 16 这样的较小窗口会给我 5 个值,这仍然是一个低计数。

有谁知道我做错了什么?

这是我的代码:

这是我得到的输出:


这是更新的代码版本,但我在编译时遇到错误:

我按照这篇文章的步骤操作:

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

我仍然得到这些错误:

在此处输入图像描述

0 投票
0 回答
464 浏览

c - 在 Windows 上从源代码构建 sox

我正在尝试在 Windows 8 上使用 Visual Studio 2013 从源代码构建 sox。

我可以构建其他依赖项,但是当我尝试编译 libsndfile 时,出现以下错误:

我究竟做错了什么?

编辑:中的相关行math.h

编辑:这是一个例子#include <math.h>

sfconfig.h 的内容:https ://github.com/erikd/libsndfile/blob/master/src/sfconfig.h

查看 libsndfile 网站和 README,它建议使用 GCC 进行编译,所以我将尝试使用它。