<CsoundSynthesizer>
<CsOptions>

-+P

</CsOptions>
<CsInstruments>

	sr = 44100
	kr = 100
	ksmps = 441
	nchnls = 1

	GLfps	30


	GLpanel	"OpenGL panel", 1024, 300
	GLpanel_end
	FLrun

#include "OpenGL.h"

gi1	ftgen	1,0,256,19,1,1,0,1
gi2	ftgen	2,0,2048,10,1,0,0,0,.3,0,0,0,0,0,.1,0,0,0,0,0,0,0,.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.1
gi3	ftgen	3,0,1024,10,1
	glMatrixMode	$GL_PROJECTION
	glLoadIdentity
	gluPerspective	80,.1,100
	glMatrixMode	$GL_MODELVIEW 
	glLoadIdentity
	glClearColor	0,0,0,1
	glEnable	$GL_DEPTH_TEST
	glEnable	$GL_COLOR_MATERIAL



GLinsert_i $GL_NOT_VALID
	glClear	$GL_COLOR_BUFFER_BIT + $GL_DEPTH_BUFFER_BIT 
GLinsert_i 1


;///////////////////////////////////////////////////
	instr	1
;///////////////////////////////////////////////////


k1	oscili	1,.05,1,.75
k2	oscili	1,.023456,1
k3	oscili	1,.043215,1

t1	=	t(k1)
t2	=	t(k2)
t3	=	t(k3)

	glLineWidth t2*2 +1
	glLoadIdentity

GLinsert	1.02
	glRotate	t2*360,0,0,1

tj	=	-2

	GLdoWhile	
		glPushMatrix
		glTranslate	tj*1.5,(tj*1.5) ^ 4,0
		glRotate		t1*360,t2*360,0,1
		glColor	t1*(2-tj) * .25,t2*tj*.3,1-t1,0
		glutSphere sin((t1*tj*8))*2 ,3,2, 0
		glPopMatrix
		tj = tj+.125
	GLend_doWhile (tj <= 2)

GLinsert	1.1

kenv	linseg	0,.1,1, p3-.3,1,.2,0
a1	oscili	10000*k1*kenv, 100*p4 * (1+k2*.1) , 2
	out	a1


	endin

;//////////////////////////////////////////////
	instr	2
;//////////////////////////////////////////////
k1	oscili	7,.03,gi3
k2	oscili	1,.07,gi3,.25
	gluLookAt 0,t(k1),-1,    t(k2),0,0,     0, 1,0

GLinsert	1.05

	endin




</CsInstruments>
<CsScore>

i2 0 3600
i1 0 3600 1 1.1
i1 6.123 10 1.505
i1 11.321 10 [1.5 * (2^(1/12))]
i1 21.321 10 [1.5 * (2^(1/12))]
i1 13.321 3600 [(2^(1/12))]


</CsScore>
</CsoundSynthesizer>
