使用rsound播放正弦波信号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用rsound播放正弦波信号相关的知识,希望对你有一定的参考价值。

我在阅读了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
> 

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

答案

我阅读了更多关于rsound的文档并阅读了有关网络的内容。显然你需要创建一个带有输入信号和输出信号的网络,这些信号会发出信号播放之类的信号。

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

(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)

所以,我刚刚回答了我自己的问题。

另一答案

这比我想象的要难。原来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)

以上是关于使用rsound播放正弦波信号的主要内容,如果未能解决你的问题,请参考以下文章

正弦信号怎么变成方波信号,需要怎么处理?

如何将正弦信号转换成同频率方波信号

LabVIEW软件中,正弦信号与正弦波的区别

方波,正弦波,三角波信号是如何产生的

如何讲正弦波转化为方波?频率不变。

急!!!用运算放大器设计一个方波、正弦波、三角波的信号发生器