Pulse Width "Modulation"

Ever considered doing some type of pulse width “modulation” natively in Renoise? It got the tools to do it…just don’t expect exact ratio/percentile control.
Pretty simple process:

image

  • Within an instrument you’ll lay down 3 FX chains
  • “Input” chain sends the same audio to two other FX chains.
    image
  • “Inverse” chain inverts the audio signal and uses the delay DSP to modulate the delayed audio signal. A Hydra DSP or Macro is recommended for controlling the delay L/R offset parameters. Note that you’ll need to mute the source to not amplify the original signal. The Send parameter can be modulate to act as a “Dry/Wet” parameter. Be sure you place a gainer FX on the track to invert the audio.
    image
    -Lastly the “Mixdown” chain to mix both audio signals into one.

As I said earlier, it’s not precise due to the fact ever note operates at a different frequency. You’re modulating the time it takes for a signal to invert and play instead. So technically speaking this is more of a “pulse width time modulation method” but it gets to the point. Beyond that caveat it’s a nifty trick for certain applications if you find you need it.

Demonstrating a saw wave applying this concept.
pulse_width_time_modulation

6 Likes

YO YO thank you so much for sharing this trick!

I got inspired on it and played around with the concept. You know, my tuning formulas, the dc/ringmod trick, …

Now I got a working tuned PWM osc, also the modulation amount will be correct for any note!

Yowsa now we got renoise native monophonic PWM!!!

It works really well, only when PWM > 0.5 there will come through a dc click, most notably close to the PWM = 1.0

Have fun!!!

Native PWM 1a.xrni (4.8 KB)

3 Likes

:grinning: :beers: :fireworks:

1 Like

This is absolutely spicy! Hopefully down the road we can get a truly integrated PWM down the road for some polyphonic goodness!

…now I wonder if I can do some horrifying audio delay with a secondary inverted soundwave. Will have to test this out sometime this week.