<CsoundSynthesizer>
<CsOptions>

-+Y

</CsOptions>
<CsInstruments>

sr      =       100
kr      =       100
ksmps   =       1
nchnls  =       1

	GLfps	24, .5
	GLpanel	"OpenGL panel", 512, 512
	GLpanel_end
	FLrun

#include "OpenGL.h"

;ginpoint	=	18
ginpoint	=	6
gincp	=	17

gi1	ftgen	1,0,256,19,1,1,0,1
gi10	ftgen	10,0,256,10,1

giCOL1	ftgen	21,0,-64, -2,   	.2,.6,.3,	.2,.6,.3,  .8,.3,.2,   .2,.1,.7,  .2,.6,.5,\
					.2,.0,.3,  .8,.3,.2,   .2,.3,.7,  .2,.6,.5,\
					.2,.6,.3,  .8,.3,.2,   .2,.3,.7,  .2,.6,.5,\
					.2,.6,.3,  .8,.0,.2,   .2,.0,.7,  .2,.0,.5,\
					.2,.2,.3,  .8,.3,.2,   .2,.1,.7,  .2,.6,.5,  .2,.6,.3

giCOL2	ftgen	36,0,-64, -2,   	.1,.3,.3,	.2,.2,.5  .8,.3,.8,   .5,.1,.1,  .8,.6,.1,\
					.1,.4,.6,  .8,.3,.8,   .2,.3,.9,  .2,.6,.1,\
					.2,.2,.8,  .1,.2,.3,   .8,.3,.1,  .5,.6,.1,\
					.8,.2,.3,  .8,.0,.4,   .2,.8,.1,  .1,.9,.5,\
					.2,.2,.9,  .1,.8,.2,   .1,.9,.7,  .2,.1,.9,  .9,.1,.3

giCOL	ftgen	35,0,-64,-2,	0

giPNT	ftgen	20,0,-ginpoint*3,-2,   -1,-1,0,  -1,1,0,  1,1,0, 1,-1,0, -1,-1,0, -1,1,0

giBORDER1	ftgen	30,0,-gincp*2,-2,      	-0.75, 2.0,    -0.75, 1.38,   -0.5, 1.25,   0.88, 1.12,   \
					1.0, 0.62,     1.12, 0.1,     0.5, -0.5,    0.2, -1.12, \
					0.3, -1.5,     -0.25, -1.45,   -1.06, -0.3, -1.38, -0.3,\
					-1.65, -0.6,   -2.5, 0.5,     -1.5, 0.5,    -1.5, 2.0,   -0.75, 2.0

giBORDER	ftgen	32,0,256,-2,	0
giNORMAL	ftgen	31,0,-gincp*2,-2,	0

	gleBuildNormals	giNORMAL, giBORDER1, gincp*2

giJOIN	ftgen	22,0,16, -2,	$TUBE_NORM_FACET + $TUBE_JN_ROUND + $TUBE_JN_CAP,\
				$TUBE_NORM_FACET + $TUBE_JN_ANGLE + $TUBE_JN_CAP,\
				$TUBE_NORM_FACET + $TUBE_JN_CUT   + $TUBE_JN_CAP,\
				$TUBE_NORM_FACET + $TUBE_JN_RAW   + $TUBE_JN_CAP

	glEnable	$GL_DEPTH_TEST	
	glEnable	$GL_CULL_FACE	
	glEnable	$GL_LIGHTING
	glEnable	$GL_LIGHT0
	glEnable	$GL_COLOR_MATERIAL
	glEnable	$GL_NORMALIZE

	glFrontFace $GL_CW	
	glMaterial $GL_SPECULAR, .8,.8,.8,1
	GLshininess 50
;	glShadeModel $GL_FLAT
	glColor3	1,1,1

	gleSetJoinStyle	$TUBE_NORM_EDGE + $TUBE_JN_ROUND + $TUBE_JN_CAP

GLinsert_i $GL_INIT

	glMatrixMode	$GL_PROJECTION 
	glLoadIdentity
	gluPerspective	60,.1,200
	glMatrixMode	$GL_MODELVIEW 
	glLoadIdentity
	glClearColor	0,0,0,1
GLinsert_i $GL_NOT_VALID
	glClear	$GL_COLOR_BUFFER_BIT + $GL_DEPTH_BUFFER_BIT 

GLinsert_i 1



;///////////////////////////////////////////////////
	instr	1
;///////////////////////////////////////////////////


k1	oscili	1,.0212,1,.75
k2	oscili	1,.02113456,1
k3	oscili	1,.02105,1
k3b	oscili	4.5,.043215,1,.25
k4	oscili	1,.2,1
k5	oscili	1,2,1
k6	oscili	1,.1,gi10
kph	phasor	.02
kJoin	tab	kph*3.99, giJOIN 
	gleSetJoinStyle	kJoin 

;	GLvphaseseg 	kphase, ioutab, ielem,   itab1,idist1,itab2 [,idist2,itab3,...,idistN-1,itabN] 
	GLvphaseseg 	k5,     giCOL, ginpoint*3, giCOL1,1,giCOL2
	vcopy		giBORDER,giBORDER1, gincp*2
	vmult		giBORDER, .09+.4*k4, gincp*2

	glLoadIdentity
	glTranslate	0,0,-5

	glPushMatrix
	glRotate		k1*360,0,1,0
	glRotate		k2*360,1,0,0
	glRotate		k3*360,0,0,1

	gleExtrusion	gincp, giBORDER, giNORMAL, k6,1-k6,k3, ginpoint, giPNT, giCOL

	glPopMatrix

GLinsert	1.1
	
	endin



</CsInstruments>
<CsScore>

i1 0 3600 

</CsScore>
</CsoundSynthesizer>
