Irregular Sine Waves

For general discussion related FlowStone
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Irregular Sine Waves

Post by tulamide »

martinvicanek wrote:Tulamide, why do you insist that the wave be convex in the upper half and concave in the lower? KG is right, such a requirement leaves very little headroom for modulation if you want the wave to have continuous slope at the joints. It feels unnatural to me, I don't see the rationale behind it.

I just insist that the curve should be sinusoidal at all times. A sine wave is convex at all times. Here's what happens, when you squeeze a sine (see .fsm). You can clearly see it stays convex, no matter how much you push.

I just got another answer from the other forum, which is using polynomials and a gauss function. It is visual and behaves correctly inbetween a certain limit. I have to convert it first for you to be able to see it, but it really seems cubic is the correct way to go. And that probably isn't doable at samplerate :(
Attachments
sine_stretching.fsm
(6.78 KiB) Downloaded 887 times
"There lies the dog buried" (German saying translated literally)
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Irregular Sine Waves

Post by KG_is_back »

You are missing the point... We are not merely sqeezing (half)sines - we also want them to seamlessly joint.

I think I know about a reasonable compromise. the second half of the sine is convex and first half is concave. Perhaps if we start to drop the crurvature just after it crosses zero (instead of before) to reach correct curvature... with the FM this can be done by phase-shifting the modulation signal forward a little. With my approach of distorting the ramp, I have no idea...
User avatar
martinvicanek
Posts: 1334
Joined: Sat Jun 22, 2013 8:28 pm

Re: Irregular Sine Waves

Post by martinvicanek »

The ramp IS the phase. Distorting the ramp IS phase modulation. ;)
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Irregular Sine Waves

Post by tulamide »

Maybe we just talked past another?

sinusoidal.png
sinusoidal.png (18.36 KiB) Viewed 17108 times

The lines enclosed in red are not sinusoidal waves (they are the "opposite", so to speak), the ones in green are.

Here is an example of a fully sinusoidal wave that is continuous on either side and in the center:
sine-1.png
sine-1.png (1.9 KiB) Viewed 17108 times


Also, I converted the project from the second answer for you to see. It is an online interactive page. Just click the link, wait for the start screen to vanish and then move the slider to see the changes. Note that it is fully sinusoidal AND continuous. Link: https://db.tt/ILkzu55c

I've attached the math used to do this. It is a text file of javascript code. The function "calc_coefs" is called with m (the mid point's relative x position) on every change of the slider to get the 10(!) unknowns to solve the equation of

Code: Select all

if x < m 
    y = (a0*x^4+b0*x^3+c0*x^2+d0*x+e0)
else
    y = (a1*x^4+b1*x^3+c1*x^2+d1*x+e1)
Attachments
(irregular sine)js.rar
contains a .txt file. This ending is not allowed to be attached, therefore an archive.
(932 Bytes) Downloaded 1013 times
"There lies the dog buried" (German saying translated literally)
Xtinct
Posts: 106
Joined: Fri Feb 11, 2011 12:06 am

Re: Irregular Sine Waves

Post by Xtinct »

To get the same shape sine as in the link simply PM/FM the sine with a second sine offset by 90 degrees
you will not be able to get full PW mod before it distorts but you will get as much as is displayed in the link.

Edit added example
Sine PM PW.fsm
(21.09 KiB) Downloaded 944 times
BobF
Posts: 598
Joined: Mon Apr 20, 2015 9:54 pm

Re: Irregular Sine Waves

Post by BobF »

BobsDoubleIntegratedSaw.fsm
(327.86 KiB) Downloaded 903 times

Hello gang,

Just another way to get close to this "Irregular Sine Wave"

Kind of fun, lots of different ways here! Also tried integrating a pulse wave but it had to much dc offset.

P.S., does anyone have a GOOD dc blocker?

Later then, BobF.....
User avatar
martinvicanek
Posts: 1334
Joined: Sat Jun 22, 2013 8:28 pm

Re: Irregular Sine Waves

Post by martinvicanek »

[...] does anyone have a GOOD dc blocker?
A simple 1 pole highpass with cutoff = 20 Hz should do the job. FS Guru is your friend. ;)
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Irregular Sine Waves

