First time here? Check out the FAQ!
x

Is it possible to daisychain SlipSticks to model a string?

0 votes
560 views
Hi there,

I can't get my head around this:

You can consider a string as being many masses (in reality infinite) attached to each other by springs. So if you push (or pluck) one of those masses the whole system starts to oscillate at certain frequencies. In case of a string those frequencies would be integer multiples of the fundamental which is determined by the length of the string. The SlipStick is a physical model of a mass attached to a spring, so I thought it could be possible to daisychain many of them to model a string.

I tried using the Stretch output of the first SlipStick as ControlInput to the second. That works quite well but in order to simulate string behaviour the second SlipStick needs to control the first one as well when the initial pluck is reflected on the string's boundaries. The travelling wave would be bidirectional. Should I use feedbackLoops to do that? Or is this all just a weird idea that wouldn't work?

The reason I'm doing this is that if I'm able to control the behaviour of each spring-mass system involved it should be possible to model nonlinearities: in reality there are no perfect integer multiple harmonics. Also it could be interesting to extend that idea to 2-dimensional and 3-dimensional systems.

Thanks!
asked Feb 24, 2016 in Sound Design by kymaguy (Virtuoso) (10,580 points)
edited Feb 24, 2016 by kymaguy
Fascinating idea Gustl :)

1 Answer

+1 vote
To model a reflection, yes, you could use FeedbackIn and FeedbackOut.  For string reflections, you would probably also want to negate the value.

It may be that the best way to propagate the reflection would be to create a second chain of SlipSticks going the other direction.  So you would have a leftward-going chain and a rightward-going chain and they would be cross coupled with each other.

Curious to hear the results!
answered Feb 24, 2016 by ssc (Savant) (127,080 points)
Thanks SSC :) I made some further experiments and run into certain difficulties: First of all it's difficult to avoid clipping, even thought the levels of the SlipSticks are all very low. The level in this case would be equivalent to dampening the force which applies to the SlipStick to the left. However I think that's doable.
Second problem is the cross coupling: Let's consider 2 masses m1 & m2. for the leftward going chain I'll call them m1L m2L and for the rightward-going m1R & m2R. Besides the feedbackLoops representing the boundaries of the string I also need to couple the corresponding masses. A simplified signal flow would be:

rightward: feedbackL - m1R - m2R - feedbackR
leftward: feedbackR - m1L - m2L - feedbackL

Now m1R corresponds to m2L and m2R corresponds to m1L. By correspond I mean the mass is actually the same, just the direction is changing. So I'd need to cross couple those as well which is not possible, m1R can't feed m2L while m2L is feeding m1R. Another feedbackLoop to do that may be an option but I think that can get veeeery complicated when more masses are involved. Maybe I'm thinking about this wrong.. Any suggestions?
less feedback?

(i'm out of my depth here)

going to shut up and read from now on here
Here's a short video of the results so far: https://youtu.be/m6XqKhA4ET8
@sean thanks, I've tried that, the problem is the right setting of the SlipFriction as this causes more and more overshooting. No need to shut up, everything can help :)
does your video have audio?
nope, I've set it to 1 hz to be able to see it ;)
cool, thanks :)
plus more than 12 characters of ASCII text for this to be permsable as a comment.
xo <3
...