Fundamental in VOSIM

mda's icon

Hi,

I have been experimenting with the VOSIM gen~ patch.

In VOSIM, the fundamental (period) is determined by: (N x T) + M, where N is the number of pulses, T is the width of each pulse and M is the delay time before the next burst of pulses.

How would you go about keeping the resulting frequency constant when adjusting the parameters and vice versa?

gen~.vosim.maxpat
Max Patch

Thanks

mda's icon

Anyone?

Floating Point's icon

I think you'd need to do something like this. Somehow implement this logic:

  1. start with default values ie T=2, N=4, M=2, so therefore P=10 (f=100hz)

  2. if P is changed, calculate new value of M, given the default N and T values

  3. if M<0, make it 0 and calculate new value of T

  4. if T< 0.2 decrease N by 1, recalculate T for new N

  5. if T>P/N (given M==0) then increase N by 1, recalculate T for new N

you might be able to do this with max patching, but stuff like this would be easier to do using js

Floating Point's icon

I managed to make a javascript to do it-- hope it works for you

vosim.zip
zip 4.47 KB
max patch plus js file

mda's icon

Hi,

I've only just seen this. I will try the js file and let you know how I get on. Thank you.

mda's icon

Awesome, works great. Thanks. :-)

Now I'm off to get morphing between rhythms and pitches while having the desired target pitch fit clearly with other stuff in Ableton. Cheers.

Floating Point's icon

glad you finally looked at it!

mda's icon

Hey,

Sorry to bump an old thread, but I can't see that you can message a member directly...

@Floating Point are you available to chat privately? I've been playing with this again and want to see if you want to develop this further. :-)

Floating Point's icon

Are you in the Max/MSP facebook group?

I'm in there under my actual name (Terry McDermott)