# Phase offsets and ranges of several basic oscillators

I leave this here for others to look up phase ranges and offsets to start an oscillator at its lowest value.

``````(
{[
// phase value between
//			[0..4]
// offset to lowest point
// 			0.5 * 4 = 2
LFPar.ar(10, iphase:  0.5  * 4  ).range(0, 1),

// phase value between
//			[0..2]
// offset to lowest point
// 			0.75 * 2 = 1.5
LFCub.ar(10, iphase:  0.75 * 2  ).range(0, 1),

// phase value between
//			[0..2]
// offset to lowest point
// 			0.5 * 2 = 1
LFSaw.ar(10, iphase:  0.5  * 2  ).range(0, 1),

// phase value between
//			[0..2pi]
// offset with lowest point
// 			0.75 * 2pi = 1.5pi
SinOsc.ar(10, phase:  0.75 * 2pi).range(0, 1),

// phase value between
//			[0..1]
// offset to lowest point
// 			0 * 1 = 0
VarSaw.ar(10, iphase: 0    * 1  ).range(0, 1),

// phase value between
//			[0..4]
// offset to lowest point
// 			0.75 * 4 = 3
LFTri.ar(10, iphase:  0.75 * 4).range(0, 1),

// phase value between
//			[0..1]
// offset to lowest point
// 			0.5 * 1 = 0
LFPulse.ar(10, iphase: 0.5   * 1).range(0, 1),
]}.plot(0.1)
)
``````
1 Like

Excellent list! Thanks very kindly. However here, for some reason, LFPulse requires iphase:0.5?

1 Like

Ps. With mid-point ascending also. (LFPar and VarSaw are non-zero.)

``````(
{[
// phase value between
//			[0..4]
// offset to lowest point
// 			0.5 * 4 = 2
// offset to mid point ascending
// 			0.75 * 4 = 3
LFPar.ar(10, iphase:  0.5  * 4  ).range(0, 1),
LFPar.ar(10, iphase:  0.75  * 4  ).range(0, 1),
// phase value between
//			[0..2]
// offset to lowest point
// 			0.75 * 2 = 1.5
// offset to mid point ascending
// 			0
LFCub.ar(10, iphase:  0.75 * 2  ).range(0, 1),
LFCub.ar(10, iphase:  0  ).range(0, 1),
// phase value between
//			[0..2]
// offset to lowest point
// 			0.5 * 2 = 1
// offset to midpoint ascending
// 			0
LFSaw.ar(10, iphase:  0.5  * 2  ).range(0, 1),
LFSaw.ar(10, iphase:  0  ).range(0, 1),
// phase value between
//			[0..2pi]
// offset with lowest point
// 			0.75 * 2pi = 1.5pi
// offset to mid point ascending
// 			0
SinOsc.ar(10, phase:  0.75 * 2pi).range(0, 1),
SinOsc.ar(10, phase:  0).range(0, 1),
// phase value between
//			[0..1]
// offset to lowest point
// 			0 * 1 = 0
// offset to mid point ascending
// 			0.25
VarSaw.ar(10, iphase: 0    * 1  ).range(0, 1),
VarSaw.ar(10, iphase: 0.25  ).range(0, 1),
// phase value between
//			[0..4]
// offset to lowest point
// 			0.75 * 4 = 3
// offset to mid point ascending
// 			0
LFTri.ar(10, iphase:  0.75 * 4).range(0, 1),
LFTri.ar(10, iphase:  0).range(0, 1),
// phase value between
//			[0..1]
// offset to lowest point
// 			0 * 1 = 0
LFPulse.ar(10, iphase: 0.5).range(0, 1),
]}.plot(0.1)
)
``````
1 Like

However here, for some reason, LFPulse requires iphase:0.5?

thanks, corrected in the original post.

YES!!! I’ve wasted so much time on this before. Thanks a lot!