Audio 使用rsound播放正弦波信号

Audio 使用rsound播放正弦波信号,audio,lisp,racket,Audio,Lisp,Racket,我在阅读Racket中的rsound文档后编写了以下代码: #lang racket (provide (all-defined-out)) (require rsound) (define (sunet) (sine-wave 880)) (signal-play sunet) (stop) 我在880 Hz的频率上使用了“正弦波”功能,并将其存储到函数“sunet”中。然后我在它上应用了“信号播放”功能,它将信号作为声音播放。我得到了这个错误: application: not

我在阅读Racket中的rsound文档后编写了以下代码:

#lang racket
(provide (all-defined-out))
(require rsound)


(define (sunet)
  (sine-wave 880))

(signal-play sunet)

(stop)
我在880 Hz的频率上使用了“正弦波”功能,并将其存储到函数“sunet”中。然后我在它上应用了“信号播放”功能,它将信号作为声音播放。我得到了这个错误:

application: not a procedure;
 expected a procedure that can be applied to arguments
  given: #<network/s>
  arguments.:
   880
> 
应用:不是程序;
应为可应用于参数的过程
鉴于:#
论据。:
880
> 

“正弦波”不是一个函数吗?它不是以频率为参数吗?

我读了更多关于rsound和网络的文档。显然,你需要用输入信号和输出信号创建一个网络,输出信号类似于信号播放

这就是我昨天需要的代码:

(define sunet
  (network ()
       [A5 <= sine-wave 880]
       [out = A5]))

(signal-play sunet)

(sleep 3)

(stop)
(定义太阳光)
(网络)

[A5这比我预期的要难。结果表明,
正弦波
不是一个函数,而是一个网络。下面将播放正弦波

    #lang racket
    (require rsound)

    (define s (network ()
                 [a <= sine-wave 880]
                 [out = a]))
    (signal-play s)

如果你在标题中提到这是
rsound
的一个问题,也许会更清楚些?这是一个很好的问题,我很高兴你找到了答案(我认为文档中的某个地方有示例代码)。我也知道这会让很多人感到困惑;如果你有更好的错误消息的想法,我很乐意听到。@john clements?有什么想法吗?尽管如此:
#lang racket(require rsound)(定义s(网络()[out])
    #lang racket
    (require rsound)

    (define s (network ()
                 [a <= sine-wave 880]
                 [out = a]))
    (signal-play s)
    #lang racket
    (require rsound)

    (define s (network ()
                 [out = sine-wave 880]))
    (signal-play s)