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!