wguide2 — A model of beaten plate consisting of two parallel delay-lines and two first-order lowpass filters.
A model of beaten plate consisting of two parallel delay-lines and two first-order lowpass filters.
asig -- the input of excitation noise
xfreq1, xfreq2 -- the frequency (i.e. the inverse of delay time) Changed to x-rate in Csound version 3.59.
kcutoff1, kcutoff2 -- the filter cutoff frequency in Hz.
kfeedback1, kfeedback2 -- the feedback factor
wguide2 is a model of beaten plate consisting of two parallel delay-lines and two first-order lowpass filters. The two feedback lines are mixed and sent to the delay again each cycle.
Implementing waveguide algorithms as opcodes, instead of orc instruments, allows the user to set kr different than sr, allowing better performance particulary when using real-time.
Note | |
---|---|
As a rule of thumb, to avoid making wguide2 unstable, the sum of the two feedback values should be below 0.5. |
Here is an example of the wguide2 opcode. It uses the file wguide2.csd.
Example 1212. Example of the wguide2 opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o wguide2.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 aout diskin2 "beats.wav", 1, 0, 1 ;in signal afreq1 line 100, p3, 2000 afreq2 line 1200, p3, p4 ;vary second frequency in the score kcutoff1 = 3000 kcutoff2 = 1500 kfeedback1 = 0.25 ;the sum of the two feedback kfeedback2 = 0.25 ;values should not exceed 0.5 asig wguide2 aout, afreq1, afreq2, kcutoff1, kcutoff2, kfeedback1, kfeedback2 asig dcblock2 asig ;get rid of DC outs asig, asig endin </CsInstruments> <CsScore> i 1 0 8 1200 ;freqency of afreq2 remains the same i 1 9 8 100 ;freqency of afreq2 gets lower e </CsScore> </CsoundSynthesizer>