Tag: audio

gem安装ruby-audio-1.6.1错误(使用Mac OS 10.9 / homebrew)

我尝试了其他提示,但没有奏效。 (请参阅下面的链接) 恩。 gem安装ruby-audio失败 ruby-audio 1.6.1安装错误(已安装Libsndfile 1.0.25) 我想要一些反馈。 $ gem install ruby-audio Building native extensions. This could take a while… ERROR: Error installing ruby-audio: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb **checking for sndfile.h in /opt/local/include,/usr/local/include,C:/Program Files (x86)/Mega-Nerd/libsndfile/include,C:/Program Files/Mega-Nerd/libsndfile/include… yes checking for sf_open() in -lsndfile-1… no checking for sf_open() in -lsndfile… no** *** […]

从文件中提取快速傅立叶变换数据

我正在构建一个应该在服务器上运行并分析声音文件的工具。 我想在Ruby中执行此操作,因为我的所有其他工具也都是用Ruby编写的。 但我找不到一个完成这个的好方法。 我发现的很多例子都是可视化器和图形化的东西。 我只需要FFT数据,仅此而已。 我需要获取音频数据,并对其进行FFT。 我的最终目标是计算一些东西,如平均值/中位数/模式,第25百分位数和第75百分位数在所有频率(加权幅度),BPM,以及可能还有一些其他好的特性,以便以后能够将类似的声音聚集在一起。 首先我尝试使用ruby-audio和fftw3,但我从来没有让两者真正合作。 文档也不好,所以我真的不知道什么数据被洗牌。 接下来我尝试使用bplay / brec并限制我的Ruby脚本只使用STDIN并对其执行FFT(仍然使用fftw3)。 但我无法让bplay / brec工作,因为服务器没有声卡,我没有设法直接将音频直接发送到STDOUT,而无需先进入音频设备。 这是我得到的最接近的: # extracting audio from wav with ruby-audio buf = RubyAudio::Buffer.float(1024) RubyAudio::Sound.open(fname) do |snd| while snd.read(buf) != 0 # ??? end end # performing FFT on audio def get_fft(input, window_size) data = input.read(window_size).unpack(“s*”) na = NArray.to_na(data) fft = FFTW3.fft(na).to_a[0, window_size/2] […]

我将如何以编程方式与VST交互(i)插件来合成音频?

以Tweakbench的VSTi Triforce为例。 当加载到市场上的任何VST主机中时,它允许主机向VSTi发送(可能是MIDI)信号。 然后,VSTi将处理该信号并输出​​由VSTi内的软件仪器创建的合成音频。 例如,向VSTi发送A4(我相信的MIDI音符)将使其合成中间C上方的A。它将音频数据发送回VST主机,然后VST主机可以在我的扬声器上播放或保存它.wav或其他一些音频文件格式。 假设我有Triforce ,并且我试图用我选择的语言编写一个程序,它可以通过发送要合成的A4音符与VSTi进行交互,并自动将其保存到系统上的文件中? 最后,我希望能够解析整个单轨MIDI文件(使用已经可用于此目的的已建立的稳定库)并将其发送到VSTi以“渲染”/合成为音频文件。 我将如何解决这个问题,以及我应该用什么语言来构建核心框架? 最终,它将用于基于Ruby的项目,因此任何指向特定Ruby资源的指针都会很好。 但是,我只是想了解一下VSTi的API是如何工作的 。 (我已经意识到这个问题与构建VST主机的问题非常相关,尽管只能将VST输出保存到文件中而不能播放它们,而且范围要小得多) 在此先感谢任何帮助=)