PM (of sine) with much more than (roughly) one cycle shift?


#1

Hi,
(this is BTW my first post at all, after a long time of being a passive reader, owning 2 axoloti, but having not spent much time for the initially intended project(s), ... well, I suppose, it will not yet get much better :wink: )

I would like to do phase modulation of a sine oscillator (with frequency 0, i.e. used as a shaper) with much more that +/- 2pi phase shift. I do not yet have a good overview over all objects, but I currently use a "osc/sine lin" (A) @ frequency 0 and modulate this module by another sine (B). Of, course there is an attenuator in between to control the amount of non linearity.
My simple solution to achieve the stated goal now is simply to use a "tiar/dist/modulo/" between modulator (B) and nonlinearily (A). But, of course when the phase wrapping begins, some "high frequent jumps" appear in the signal.

I suppose there is a better way, or combination of modules, correct?

Best regards
opt.x


#2

Hi @opt.x,

To amplify audio signal above normalisation without saturation, you can use the factory/math/<< object.

you can try the tiar/dist/fold object instead of the tiar/dist/modulo chained with a tiar/dist/DPSoftClip.

regards and happy new year !


#3

Another - and simpler - option consists in using a standard osc/sine with frequency almost set to zero.

x8PMindex.axp (4.5 KB)

The TSG/math/map maps the range of the adsr action (so that you can reverse it), the "<<" object denormalize the control signal of the vca by a x8 factor.

The "dial b" sets the carrier frequency to "almost zero".


#4

Thank you very much for the fast (and inspiring) answers, @SmashedTransistors ! (I also learned right now how to make better use of the scopes ...)
Using tiar/dist/fold sounds also interesting, but it is not the "natural wrapping" of if phase in 2pi space I intend to implement.

Thanks also for the second post including the patch. I tried similar things before with osc/sin, however since I want also potentially complete static sounds, this might be not my solution, so I useda "osc/sine lin" @ frequency 0 . Frequency cannot be exactly 0 at osc/sine , correct?

I observed in your patch that if I increase the bit shifting at math/<< further to 5 or above, the numbers "fold back" and the overtone spectrum is reduced again. This seems natural based on the mathematics/number formats (probably) used here. I do not know if this is a property of K, the following VCA or the sine oscillator phase inlet.

BTW, where can I read an introduction about the used formats (for K and S), "number spaces" (bits and ranges) used, normalized value height , ... in the axoloti platform. I was afraid, I will have to do this in near future ... (Sorry, if I do not yet use the correct terms ...)

It could also be that the value jumps in my solution using modulo and sine lin´s phase input are generated just inside the osc, and not already inside the modulo module. I will check this in more detail soon ...

Thanks again and regards!
opt.x


#5

The tiar/dist/modulo object is anti aliased, that means that to avoid high frequency artifacts the transient is not instantaneous. That's good as a distortion, but not good as a phasor.

The tiar/dist/fold is like a zero frequency triangle. Using a soft clip as a waveshaper would lead to the result you expect.

You are right about the formats. A value of 64 on the objects dials correspond to 1<<27 (signed q27 encoding on 32 bit words).


#6

you can have a look at the great tutorial by @Sputnki