Csound 的 gen09 是如何工作的?
How does Csound's gen09 work?
我试图理解 Csound 的 gen09,我尝试了这一行:
gigen ftgen 1, 0, 16384, 9, 1, 1, 0, 1, 1, 180
我理解 gen09 的工作方式,在这种情况下,第二个部分应该取消第一个,因为它们都处于基频 (1
),并且相位反转 (0
和 180
)。但不是沉默,我得到的是一个看起来像这样的波浪:
这里到底发生了什么来创建这个波形?
这里发生的事情是因为重新调整(正 GEN 编号),
计算中的小错误会被放大(因此最大值为 1)。如果你用 -9 构造 table,你会看到结果是你所期望的。
试试这个
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
instr 1
a1 oscili 0dbfs,A4,1
out a1
endin
</CsInstruments>
<CsScore>
f1 0 16384 -9 1 1 0 1 1 180
i1 0 1
</CsScore>
</CsoundSynthesizer>
结果应该是
SECTION 1:
ftable 1:
new alloc for instr 1:
B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.0
Score finished in csoundPerformKsmps().
inactive allocs returned to freespace
end of score. overall amps: 0.0
overall samples out of range: 0
我试图理解 Csound 的 gen09,我尝试了这一行:
gigen ftgen 1, 0, 16384, 9, 1, 1, 0, 1, 1, 180
我理解 gen09 的工作方式,在这种情况下,第二个部分应该取消第一个,因为它们都处于基频 (1
),并且相位反转 (0
和 180
)。但不是沉默,我得到的是一个看起来像这样的波浪:
这里到底发生了什么来创建这个波形?
这里发生的事情是因为重新调整(正 GEN 编号), 计算中的小错误会被放大(因此最大值为 1)。如果你用 -9 构造 table,你会看到结果是你所期望的。
试试这个
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
instr 1
a1 oscili 0dbfs,A4,1
out a1
endin
</CsInstruments>
<CsScore>
f1 0 16384 -9 1 1 0 1 1 180
i1 0 1
</CsScore>
</CsoundSynthesizer>
结果应该是
SECTION 1: ftable 1: new alloc for instr 1: B 0.000 .. 1.000 T 1.000 TT 1.000 M: 0.0 Score finished in csoundPerformKsmps(). inactive allocs returned to freespace end of score. overall amps: 0.0 overall samples out of range: 0