[Csnd] Some troubles with Digital Waveguide Synthesis
| Date | 2018-04-21 20:20 |
| From | Mauro Giubileo |
| Subject | [Csnd] Some troubles with Digital Waveguide Synthesis |
|
Hi all, I would like to bring to your attention a problem that arose during my experiments with Digital Waveguide Synthesis in Csound. This is the typical structure of a simplified digital waveguide model (I hope you can see it with the right formatting): |
| Date | 2018-04-21 20:41 |
| From | Victor Lazzarini |
| Subject | Re: [Csnd] Some troubles with Digital Waveguide Synthesis |
|
The minimum delay with delayr/w is 1 ksmps.
That is indicated in the manual.
if you need a 1-sample delay, then you will have to set ksmps to 1.
This is also discussed in the physical models chapter of the Csound springer book.
Victor
|
| Date | 2018-04-21 22:59 |
| From | Mauro Giubileo |
| Subject | Re: [Csnd] Some troubles with Digital Waveguide Synthesis |
|
Hi Victor, from the link you mentioned yourself: delayw writes asig into the delay area established by the preceding delayr unit. Viewed as a pair, these two units permit the formation of modified feedback loops, etc. However, there is a lower bound on the value of idlt, which must be at least 1 control period (or 1/kr). This means that the minimum delay of delayr/w depends on the value of ksmps (or, eventually, the modified setksmps inside the UDO). If I use other opcodes like 'delay' or 'vdelay', they don't have this limit, so I don't have to lower the ksmps to generate high frequency notes, but unfortunately I cannot use them for delay lines with modified feedback (which are needed in the digital waveguide method)... If you are asking me why I don't want to lower the ksmps (or use, inside my UDO, setksmps with a value lower than the global ksmps) the answer is obvious: the lower the ksmps, the worse the max polyphony for real-time performance. Regards,
Mauro
Il 2018-04-21 21:41 Victor Lazzarini ha scritto: The minimum delay with delayr/w is 1 ksmps. |
| Date | 2018-04-21 23:31 |
| From | Victor Lazzarini |
| Subject | Re: [Csnd] Some troubles with Digital Waveguide Synthesis |
|
I am not asking that, I am just pointing out
that this is the normal operation of the
system (in fact this is how any similar
system, not only Csound, works).
If you need a 1-sample delay, the DSP
vector needs to be 1. That’s all.
Victor Lazzarini
|
| Date | 2018-04-21 23:33 |
| From | John ff |
| Subject | Re: [Csnd] Some troubles with Digital Waveguide Synthesis |
If you care seriously about performance then writing in C is the way to go. You might look at wgpluck and repluck as well....
Sent from Blue
On 21 Apr 2018, at 23:00, Mauro Giubileo <mgiubileo@computeraltafed.it> wrote:
|
| Date | 2018-04-22 08:55 |
| From | Mauro Giubileo |
| Subject | Re: [Csnd] Some troubles with Digital Waveguide Synthesis |
|
Hi Victor, honestly I don't know how other similar systems work, being that Csound is the first music language I learned until now (and I learned it from only a few months), so I'm sorry if I ask trivial questions, but I will be glad if you help me to understand better: Il 2018-04-22 00:31 Victor Lazzarini ha scritto: I am not asking that, I am just pointing out |
| Date | 2018-04-22 10:07 |
| From | Mauro Giubileo |
| Subject | Re: [Csnd] Some troubles with Digital Waveguide Synthesis |
|
Yes, actually I'm trying to get acceptable (for my needs) performance directly in Csound without writing C opcodes, but I think this is possible only up to a certain extent. Anyway it's fun to try to optimize my Csound scripts, and I'm learning much things of the Csound system in doing it. ;-) I think I will continue to experiment only with Csound code and then, when I'm satisfied with the sound I get, I will try to convert the UDOs that need setksmps=1 to C opcodes, to boost the performance. I checked wgpluck, pluck, repluck, wguide, etc., but unfortunately I need something more generic and flexible for my needs (like in the diagram from my first email for this topic). Best regards, Il 2018-04-22 00:33 John ff ha scritto:
|