[Csnd] wguide1 doesn't work if xfreq is <= 5 ?

Is this a bug or is there a reason wguide1 doesn't seem to accept xfreq values <= 5? Or perhaps a case of user error? I couldn't find any reference to the limitation in the manual.

<CsoundSynthesizer>
<CsOptions>
-odac
</CsOptions>
<CsInstruments>

sr = 48000
ksmps = 32
nchnls = 1
0dbfs = 1

giFrq init 16

instr trig
  kTrig = metro(1)
  schedkwhen kTrig, 0, 0, 1, 0, 1
endin

instr 1
  aEnv = expsega(.001, .001, 1, .04, .001)
  aNoiz = noise(.02 * aEnv, -.99)
  aSig = wguide1(aNoiz, giFrq, 5000, .8)
  out(aSig)
  giFrq -= 1
endin

</CsInstruments>
<CsScore>
i"trig" 0 12
</CsScore>
</CsoundSynthesizer>

I realize this is not a common use of wguide1 & this could be replicated with a standard delay, filter & feedback but was curious as this would certainly be a more convenient option.

Best,
Scott

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        Issues · csound/csound · GitHub
Discussions of bugs and features can be posted here

Hi Scott,
as much as it is always nice to see the limitations of opcoddes, what you have seen is possibly quite a useful one, considering normal use-cases for a waveguide, instead of a delay. As with any delay you need an internal audio buffer to work the delay magic. With some of the variable delays, you will note the imaxdel (maximum delay time). This is so the opcode can reserve a buffer of a certain length. It appears that wguide1 then reserves a delay buffer for about .2 seconds of audio (5Hz = 1/5 s = .2s).

Since wguide1 is designed to give feedback in the audible range of human hearing, i.e. >20Hz, you may want to consider vdelay if you need a vary the delay time at performance time or delay if you are happy with a fixed delay time.

HTH.

Best wishes,

Jeanette