Aegis Sonix Phase Distortion

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Hello!
I've been trying to figure out how to do this sound in synthedit, or c++ for making a SE module

Aegis Sonix Phase Demo

I don't know what this type of modulation is really called. It's from an old Amiga synth.
It has a section called phase with two parameters. Depth and speed.
At zero depth it is just like phase modulation, but if you increase the depth amount it will do something different:

The waveform seems to expand an contract around the zero line. If you imagine a Triangle waveform built up by 3 vertices making up the triangle. Then you add two extra vertices at the zero line in the middle of both edges. Now you can move the two vertices away from each other (expanding) or do the opposite (contract) . So at expanding state a triangle will look more like a house.

You can download the sound example an load it in some wave editor and then zoom in to see what happens. Ignore the parts were it's only phase modulating and look at the parts where it does something else. You should hear and see the difference when you come to the parts I'm talking about.
Last edited by Xenobioz on Sun Aug 31, 2014 6:40 pm, edited 1 time in total.

Post

well, it's simple phase distortion
there's a square where both the positive and negative side get narrower, and the missing part becomes zero, but the PW itself stays 50%
there's also the triangle which you explained, that's really phase distortion
then that same triangle is used for the sine wave

this is easier done in C++
for example, the square:

Code: Select all

p = phase;
m = param*0.5;
if (p < 0.5) { y = (p < m ? 1.0 : 0.0); }
else { y = ((p-0.5) < m ? -1.0 : 0.0); }
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

actually, that square can be done with two PWM pulses

offset the phase of one of them by 50%
then, modulate their PW from 0 to 50% but don't go over 50%
and, the output is pulse1-pulse2

Image

i think you can do it in SE
no idea if the new SE oscillators let you chose at what phase they reset
so if you find it hard to get the second one to be 50% offseted you can do it like this:
use a ramp osc, add two DC offsets to it, the outputs of the result would be used to sync your two Pulse oscillators

EDIT:

Image
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Thanks! I tried the pulse with synthedit and it seemed to work right. Sonix sounds a bit rougher though but probably because of lower resolution.
I'll see if this will help me figure out how to do it for other shapes later. I'm in a hurry right now.
The oscillator is drawable btw.

Post

for the other phase distortion thing, at least for the saw, you can use this:

Code: Select all

p = phase;
m = param;
if (p < m) { y = p * (0.5/m); }
else { y = 0.5+(p-m)*(1.0-m); }
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

i used to love aegis sonix back then :love:
Image

Post

antto wrote:for the other phase distortion thing, at least for the saw, you can use this:

Code: Select all

p = phase;
m = param;
if (p < m) { y = p * (0.5/m); }
else { y = 0.5+(p-m)*(1.0-m); }
Thanks. I guess this code is supposed to be put into an oscillator. Because I haven't made one myself yet. If one would make it as a module to put in after an oscillator in SE would it be much more complex due to Phase? Otherwise I'll have to make a simple saw oscillator with this built in. And then when I get it working make a drawable osc. :borg:

Post

you can do that in SE too, with the math modules, using a saw/ramp (whichever goes upwards)
"if" == comparator
"p" == the saw*

* now, you'll potentially get some side effects because the sawtooth has AA on it, so it's not quite the same as a bare "phase"
a bare phase is really a naive (non-antialiased) saw
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

sonicfire wrote:i used to love aegis sonix back then :love:
Yes me too. I spent most of the time making sounds without understanding anything about the parameters. it took long time until I found a synth that was as fun to tweak as Sonix.
I still love the sound it makes and think it's quite unique sounding.

Post

I tried it using a comparator and a saw. But I didn't quite get there yet. Although when using a sine wave it started to sound very similar. One problem was when I modulated the sound it also modulated amplitude of the signal. That was exactly the same problem I had before posting here too.
I used two math modules and switched between them with the comparator connected to a "many to one".
I used the saw for both phase and Oscillator. I modulated m (param).

Post

i had an error on the else condition
should be { y = 0.5 + (p-m)*(0.5/(1-m)); }

Image

now, i suggest you replace the "mod" knob with a clipper module, and clip the input between slightly above zero and below 1.0 (otherwise you get divisions by zero)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

Thanks! Now it works perfectly. :wheee:

Post

I have now tried it with a drawable waveform version too. It works really well even when you draw a square. :D

The example with the square you gave me Antto was with zero depth btw. In the sound file it was followed by one with depth bigger than zero. I didn't notice it first. Anyway with depth > zero it is just like PWM. :) Still interesting too see the zero depth version since I would never had figured that out.

Thanks a lot Antto! I'm so happy I finally can make a Sonix clone and use it's features on other synths. :party:

Post Reply

Return to “DSP and Plugin Development”