小编Lov*_*vaz的帖子

Haskel音乐学院将会完成吗?

我正在写关于Haskell中反应式编程的学士论文.我正在使用Euterpea开发简单的音频应用程序.我几乎完成了Paul Hudak的Haskell音乐学院.

但是,正如你们中的一些人所知,Hudak先生今年早些时候去世了,这本书现在已经完成了 - 关于调频的章节只完成了一半.物理建模章节有很多空白空间.如果没有解释,我无法理解那里出现的想法:(

有没有关于这本书是否会完成的信息?我甚至不知道如何获得这些信息.

除了Paul Hudak之外,还有人参与编写Haskell音乐学院吗?

audio haskell reactive-programming

11
推荐指数
0
解决办法
256
查看次数

Karplus-Strong Algo中的递归反馈 - 箭头

我正在尝试使用Euterpea实现最简单的Karplus-Strong算法:

KS算法原理图

我的代码:0.7秒的白噪声爆发

burst :: AudSF () Double
burst = proc () -> do 
   burstEnv <- envLineSeg [1,1,0,0] [0.7, 0, 9.3] -< ()
   noise <- noiseWhite 42 -< ()
   outA -< burstEnv * noise
Run Code Online (Sandbox Code Playgroud)

有问题的部分:

karplus :: AudSF Double Double
karplus = proc input -> do 
  rec  filtered <- filterLowPass -< (delayed, 2000)
       delayed <- delayLine 0.7 -< filtered + input      
  outA -< filtered + input
Run Code Online (Sandbox Code Playgroud)

test1函数应该用几个周期创建一个10秒的文件:

test1 = outFile "test1.wav" 10 $ burst >>> karplus
Run Code Online (Sandbox Code Playgroud)

据我所知,反馈循环应该继续运行. …

haskell arrows reactive-programming

5
推荐指数
1
解决办法
132
查看次数

调用类方法.模棱两可的类型

标题可能不是最清楚的,但说实话,我不知道我不知道的是什么:(

有这个Clock类:

class Clock c where
   rate :: c ? Double

data AudRate
data CtrRate
Run Code Online (Sandbox Code Playgroud)

和实例:

instance Clock AudRate where
   rate _ = 44100
instance Clock CtrRate where
   rate _ = 4410
Run Code Online (Sandbox Code Playgroud)

我的功能:

burst :: Clock p => Double -> SigFun p () Double
burst m = proc () -> do 
     burstEnv <- envLineSeg [1,1,0,0] [(m/(rate (undefined :: p))), (1/4410), (m+1/4410) ] -< ()
     noise <- noiseWhite 51 -< ()
     outA -< noise * burstEnv  
Run Code Online (Sandbox Code Playgroud)

GHC告诉我:(率(undefined :: p))

Could not …
Run Code Online (Sandbox Code Playgroud)

haskell reactive-programming

1
推荐指数
1
解决办法
65
查看次数

Haskell Caesar Cypher,我不会得到翻译错误

这是我的第一篇帖子:)

我正在尝试学习haskell的基础知识,甚至还有一些东西在我的屏幕上显示(͡°͜ʖ͡°)但是说真的.我正在尝试实施Caesar的Cipher,但我不知道为什么我的舞蹈ordchr不起作用.我意识到答案很简单,但我发现很难理解GHCI的错误信息.

import Data.Char
cipher :: [char] -> Int -> [char]
cipher [] _ = []
cipher ch n = (chr(( (ord (head ch)) - n) `mod` 26)) : (cipher (tail ch) n)


cipher.hs:4:16:
    Couldn't match expected type `char' with actual type `Char'
      `char' is a rigid type variable bound by

             the type signature for cipher :: [char] -> Int -> [char]
             at cipher.hs:2:11
    In the return type of a call of `chr'
    In the first …
Run Code Online (Sandbox Code Playgroud)

haskell

0
推荐指数
1
解决办法
329
查看次数

标签 统计

haskell ×4

reactive-programming ×3

arrows ×1

audio ×1