<CsoundSynthesizer>
<CsOptions>

-+Y

</CsOptions>
<CsInstruments>

sr      =       100
kr      =       100
ksmps   =       1
nchnls  =       1

giFPS	=	30
	GLfps	giFPS, .5
	GLpanel	"OpenGL panel", 512, 512
	GLpanel_end
	FLrun

#include "OpenGL.h"

ginpoint	=	18
gincp	=	17

giPosSine	ftgen	0,0,256,19,1,1,0,1
giSine	ftgen	0,0,256,10,1


giBORDER1	ftgen	0,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	0,0,256,-2,	0
giNORMAL	ftgen	0,0,-gincp*2,-2,	0

gleBuildNormals	giNORMAL, giBORDER1, gincp*2

giSTARTXF	ftgen	0,0,-3*2,-2,		.12,0,0,0,.12,0

giXFORMD	ftgen	0,0,-3*2,-2,		1.5,0,0,0,2.5,0

	
	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, 0,.8,.8,1
	GLshininess 19
	glColor3	1,0,0

	gleSetJoinStyle	$TUBE_NORM_EDGE + $TUBE_JN_ROUND + $TUBE_JN_CAP
	gleTextureMode	$GLE_TEXTURE_ENABLE + $GLE_TEXTURE_VERTEX_FLAT
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,	giPosSine,.75
k2	oscili		1,   .02113456,	giPosSine
k3	oscili		1,   .02105,	giPosSine
;k3b	oscili		4.5, .043215,	giPosSine,.25
k4	oscili		1,   .2,		giPosSine
;k5	oscili		1,   2,		giPosSine
k6	oscili		1,   .1,		giSine
k7	oscili		1,   .05,		giPosSine
kph	phasor		.01

	vcopy		giBORDER,giBORDER1, gincp*2
	vmult		giBORDER, .07+.5*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

	gleLathe	 	gincp,	  \;* number of contour points
             		giBORDER,   \;* 2D contour 
             		giNORMAL,	  \;* 2D contour normals 
             		k6,1-k6,k3, \;* up vector for contour 
             		.1,	  \;* spiral starts in x-y plane 
             		.8,          \;* change in radius per revolution 
			0,	  \;* starting z value 
             		0,          \;* change in Z per revolution 
             		giSTARTXF,  \;* starting contour affine xform 
             		giXFORMD,   \;* tangent change xform per revoln 
             		0,	  \;* start angle in x-y plane 
             		360*1.6	   ;* degrees to spiral around 

	glPopMatrix

GLinsert	1.1
	
	endin



</CsInstruments>
<CsScore>

i1 0 3600 

</CsScore>
</CsoundSynthesizer>
