2

我正在阅读 CSound FLOSS 手册,并且对我通过一个展示 CSound 中 RMS 使用的特定示例所获得的结果感到困惑。该示例可以在 pdf 版本的第 28 页上找到,也可以在此页面上的 html 版本中的“RMS 测量”标题下找到。

<CsoundSynthesizer>
<CsOptions>
-odac
</CsOptions>
<CsInstruments>
;example by Martin Neukom, adapted by Joachim Heintz
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

giSine    ftgen     0, 0, 2^10, 10, 1 ;table with a sine wave

instr 1
a3        init      0
kamp      linseg    0, 1.5, 0.2, 1.5, 0        ;envelope for initial input
asnd      poscil    kamp, 440, giSine          ;initial input
if p4 == 1 then                                ;choose between two sines ...
 adel1     poscil    0.0523, 0.023, giSine
 adel2     poscil    0.073, 0.023, giSine,.5
else                                           ;or a random movement for the delay lines
 adel1     randi     0.05, 0.1, 2
 adel2     randi     0.08, 0.2, 2
endif
a0        delayr    1                          ;delay line of 1 second
a1        deltapi   adel1 + 0.1                ;first reading
a2        deltapi   adel2 + 0.1                ;second reading
krms      rms       a3                         ;rms measurement
          delayw    asnd + exp(-krms) * a3     ;feedback depending on rms
a3        reson     -(a1+a2), 3000, 7000, 2    ;calculate a3
aout      linen     a1/3, 1, p3, 1             ;apply fade in and fade out
          outs      aout, aout
endin
</CsInstruments>
<CsScore>
i 1 0 60 1          ;two sine movements of delay with feedback
i 1 61 . 2          ;two random movements of delay with feedback
</CsScore>
</CsoundSynthesizer>

csound ex5.csd当我使用以下输出将文件作为输入运行 csound 时。

0dBFS level = 32768.0
--Csound version 6.10 (double samples) 2018-01-27 
[commit: none]
libsndfile-1.0.28
UnifiedCSD:  ex5cp.csd
STARTING FILE
Creating options
Creating orchestra
closing tag
Creating score
rtaudio: ALSA module enabled
rtmidi: ALSA Raw MIDI module enabled

csound command: Segmentation fault
end of score.          overall amps:      0.0
       overall samples out of range:        0
0 errors in performance

这一切都立即发生,没有声音输出。我猜这不是示例的意图,并且0dBFS level = 32768.0日志消息与问题有关。我在这里问是因为即使我从书中复制粘贴程序,我也会得到相同的结果,所以我有点难过。

对这里发生的事情有任何了解吗?

谢谢

4

1 回答 1

2

我认为这与 0dbfs 分配无关。您可以与任何其他适合您的 .csd 进行比较:您将始终在输出控制台中首先找到它。

我检查了示例,它按预期对我有用(csound 6.14 开发)。

当您使用 csound 6.10 时,我的第一个建议是更新您的 csound。问题在于您遇到了分段错误,因此如果没有特殊工具,就无法了解更多有关该问题的信息。

顺便说一句,在https://flossmanual.csound.com/上有新版本的 csound 牙线手册

现在可以直接从浏览器播放示例(目前,chrome/chromium 效果最好)。

希望这会有所帮助 - 约阿希姆

于 2020-04-19T11:38:31.433 回答