Post by tulamide »

Guys I love your examples. They all show the creativity we all have.

@xtinct
It is awesome to see with how little effort this behaviour at least can be achieved.

@all
Maybe I seem like a child that is stubborn just because. But I assure you I'm not. It is rather that I see how close we are. I see Martin's awesome algorithmic oscillators. They consist of just one ASM code module. You input frequency and phase and it spits out a stable waveform, whose cycle is constant in length for a given freq.

I so hoped that this irregular thing could also end like this, just an ASM module with a freq input and some kind of phase input, only that it not just moves the start point of the cycle around, but instead moves the mid-point.

And I know it can be done. I know it because I already have done it. Just not for audio. I can shape curves to look exactly like the audio signals should be. And I don't use magic - it is just plain cubic interpolation. Those of you who are reading here and are not quite sure what I mean, look at the images:

Image
Here you see two points connected by a line. But that line doesn't exist. It is completely estimated by cubic interpolation. The only known values are the two points, and then math calculates how to connect them. Such a thing like the above can also be done with linear interpolation (aka lerp).

Image
Here you see a third point. This one is used indirectly. It means that the calculation tries to connect the two outer points, but while doing so tends towards the third point. Something like this can also be achieved with quadratic interpolation (aka qarp)

Image
Now there are two additional points. But you already know the game. The math tries to connect the outer points, but tends towards the two other points while doing so. This is cubic interpolation (aka cubic). The additional points are so called control points. They only influence the line, but they are not connected to it. Each end point has one control point.

For the irregular wave we use 3 instead of two points, the line has to connect. That makes a total of two cubic lines generated from 3 base points and 4 control points. For example:

Image

Now you may think, this is all so complicated. But it isn't. I talked about lerp earlier. If you lerp two lerps, the result is a qarp.

The equation for a lerp is

Code: Select all

pos = a*(1-t) + b*t
# with a and b the start and end points and t the t-value (in case of audio either the time or sample pos)
# if t = 0 then pos = a and if t = 1 then pos = b and if 1 > t > 0 then somewhere between a and b


so lerping two lerps is

Code: Select all

pos1 = a*(1-t) + b*t
pos2 = b*(1-t) + c*t
q = pos1*(1-t) + pos2*t
# with a and c being the end points and b the control point

We made qarp.

And yes, it is just as easy to get to cubic. cubic is just lerping two qarps

Code: Select all

pos1 = a*(1-t) + b*t
pos2 = b*(1-t) + c*t
pos3 = b*(1-t) + c*t
pos4 = c*(1-t) + d*t

q1 = pos1*(1-t) + pos2*t
q2 = pos3*(1-t) + pos4*t

cubic = q1*(1-t) + q2*t
# with a and d being the end points and b and c the control points


If you do this for enough t-values you get a line a curve, etc. Since this math is so simple (no exponents, no roots, just multiplication and addition/subtraction), I am absolutely sure it can be done in DSP/ASM.

Maybe we should forget about the word "sine" and call it a spline oscillator instead. We would have created something completely new, that is sonically rich and useful, plus works in realtime, without any wavetables. That makes it very versatile and modulator-friendly.

Is it really just a dream?
"There lies the dog buried" (German saying translated literally)
Xtinct
Posts: 106
Joined: Fri Feb 11, 2011 12:06 am

Re: Irregular Sine Waves

Post by Xtinct »

Wow forget about sine, just when I'd come up with a new version, oh well here it is anyway.
Sine PM PW2.fsm
(21.68 KiB) Downloaded 905 times
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Irregular Sine Waves

Post by tulamide »

Xtinct wrote:Wow forget about sine, just when I'd come up with a new version, oh well here it is anyway.
Sine PM PW2.fsm

Haha, don't worry! There's a difference between "forget about sine" and "forget about the word sine", so keep it coming!

This last version seems to work differently by shaping the sine to the right? Looking at the ASM-code doesn't help me as you might have guessed already, but whatever you cook there - don't stop!
"There lies the dog buried" (German saying translated literally)
Post Reply