2016-10-31 2 views
1

Я пытаюсь понять gen09 Csound, и я попробовал эту строку:Как работает генератор Csound?

gigen ftgen 1, 0, 16384, 9, 1, 1, 0, 1, 1, 180 

так, как я понял, как gen09 работы, второй частичный в этом случае предполагается отменить первый, потому что они оба в основная частота (1), и фаза инвертируется (0 и 180). Но вместо того, чтобы молча, я получаю волну, которая выглядит следующим образом:

3 cycles of the output wave

Что именно происходит здесь, чтобы создать эту форму волны?

ответ

2

Здесь происходит то, что, поскольку масштабирование включено (положительное число 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 
+0

... Интересно, что небольшие ошибки выглядят синусоиду. Но фаза 180 в таблице с четным количеством элементов не должна выглядеть так, разве это известная ошибка Csound? – Wolf

Смежные вопросы