Forums > MaxMSP

Trying to build Pulse Width Modifier

January 19, 2011 | 1:56 pm

Hi all,

I’d like to build an equivalent of a VST plugin called Pulse Width Modifier from Anarchy Sound Software :

I don’t really know where to start. If you can lead me to a good way…


January 19, 2011 | 4:21 pm

The description on kvraudio doesn’t make much sense to me. How a procedurally controlled variable length delay line should be related to a pulsewidth isn’t clear, the next phrase contains an even weirder contradicton: The input signal’s fundamental frequency is a sine wave an thus has nothing related to a pulswidth.
But you could have a look at kink~, the number of accessible controls makes me think, they might have a really simple procedure…;-)
You could also try to create a procedurally controlled variable length delay line. tapin~/tapout~…
Then play around and listen (I didn’t listen to the vst, I have no idea what it soumds like…;-)


January 19, 2011 | 6:13 pm

anarchy rocks. when he came out with the fft stuff in 2003 i almost
bought a windows computer.

January 24, 2011 | 3:07 pm

The description sounds also weird to me. If I would describe what I hear, it’s like the effect of a classic variation of pulsewidth on a square oscillator but for an entire audio Input. Don’t know how this effect is done.

I’ll try kink~ and let you know…

Yeah, these plugs rocks.

January 24, 2011 | 4:02 pm

"it’s like the effect of a classic variation of pulsewidth on a square oscillator but for an entire audio Input"

…that’s a confusing description…

Could you post an audio before/after demo? I’m on mac so I can’t try it out for myself. What does it do to a static sine tone or a sweep?

January 28, 2011 | 10:22 am

I agree it’s a weird description but this is how I hear it. Here is an example (Dry then Wet then Dry)…
If you know a way to create this effect in Max/msp, tell me.

January 28, 2011 | 1:16 pm

if you modulate a delay line with a triangle-like function, you are indeed compressing and expanding the input waveform (changing delay time is changing pitch, is changing period).

so, here is my go on it, only from the short description and listening to your example soundfile, as i can’t run the plug myself.
it’s not there yet, but might serve as a starting point.


— Pasted Max Patch, click to expand. —
January 28, 2011 | 2:48 pm

i would basically say, phase distortion after the inputs base
frequency/zero crossing are analyzed.

should work the better the simpler the input is (which is why
the string pad example tends to distort.)


January 29, 2011 | 1:53 pm

Thanks Volker. It’s kind of that but I think there’s a paramater that follows frequencies to avoid the simple distorsion effect.
Roman, do you how can I try this ?

January 29, 2011 | 2:12 pm

from what i know there is no half wave object coming with maxmsp … so
need to build your own.

quick and dirty version:
highpassfilter at 30 Hz, lowpassfilter at 340 Hz, then use zerox to find
zero crossings and make a sine or rect wave from it. you now have
something like an "oscillator" with a know frequency, which could be
manipulated with kink~or distorted line~driven, phase by phase.
of course you apply that to the input signal an not to the halfwave signal.

if it works and if it gives a nice result depens a lot on the input signal.

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

Forums > MaxMSP