在Haskell中播放声音样本的最简单方法是什么?

时间:2014-05-01 16:00:45

标签: haskell audio

我正在努力构建基本的音乐创作系统。我可以在记忆中表现音乐,但我(显然)希望能够输出实际的声音!我真的不在乎格式是什么(MIDI,mp3,ogg等等)。我只是希望能够将样本加载到程序中并以最简单的方式播放它们。我已经四处寻找解决方案,但我所看到的一切都是a)太复杂(开销方面)满足我的需求,b)没有得到积极支持,或者c)没有充分记录。我希望看到一个声音输出或其他方面的例子,最简单的方法是这样做。

3 个答案:

答案 0 :(得分:2)

你可能会喜欢Euterpea,它不是Hackage,但是安装起来轻而易举,而且文档相当冗长(它似乎构成了耶鲁大学Haskell入门课程的核心)。将鼠标悬停在" Euterpea"在顶部的菜单中找到更多链接/说明。

答案 1 :(得分:1)

我最终在Mac OSX上使用MIDI并将事件发送到SimpleSynth。这是使用hmidi包和the bindings to OSX's CoreMIDI by bkomuves实现的。我必须从here安装一个hmidi包的分支,才能使用最新的GHC。然后,我在OSX上使用SimpleSynth实用程序安装了Audio MIDI Setup并启用了IAC驱动程序。然后我将SimpleSynth设置为从我设置的IAC驱动程序中收听,并且能够使用bkomuvres的enumerateDestinations函数'绑定到CoreMIDI以使用Destination抓取第一个可用的MidiEvents并从hmidi发送send。它就像一个魅力!

答案 2 :(得分:0)

使用Haskell,您可能希望通过使用代码中的其他库/应用程序来完全掌握语言,但以下链接是指向音乐和声音库的链接。

http://www.haskell.org/haskellwiki/Applications_and_libraries/Music_and_sound

另一个想法是熟悉使用C / C ++的OpenAL,然后从那里你将熟悉HOpenAL的结构(OpenAL的Haskell绑定确实称为OpenAL DLL / SO)。

直接与OpenAL之前的教程相关联! http://enigma-dev.org/forums/index.php?topic=730.0;wap2

我希望这会有所帮助......