Forums > MaxMSP

Bidirectional Digital Waveguide.

July 1, 2010 | 12:49 pm

Hi guys,

Could someone tell me if I am doing this correctly. I’m trying to make a bidirectional digital waveguide. My overall goal is to try and physically model the sitar. I am also trying to figure out how to make a dynamically changing delay length so as to model the sitar bridge. Any help would be greatly appreciated.


July 4, 2010 | 9:07 pm

anyone?


July 7, 2010 | 8:58 am

i’m not familiar with exactly the approach you are trying to take (are you following a paper?). You have some problems with the tuning. Firstly you want to send a signal to tapout~ in order to get a delay of a fractional number of samples. Secondly, i would recommend running the part of your patch that features a feedback loop inside a poly~ so that you can lower the signal vector size. Otherwise you will find that you can’t play high notes.

Here is a karplus strong patch which shows these things:

oli

http://www.olilarkin.co.uk

Attachments:
  1. karplus.zip

July 7, 2010 | 10:33 am

@ daveronan

here’s an early incarnation of a string model of mine, which underlines everything oli says in his response;

@ oli larkin

without wishing to hijack the original topic, can you elaborate on your remarks re poly~ allowing lower vector sizes in this context; i too have found that tuning in the upper register becomes problematic.

– Pasted Max Patch, click to expand. –

July 7, 2010 | 11:49 am

with a tapin~ / tapout~ feedback loop, the delay time can’t go lower than the signal vector size. This means the highest pitch you can produce is limited by the vector size… for sr 44.1 , sigvs 512 the highest pitch is

44100./512 =86.13hz

or for sigvs 32 the highest pitch is

44100./32 = 1378.125hz

so a sigvs of 8 is probably good, which gives you up to 5512.5hz

you can set this with an argument to poly~ … vs 8 for example, which will run the contents of your poly patch at the lower vector size.

hope that helps,

oli


July 7, 2010 | 12:33 pm

the shorter vectorsize simply allows tapout to make use of shorter delay times thats all about it.

but then there is teeth~.


July 7, 2010 | 12:36 pm

Thanks oli, this couldn’t be any clearer, and solves my tuning issues – I can’t recall exactly where, but i remember reading in related literature that higher-register tuning is problematic in string modelling and impulse response systems anyway


July 19, 2010 | 8:48 pm

Hi guys,

Thanks for taking the time to get back to me. I have spent a lot more time on my model and I am starting to get results. I have taken everything that ye have said into account but I am still unsure if I have correctly implemented a bi-directional digital waveguide. I think I may be close though.

I am taking this model from a paper by Matti Karjalainen and Vesa Valimaki. The title of the paper is "Plucked-String Models: From the Karplus-Strong Algorithm to Digital Waveguides and Beyond". I am trying to implement the plucked string with bridge output model.

If any of you could shed some more light on the subject it would be much appreciated. The two updated files are attached.


July 19, 2010 | 9:56 pm

Apologies! I posted the wrong file! Please find the correct one attached,


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