將兩個頻率差異很小的聲波加總,就會產生拍音(Beating)。有拍音現象的聲波,振幅會逐漸上升逐漸下降,形成週期,拍音的頻率是來源聲波的頻率的差。
若要使用Csound產生拍音,可以使用「+」運算子,將聲波加總在一起。可寫成以下程式:
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
sr = 44100 ;sample rate
ksmps = 16 ;samples in a control period
nchnls = 2 ;number of channels
0dbfs = 100 ;value of 0db
instr 1
;p4=freq
;p3=duration
iamp = 75;
iscale = iamp * 0.5 ;scale the amp at initialization
;av linen iscale, 0.1, p3, 0.1 ;ring the amplitude
a1 oscil iscale, p4, 1 ;oscillate f1
a2 oscil iscale, p4*0.996, 1 ;oscillate f1
a3 oscil iscale, p4*1.01, 1 ;oscillate f1
out a1+a2,a1+a3 ;beating output. Left,Right
endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1 ;sine wave
t 0 60 ;tempo
;ins strt dur freq
i1 0 10 200
e
</CsScore>
</CsoundSynthesizer>
音樂檔波形