How to create an impulse representing a guitar plectrum from this article and formula?

DSP, Plug-in and Host development discussion.
mikejm
KVRist
88 posts since 5 Apr, 2017

Post Sat Nov 02, 2019 5:56 pm

I am doing modal synthesis where I am exciting arrays of bandpasses. I found this article on plectrum modeling:

https://www.researchgate.net/publicatio ... nstrument/

It summarizes a method to simulate a plectrum as an exciter of a string based on various physical parameters including pick velocity and material coefficients. The only problem is it is all based around differential equations and waveguides and I don't know how to apply this to my use. I need an equation that will put out an impulse as a function of time.

For example, another article used filters to model a plectrum impulse as this shape:
fir impulse.PNG

I essentially need that type of output. I need to generate the amplitude of the plectrum impulse over time if fed the correct parameters (plectrum velocity, string tension, etc.). Then I can input this impulse into my bandpass array.

Is it possible to generate an impulse equation from the above linked article, and if so, how?

Thanks. :pray:
You do not have the required permissions to view the files attached to this post.

mikejm
KVRist
88 posts since 5 Apr, 2017

Re: How to create an impulse representing a guitar plectrum from this article and formula?

Post Sat Nov 02, 2019 7:44 pm

I've been thinking about it and reading the article and I wonder - if I'm creating an impulse to trigger a bandpass array, wouldn't the impulse just want to be the shape of the displacement from the plectrum? Then at the point of release it would abruptly go to zero since there is no more "impulse" being added. ie.
displacement plectrum.png
Like the red line tracing that one curve? (Or one of the solid curves if those are more correct.)

I tried doing this though and it doesn't have nearly the right frequency response - it's way too much high frequency. So I don't get it.
You do not have the required permissions to view the files attached to this post.

martinvicanek
KVRer
28 posts since 16 Mar, 2014

Re: How to create an impulse representing a guitar plectrum from this article and formula?

Post Sun Nov 03, 2019 3:00 am

I haven’t read the article however I don’t think you will get away with an impulse. The effect of a plectrum is that while there is contact with the string, there will be reflections of the string motion to both sides of the plectrum. In effect, you have two strings which vibrate with different frequencies and harmonics than the free string. Excitation of these vibrations is to some extent via friction between the plectrum and the string. Once contact is lost the string will vibrate freely.

DaveClark
KVRist
181 posts since 8 May, 2007

Re: How to create an impulse representing a guitar plectrum from this article and formula?

Post Tue Nov 05, 2019 5:37 pm

Hi mikejm,

Isn’t the equation you’re looking for (10) in the paper for “general hand motion” and (15) for “constant speed case?”

For the red signal in your diagram, you shouldn’t be forcing the displacement back to zero. You just turn the forcing function off, like they say in the paper (“after which the collision scattering junction is removed and the string follows free vibrations”). Snapping the string displacement back to its original position in one sample period is probably going to cause all sorts of mayhem that could completely override the detailed model of plucking in this paper.

As you may know, much simpler models of plucking ignore the detailed collision modelling of this paper and simply specify an initial displacement function for the string such as a non-isosceles triangular function or a raised cosine.

Finally, it seems that Martin may have misunderstood your use of the word “impulse.” Either that or I am. I’m assuming that you mean a finite-duration initial forcing function, not a Dirac delta-function type of thing or something that lasts for just one sample.

Regards,
Dave Clark

mikejm
KVRist
88 posts since 5 Apr, 2017

Re: How to create an impulse representing a guitar plectrum from this article and formula?

Post Tue Nov 05, 2019 8:23 pm

martinvicanek wrote:
Sun Nov 03, 2019 3:00 am
I haven’t read the article however I don’t think you will get away with an impulse. The effect of a plectrum is that while there is contact with the string, there will be reflections of the string motion to both sides of the plectrum. In effect, you have two strings which vibrate with different frequencies and harmonics than the free string. Excitation of these vibrations is to some extent via friction between the plectrum and the string. Once contact is lost the string will vibrate freely.
Hey Martin,

