ruby - 在 Mac 上生成音调/正弦波的简单方法? ( ruby 会很好)

标签 ruby cocoa macos audio core-audio

我正在编写一个涉及回放正弦波和正弦波组合的程序...它必须在 Mac 上运行,我正在寻找可以使用的简单 API。我对 ObjC、C、C++、Ruby、Python 等持开放态度……我不在乎什么语言,只要它只是几行代码。但是 Ruby 会很好 :-)

在 Linux 上,您可以写入/dev/dsp、/dev/sound 等,但不能在 mac 上写入。我知道如何生成正弦波,但问题是将我创建的 PCM 样本获取到音频硬件。我知道/Developer/Examples/CoreAudio/SimpleSDK/DefaultOutputUnit 中的示例代码,但它有数百行荒谬的 Core Audio/AudioUnit 代码,我想要一些简单的代码来使用。

最佳答案

一种方法是使用 PyAudio

import pyaudio, array, math

p = pyaudio.PyAudio()
stream = p.open(rate=44100, channels=1, format=pyaudio.paFloat32, output=True)
stream.write(array.array('f',
    (.25 * math.sin(i / 10.) for i in range(44100))).tostring())
stream.close()
p.terminate()

不是很干净的代码,但是可以用

PyAudio 不是标准的,但可以通过 easy_install 获得(我使用的是 python2.5)

关于ruby - 在 Mac 上生成音调/正弦波的简单方法? ( ruby 会很好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1587063/

相关文章:

ruby-on-rails - 我真正运行的是哪个 Ruby 版本?

ruby-on-rails - Ruby on Rails : bad username/password?(535 验证失败)

javascript - 有没有办法在 ruby​​ 中的上传文件或文本区域中找出二进制代码的存在?

macos - NSTextView "data"绑定(bind)问题

objective-c - 使用 NSData 从 int* 的 NSbitmapRep 创建 NSimage?

javascript - $(...).validate 不是函数

objective-c - Objective-C中如何检测USB驱动器是NTFS还是FAT32

objective-c - 如何收听屏幕截图

mysql - 在 emacs 中设置 `sql-mysql-program`

ios - 如何在 Xcode 控制台中漂亮地打印 NSError 对象?