gpt4 book ai didi

macos - OS X上的Haskell音频输出?

转载 作者:行者123 更新时间:2023-12-04 08:30:29 25 4
gpt4 key购买 nike

我希望能够从 Haskell 输出音频。我目前在 OS X (Snow Leopard) 上使用 GHC 6.10。我尝试过构建 jack 库(使用 JackOSX)和 PortAudio 库,但它们似乎都没有效果。有没有一种相对简单的方法可以从 Mac 上的 Haskell 程序进行实时音频输出?

编辑:清晰度

最佳答案

我一直在成功使用 PortAudio。

我从我的玩具程序中摘录了一些片段来制作一个非常简单的“回声”示例,如下所示:

(带耳机运行。这是从麦克风到扬声器的反馈回路,经过几轮反馈后可能会变得 非常响亮 )

import Control.Monad (forever)
import Data.Int (Int16)
import Foreign.Ptr (nullPtr)
import Sound.PortAudio

initPortAudio :: Int -> IO (PaStream Int16)
initPortAudio blockSize = do
Right NoError <- initialize
Just micDevIdx <- getDefaultInputDevice
Just spkDevIdx <- getDefaultOutputDevice
Right paStream <-
openStream
(Just (StreamParameters micDevIdx 1 PaInt16 0.1 nullPtr))
(Just (StreamParameters spkDevIdx 1 PaInt16 0.1 nullPtr))
44100 blockSize
:: IO (Either String (PaStream Int16))
Right NoError <- startStream paStream
let zeroBlock = replicate blockSize [0]
Right NoError <- writeStream paStream zeroBlock blockSize
return paStream

main :: IO ()
main = do
paStream <- initPortAudio blockSize
forever $ do
Right numSampsAvail <- getStreamReadAvailable paStream
Right curSamps <- readStream paStream 1 numSampsAvail
Right NoError <- writeStream paStream curSamps numSampsAvail
return ()
where
blockSize = 0x800

使用 GHC 6.10.4 在 Leopard 中工作。

我自己的玩具程序实际上只使用音频输入,它输出零到音频输出(没有这样做 PortAudio 提示)。

关于macos - OS X上的Haskell音频输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2223866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com