Haskell 这个问题。您可以尝试可变数组。您使用未打包/非严格构造整数列表(即批量数据操作的3种性能最低的类型)的原因是什么?事实上,列表是有问题的,整数作为示例类型是完全无效的。您希望从何处获取分辨率>64位的PCM数据?甚至32位。如果您不想被量化或溢出问题困扰,

Haskell 这个问题。您可以尝试可变数组。您使用未打包/非严格构造整数列表(即批量数据操作的3种性能最低的类型)的原因是什么?事实上,列表是有问题的,整数作为示例类型是完全无效的。您希望从何处获取分辨率>64位的PCM数据?甚至32位。如果您不想被量化或溢出问题困扰,,haskell,audio,wav,Haskell,Audio,Wav,这个问题。您可以尝试可变数组。您使用未打包/非严格构造整数列表(即批量数据操作的3种性能最低的类型)的原因是什么?事实上,列表是有问题的,整数作为示例类型是完全无效的。您希望从何处获取分辨率>64位的PCM数据?甚至32位。如果您不想被量化或溢出问题困扰,请使用Double。或浮动决定每一个样品是单声道还是立体声对性能来说当然是非常致命的。。。这可能是一个好主意,简单地存储在立体声,两个渠道相同的单声道。感谢评论。我现在正在努力实现它们。至于我为什么用整数,那是无知。 import Data.I


这个问题。您可以尝试可变数组。您使用未打包/非严格构造整数列表(即批量数据操作的3种性能最低的类型)的原因是什么?事实上,列表是有问题的,整数作为示例类型是完全无效的。您希望从何处获取分辨率>64位的PCM数据?甚至32位。如果您不想被量化或溢出问题困扰,请使用Double。或浮动决定每一个样品是单声道还是立体声对性能来说当然是非常致命的。。。这可能是一个好主意,简单地存储在立体声,两个渠道相同的单声道。感谢评论。我现在正在努力实现它们。至于我为什么用整数,那是无知。
import Data.Int
import Data.Vector.Unboxed as V
data RaWavFile b = RaWavFile {
    sampleRate :: Int,
    tracks     :: [Vector b] }
    deriving (Show)
parseWav :: BL.ByteString -> BG.Get (RaWavFile b)
wav <- parseWav input :: BG.Get (RaWavFile Int16)