我試圖開始使用反應香蕉並且想要創建一個簡單的合成器。有很多GUI示例,但我無法將它們應用於音頻。由於音頻API有回調,說「給我n樣本的音頻」我想我應該觸發一個事件每個回調(使用snd部分的newAddHandler返回),其中包含要生成的樣本數量,一個指針應該寫在哪裏和定時信息來協調MIDI事件。傳遞給reactimate的IO操作會將樣本寫入指針。 MIDI事件將同樣從另一個回調中觸發,並且還包含時間信息。使用反應香蕉的Haskell中的音頻合成
然而,這是我卡住的地方。我猜音頻信號應該是一種行爲,但是如何在合適的時間內「運行」一個行爲來獲取樣本?適當的課程取決於兩個音頻回調之間可能發生的MIDI事件。
它不是反應性香蕉,但仍可能是有趣的:關於時間的注意事項在http://hackage.haskell.org/package/live-sequencer-0.0.4/src/src/Event.hs – d8d0d65b3f7cf42