Yes, generally the plectrum is simulated with two effects - one is a white noise impulse to simulate the friction of the plectrum rubbing on the string. That is simple. It is just a short burst of low pass filtered white noise.

The second part is the impulse component which simulates what happens when the plectrum "lets go" and the string rebounds.

mikejm
KVRist
88 posts since 5 Apr, 2017

Re: How to create an impulse representing a guitar plectrum from this article and formula?

Post Tue Nov 05, 2019 9:12 pm

DaveClark wrote:
Tue Nov 05, 2019 5:37 pm
Hi mikejm,

Isn’t the equation you’re looking for (10) in the paper for “general hand motion” and (15) for “constant speed case?”

For the red signal in your diagram, you shouldn’t be forcing the displacement back to zero. You just turn the forcing function off, like they say in the paper (“after which the collision scattering junction is removed and the string follows free vibrations”). Snapping the string displacement back to its original position in one sample period is probably going to cause all sorts of mayhem that could completely override the detailed model of plucking in this paper.

As you may know, much simpler models of plucking ignore the detailed collision modelling of this paper and simply specify an initial displacement function for the string such as a non-isosceles triangular function or a raised cosine.

Finally, it seems that Martin may have misunderstood your use of the word “impulse.” Either that or I am. I’m assuming that you mean a finite-duration initial forcing function, not a Dirac delta-function type of thing or something that lasts for just one sample.

Regards,
Dave Clark
Hey Dave,

Thanks for the guidance. I worked through those equations and I can graph the same displacements they are from them (where the x axis line is release time):

https://www.desmos.com/calculator/janwc9goqa
plectrum displacement.PNG

The limit of how I can apply this comes from the fact that they are interfacing with a waveguide, while I am interfacing with an array of resonant bandpasses (modal synthesis).

So really, the only thing I can put into my array is an excitation impulse of some kind. In addition to white noise used to model the friction, typically that's some sort of envelope like the one shown graphically in the first post.

The article says:

"In a general hand motion, the displacement y(L, t) can be obtained from a sampled version of (10) as a lowpass filtered version of the position function g(t), with a causal exponentially decaying impulse response."

So essentially this gives me the "attack" phase and max amplitude of the impulse response I want. But in their case I think their decay phase gets handled automatically by their waveguides, while I would have to program my decay phase as an exponential decay from the release moment. The problem then becomes - how do i know how fast to make it decay, which they don't address?

I don't know if you have any further thoughts on this. I find modal synthesis is very good for being able to handle things like inharmonicity and it's really intuitive to understand since you're controlling all the partials directly. But perhaps there are some problems because 99% of articles about string synthesis focus on waveguides so it's like you're on your own with a lot of it as well.

Perhaps I can model the decay curve based on the string tension and knowing how far it was displaced at that point? I dunno.

Thanks again.
You do not have the required permissions to view the files attached to this post.

DaveClark
KVRist
181 posts since 8 May, 2007

Re: How to create an impulse representing a guitar plectrum from this article and formula?

Post Wed Nov 06, 2019 9:41 am

Hi mikejm,

The model that is developed in the article doesn't have an impulse response. The comment you quoted, which you may have misinterpreted, merely decribes the effect of equation (10) on g(t). They are not saying that the model has a impulse response.

This model doesn't have a decay. The forcing function goes abruptly to zero upon release of the string. At this point, the string displacement goes wherever it needs to go to satisfy the laws of physics and the initial and boundary conditions plus whatever effects the forcing function brought into play (i.e. energy and momentum of each part of the string, tension in the string, etc.). At this point, the string motion is no longer dependent on the forcing function, just on the effects it has already produced. The string motion is now governed by your string vibration model. Martin also said this, or so it appears to me.

Regards,
Dave Clark

Return to “DSP and Plug-in Development”