CSound 忽略 0dbfs 分配并立即终止

Posted

技术标签:

【中文标题】CSound 忽略 0dbfs 分配并立即终止【英文标题】:CSound ignores 0dbfs assignment and terminates immediately 【发布时间】:2020-04-18 21:21:30 【问题描述】:

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

<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 日志消息与问题有关。我在这里问是因为即使我从书中复制粘贴程序也得到相同的结果,所以我有点难过。

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

谢谢

【问题讨论】:

【参考方案1】:

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

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

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

顺便说一下,https://flossmanual.csound.com/有新版csound floss手册

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

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

【讨论】:

以上是关于CSound 忽略 0dbfs 分配并立即终止的主要内容,如果未能解决你的问题,请参考以下文章

exit-code影响配置文件吗

Xcode 成功构建,但不复制到 iOS 设备,并立即终止调试器

[APUE]进程控制(中)

立即安全地终止线程 (C#)

如何立即终止/停止长 SQL 查询?

如何立即终止套接字 IO 操作上的线程阻塞?