Как работает Csound's gen09?
Я пытаюсь понять gen09 Csound, и я попробовал эту строку:
gigen ftgen 1, 0, 16384, 9, 1, 1, 0, 1, 1, 180
Как я понял, как работает gen09, второе частичное в этом случае должно отменять первое, потому что они оба на основной частоте (1
), и фаза инвертируется (0
а также 180
). Но вместо тишины я получаю волну, которая выглядит так:
Что именно здесь происходит, чтобы создать эту форму волны?
1 ответ
Решение
Здесь происходит то, что, поскольку включено масштабирование (положительное число GEN), небольшие ошибки в расчете усиливаются (поэтому максимальное значение равно 1). Если вы построили таблицу с -9, вы увидите, что результат соответствует ожидаемому.
Попробуй это
<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