Trying to build Pulse Width Modifier

Jan 19, 2011 at 1:56pm

Trying to build Pulse Width Modifier

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…


Jan 19, 2011 at 4:21pm

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…;-)


Jan 19, 2011 at 6:13pm

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

Jan 24, 2011 at 3:07pm

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.

Jan 24, 2011 at 4:02pm

“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?

Jan 28, 2011 at 10:22am

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.

Jan 28, 2011 at 1:16pm

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. –
Jan 28, 2011 at 2:48pm

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.)


Jan 29, 2011 at 1:53pm

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 ?

Jan 29, 2011 at 2:12pm

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.


You must be logged in to reply to this topic.