Forums > MaxMSP

Physical Models (bowed string)

September 19, 2013 | 6:57 am

I’ve been trying to create a physical model of a bowed string. So far I’ve experimented with a plucked string instead. That model looks like this:
<code>

– Pasted Max Patch, click to expand. –

</code>

Does anyone know how to change the excitation source to a bow instead of a pick? The articles I have found are way over my head. I’ve studied some Reaktor patches, but can’t translate them to MSP.


September 19, 2013 | 7:27 am

Here’s one way of doing it;

<code>

– Pasted Max Patch, click to expand. –

</code>

BTW, your rig has a pitch scaling problem going on, hehe.


September 19, 2013 | 7:54 am

I know. I didn’t bother to look at the tuning yet. Is it happening because the filter introduces one sample delay? Or has it got to do with the rounding of delay times in [tapout~]? Or both.

Anyway your solution is pretty straight-forward. I came across the same solution on the internet aswell. The one I found is a bit more fine tuned though.

<code>

– Pasted Max Patch, click to expand. –

</code>

But I believe there are way more convincing models out there. They are based on more math, taking the velocity and force of the bow as input. I’m just wondering if there are some examples in Max.


September 19, 2013 | 12:47 pm

I would like to make the model explained in this article: https://ccrma.stanford.edu/~jos/BowedStrings/BowedStrings.pdf


September 21, 2013 | 2:09 am

+1 for that request Dave. I love reading Julius’ papers but I just don’t have the math to translate them into MaxMSP


September 22, 2013 | 12:48 am

<code>

– Pasted Max Patch, click to expand. –

</code>

Here’s my first shot at Julius’ described model. I think it isn’t what’s supposed to happen. But I do think this is the basic mechanism. I suppose you can get more pleasant results when you know the function for the lookup table. And when you know how to vary the lookup table. Julius describes that the lookup table changes when you change the applied force.

Maybe someone can look at the patch..


November 23, 2013 | 3:56 am

I’ve been fiddling around with this lately. This model works pretty well, especially when you use your mouse as a controller. It’s based on research by Julius O. Smith. And I ripped some parts of the patch from the Synthesis ToolKit in C++ of Perry R. Cook & Gary P. Scavone.

To get the patch to work make sure you set the signal vector size to 1 sample. Otherwise, the tuning will be off. I could have wrapped a part of the patch into a poly~ to set the vector size to 1, but I didn’t do that just yet. I also know gen~ is better for this kind of application. But I don’t own gen~.

<code>

– Pasted Max Patch, click to expand. –

</code>


November 23, 2013 | 6:06 am

–removed this double post–


Viewing 8 posts - 1 through 8 (of 8 total)