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

gcc - 在 OS X 上找不到 sndfile.h

我正在尝试在 OSX 上安装 libsndfile,并且我使用了自制软件(brew install libsndfile)。但是当我尝试#include <sndfile.h>使用 gcc 编译一些示例代码时,它说 sndfile.h 找不到,但是当我签入时它就在/usr/local/include那里。有什么我想念的吗?

0 投票
0 回答
594 浏览

c++ - 通过 libsndfile sf_open_virtual 函数将 PCM 网络流重新采样为 8000Hz 8 位单声道

我的目标是在 Node.js 中获取 PCM 流,例如 44100Hz 16 位立体声,然后将其重新采样为 8000Hz 8 位单声道,然后编码为 Opus,然后进行流式传输。

我的想法是尝试在 C++ 中为 libsndfile 进行绑定,并使用 sf_open_virtual 函数对流进行重采样。然而:

  1. 如果我的程序仍在从网络接收数据,我如何回复它的回调函数请求一定数量的数据(在这里找到: http ://www.mega-nerd.com/libsndfile/api.html#open_virtual)?我是否让它一直挂在循环中,直到循环检测到缓冲区已满某个百分比?
  2. 由于 PCM 数据将是无标题的,我如何指定 libsndfile 期望的格式类型?

还是我完全把事情复杂化了?

0 投票
1 回答
596 浏览

c - Writing multichannel audio for MATLAB with libsndfile

I am trying to use libsndfile to write a multichannel wav that can be read by MATLAB 2010+.

the following code writes a 4 channel interleaved wav. all samples on channel 1 should be 0.1, on channel 2 they are 0.2, on channel 3 ... etc.

Each channel is 44100 samples in length.

I drag the wave file onto the MATLAB workspace and unfortunately MATLAB keeps returning "File contains uninterpretable data".

It may also be worth noting that when all samples are set to 0.0, MATLAB successfully reads the file, although very slowly.

I have successfully used libsndfile to read multichannel data written by MATLAB's wavwrite.m, so the library is setup up correctly I believe.

Audacity can read the resulting file from the code below.

VS 2012 64 bit compiler, Win7 64bit, MATLAB 2015a

ref: the code has been adapted from http://www.labbookpages.co.uk/audio/wavFiles.html

Any suggestions, I presume i'm making a simple error here?

Thanks

0 投票
1 回答
850 浏览

c - 在 C 中,如何将 1 通道 PCM 转换为 2 通道 PCM?

我正在使用 libao 和 libsndfile 来读取和播放音频。我想通过将一个通道复制成两个来将单声道流转换为立体声流。此测试代码将正确播放立体声剪辑,但会非常快速且高音播放单声道剪辑。此外,我在free(output);通话中收到“双重免费或腐败”。我究竟做错了什么?

0 投票
1 回答
807 浏览

linux - 使用 Ogg Flac 和 Vorbis 在 Fedora 中构建 libsndfile

我正在尝试使用 Flac、Ogg 和 Vorbis 的附加选项在 Fedora 20 中构建 libsndfile 库。

因此,正如自述文件所说,我使用以下命令安装了 flac ogg 和 vorbis:

之后,我像自述文件所说的那样在 libsndfile 源中进行了 ./configure,但是当它这样做时,它说它找不到 flac、vorbis 和 vorbisenc(它确实找到了 ogg)。这是 ./configure 命令的输出:

我检查了 flac 和 vorbis 安装的版本,它们都高于最低要求的版本。

我怎样才能让 ./configure 文件找到那些库,以便我可以像我想要的那样构建 libsndfile?

提前致谢

0 投票
1 回答
136 浏览

c++ - 在 Fedora 20 x86_64 上编译 32 位 linux 应用程序时使用 sndfile 库

我目前正在使用 Fedora 20 x86_64。我用这些命令构建了 libsndfile:

这一切都很顺利,我可以在 /usr/local/lib 中找到编译好的库。我想在 32 位构建的应用程序中使用它。当我尝试编译该应用程序时会出现问题。我收到以下错误:

“跳过不兼容”可能表明我在编译 sndfile 时做错了,但由于我对此很陌生,所以我找不到它是什么。我尝试了不同的配置,但它们都有相同的结果。

如果这需要更多代码或其他内容,请告诉我您需要什么。

0 投票
3 回答
6385 浏览

r - 'seewave' 安装错误“'sndfile.h' 文件未找到”(适用于 OSX Yosemite 下的 R 3.2.0)

更新到 R 3.2.0 时,我必须重新安装seewave.

我设法安装了所需的包fftw、、、tuneR和。rglrpanel

但是,在尝试编译时,seewave我收到了消息:

0 投票
2 回答
653 浏览

c++ - C++ 中的 MIDI 音符消息

我正在尝试使用 C++ 制作一个在按下某个 MIDI 键时播放 .wav 音频样本的软件。我想到这样做的最好方法是使用if语句(如果有更简单的方法,我将不胜感激,但我是编程新手,所以请保持简单)。

上网查了一下,发现不同的 MIDI 键对应不同的 NOTE ON 信息(例如 NOTE ON 60 对应中间 C),所以基本上我只是在寻找如何说“当 NOTE ON 60 是收到,播放 X .wav 文件”。我还发现 NOTE ON 的状态是9n,这是否意味着计算机会收到9x60(使用 60 = Middle C 示例)?

在此之后,我只需要找出如何播放音频样本,我相信这将是以下内容,使用sndfile.h

任何帮助将不胜感激。

0 投票
1 回答
404 浏览

c# - Libsndfile - 如何处理额外的块(元数据)

我正在使用 libsndfile(带有 c# 包装器)基于现有的 wav 文件创建 wav/aiff 文件,例如将立体声文件转换为单声道文件,反之亦然。

我的流程是:

  1. 读取现有文件
  2. 在填充 LibsndfileInfo 时打开新文件进行写入
  3. 将项目写入新文件

    /li>

在这样做的同时,我注意到原始文件中的任何额外元数据(额外块)都会在结果文件中丢失。

有没有办法以某种方式带来这些额外的块或使用 libsndfile 将标头复制到新文件?

感谢您的任何意见。

麦克风

0 投票
1 回答
290 浏览

c++ - 犰狳加载wav文件到垫子

我想使用Armadillo将 wav 文件读入 mat 。它看起来像matlab 中的wavread函数:

似乎犰狳不支持这个,所以我尝试使用libsndfile lib:

我的问题:

  1. 这种方式正确吗?看来我只能阅读固定数量的样本。
  2. 如何将示例数据转换为mator vec
  3. 有没有办法像这个matlab代码一样通过冒号范围索引访问矩阵:sample_data = sample_data(1 : sample_rate * 1.5);