• ### Another modulation technique (experimenting with wavesets)

Here's a patch demonstrating a modulation technique that I just found while I was experimenting with waveset operations as described by Trevor Wishart (I'm not sure how this technique should be called, "waveset modulation" might not be a good name):

waveset-modulation.pd

Does anyone know, whether this or something similar has been used before?

• Posts 15 | Views 1259
• Thank you for humoring my digression.

This works way better. I knew that my patch was playing each waveset for the same amount of time rather than for the length of the waveset. I wasn't sure how to address it, but it works way better using vline~.

• To be honest, I hadn't tested the patch before I shared it. Which I definately should have, because I just found some serious distortion problems! Not the kind of distortion that you may want, of course ...

The problem is this: In a digital (sampled) signal you can never really find zero-crossings. All you can get is the first sample after the zero crossing. So I had to calculate an imaginary point between the samples n (> 0) and n-1 (< 0) using linear interpolation. The point of zero crossing then is: n - x[n] / (x[n] - x[n-1])

Fortunately, the vline~ object is sub-sample accurate and can handle this!

So here is an improved version of the patch: waveset-experiments-ms.pd

One more problem might be pd's limited precision. But I've never worked with "double precision" and it would probably be an overkill for this kind of problem anyway.

• I just returned to this and made another patch now dealing with wavesets in real-time. Could probably be done much easier, but anyway ... wavesets-real-time.pd

• Two of the four counters could be replaced by rpole~, so it's maybe better like this (probably not clearer, though): wavesets-real-time.pd

• wavesets are often only created unipolar/halfwave style - like in the PPG wave to blofeld line of synthsizers - but today we have enough RAM to do a full wave, and in a language like pd it can become complicated to read out halfwaves as full waves, when the phase accumulator itself should be modulated (doing realtime FM and PM on a wavetable generator and things like that, but also situations of interpolated readout, resetting the phase and so on)

• @Obineg Is it really a Pd thing or a problem with digital signals in general? Not sure if this is what you mean, but I made the following observation: Subtracting the result of a halfwave readout of [cos~] from the regular full wave readout doesn't give zero output for the second half of the cycle. The differences wouldn't cause any audible effect in most situations, I guess, but maybe you get into trouble with this when doing more complicated stuff like you mentioned. Or am I missing something else?

• @manuels said:

Subtracting the result of a halfwave readout of [cos~] from the regular full wave readout doesn't give zero output for the second half of the cycle.

• @manuels

pardon, i was picking out the special case of waveset-releated applications when i was talking about wavetable synthesis, because that is where you often want to calcualte "FM" "PM "AM" "RM" kind of stuff onto existing waves.

while i might have lost a bit what the original problem was about, i strongly recommend to work with full waves only, because it somehow looks better. for calculation or for visual control a half wave often says nothing about what happens and if your code was right.

tell me on which of the files above i should look again and what problem you want to solve and i´ll try to give a better answer.

• @Obineg Sorry for having confused things a bit ... I didn't use halfwave readout anyway (actually I hadn't even thought about it until you mentioned it). So no problems here to solve.

Posts 15 | Views 1259
Internal error.

Oops! Looks like something went wrong!