我正在使用Portaudio在Haskell中编写音频程序。我有一个生成的样品我想打列表的功能,我想利用内幕主下面的片段,以发挥他们:迭代Haskell中的列表?
curSamps <- return (chunk 1 (sineWave 440 44100))
forever $ do
Right numSampsAvail <- getStreamWriteAvailable paStream
Right NoError <- writeStream paStream curSamps numSampsAvail
curSamps <- return (drop numSampsAvail curSamps)
正弦波是我创建生成功能以指定的频率和采样率对正弦波的Int16样本进行无限列表。
当我调试此代码时,通过用putStrLn替换音频输出代码,它将打印所有0,这是函数的第一个样本。
如何迭代这个列表与音频输出功能?我不认为我可以使用递归或地图。
编辑:将代码复制错误
你为什么认为你不能使用地图? – 2010-02-11 17:41:10
不同子表达式的值是什么?即什么是10(正弦波440 44100),取10(大块1(正弦波440 44100))等? – 2010-02-11 17:53:17
@Edward Amsden:顺便说一句,请在你之前的问题中留言评论http://stackoverflow.com/questions/2223866/haskell-audio-output-on-os-x描述你是否使用macports安装portaudio。这对其他人来说可能是有用的,比如当我改用雪豹时。谢谢:) – yairchu 2010-02-11 19:23:28