在阅读了Racket中的rsound文档后,我编写了以下代码:
#lang racket
(provide (all-defined-out))
(require rsound)
(define (sunet)
(sine-wave 880))
(signal-play sunet)
(stop)我在880 Hz的频率上使用了“正弦波”函数,并将其存储在函数"sunet“中。然后我对它应用了"signal-play“功能,它将信号作为声音播放。我得到了这个错误:
application: not a procedure;
expected a procedure that can be applied to arguments
given: #<network/s>
arguments.:
880
> “正弦波”不是一个函数吗?它不是以频率作为参数吗?
发布于 2016-01-20 01:36:02
我阅读了更多关于rsound的文档和关于网络的知识。显然,您需要创建一个带有输入信号和输出信号的网络,该网络可以输出到signal-play之类的东西。
这是我昨天需要的代码:
(define sunet
(network ()
[A5 <= sine-wave 880]
[out = A5]))
(signal-play sunet)
(sleep 3)
(stop)并使用两个信号来创建powerchord:
(define sunet
(network ()
[E2 <= sine-wave 82]
[B2 <= sine-wave 123]
[out = (+ E2 B2)]))
(signal-play sunet)
(sleep 3)
(stop)所以,我只是回答了我自己的问题。
发布于 2016-01-20 21:38:47
这比我预想的要难。事实证明sine-wave不是一个函数,而是一个网络。下面将播放一个正弦波。
#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)https://stackoverflow.com/questions/34862373
复制相似问题