Thanks for all the great conversation!!!
First thing, now that I have done some research, I am getting KS, and Waveguide synthesis confused. What I have patched up is a Karplus Strong synth, that sounds like a PVC pipe... It is not really a waveguide synth in the true sense. The initial noise burst, which comes through, is desirable in this synth, since it represents the percussive hit of the pipe end.
One thing about pre loading the delay line, is getting the true sound of the recalculating line itself, without the noise pulse at the beginning. You can output the delayed signal, but it appears 20 msec or so 'late' for bass notes.
I picture it similar to pulling a bass string with your finger, you are adding energy to the string, but there is no sound from adding this energy. So the string, in cross section looks like a single cycle of a saw tooth. The pickup is located someplace on the string, and starts producing sound the instant the string is released, not 20 msec later, the timbre of the sound based on the energy stored by the finger being released.
What I am describing in the last paragraph is a true 'waveguide' implementation, with a pre load. (Covered under various patents etc.... as I discovered last night) otherwise known as a 'Physical Modeling Synth' very well described by Julius O. Smith et.al etc. etc....
Are there examples of 'Physical Modeling' PD synths???
mcg
-----Original Message----- From: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] On Behalf Of padawan12 Sent: Friday, December 08, 2006 5:08 PM To: Frank Barknecht Cc: pd-list@iem.at Subject: Re: [PD] Pre Loading a Delay Line
On Fri, 8 Dec 2006 07:49:26 +0100 Frank Barknecht fbar@footils.org wrote:
Hallo,
(the early bird...)
padawan12@obiwannabe.co.uk hat gesagt: // padawan12@obiwannabe.co.uk
wrote:
Yes, but that wouldn't be appropriate for a xylophone. I think it depends on the excitation mode and what instrument you're modelling whether to pass the excitation impulse directly through (or through a body formant), or only take it from the "cold" side of the delay where it's one period late. I think this is how you decide.. If it's a displacement that you're modelling, like plucking a bass string at the middle (antinode) then yes you want to have the delay, that's the time until you really hear anything from the moment the pick is released, the time to propagate along the string. But for struck instruments, the hammer excites the whole thing locally, and the waves spread out and travel back and forth until they fall into phase with the waveguide (delay), (Karplus-Strong), and then you want to hear the delay contents as quickly as you can, so you want the buffer to be preloaded with an image of the impulse.
Hm, I still don't quite get it: In the patch Michael already plays out the excitation pulse because his "pickup" is next to the [delwrite~] so everything that goes into the delay is played out, especially the first excitation. The second repetition of the (filtered) excitation will arrive after the first delay period, but doesn't it have to wait that long? Because if it would come any earlier you would have a tone with a different and *higher* frequency because basically you just set the delay period to be shorter for a short time. Or am I totally off-track?
I see it, in the waveguide, he sends the impulse straight through, so yes you always hear that click in the attack. I wonder. Is the optimal buffer size the size of the impulse table? Any difference in the first cycle is going to end up absorbed into the sound as a difference frequency I imagine. So, one would really want to resample the excitation so it fits properly into the first frame. If your delay is set to the right period and already preloaded from the table the problem is solved.
And I wonder, what's the pros and cons of using a symmetrical impulse seed (negative and positve) vs storing only a half cycle and fliping phases alternately?
It's good to discuss this, because the best implementation isn't obvious in Pd. Am I talking crap when I say that it would be nice to use arrays in a more flexible way?
Of course there is [dynwav~], which I haven't played with much. Has anyone done anything demonstrative with it like scanned synthesis or something?
Are you doing that here? How do you do it, I cant see it? Is that why you set the blocksize so low?
The blocksize is low because it specifies the lowest possible delay time, if you have a feedback delay and through that the highes possible frequency of the delay waveguide. See Miller's book, the chapters on recirculating and non-recirculating delay lines.
For a bass player the block size could be larger, though. ;)
Aha OK, Duh, I see. When using 64byte blocks I definitely lose accuracy for higher notes.For bass what works out good in my experience is a hybrid of a waveguide and waveshaper, where the delay buffer is used to create a signal that has all the right shape for a plucked string, but a meager amount of harmonics (so a very low frequency impulse of one cycle) and follow that up with a chebychev or other distortion to bring out the harmonics you want. It "exagerates" the harmonic movements that are already there in the first part.
A xylophone is a tougher one though. xylo == wood right? It's a more diffuse sound. I would think a good angle would be to introduce some lf noise into the delay modulation and get a more wooden collection of sidebands.
Ciao
Frank Barknecht _ ______footils.org_ __goto10.org__
PD-list@iem.at mailing list UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list