<CsoundSynthesizer>
<CsOptions>

-+Y

</CsOptions>
<CsInstruments>

	sr = 22000
	kr = 110
	ksmps = 200
	nchnls = 1

	GLfps	30, .5
	GLpanel	"OpenGL panel", 512, 512
	GLpanel_end
	FLrun

#include "OpenGL.h"

gi1	ftgen	1,0,256,19,1,1,0,1

gi10	ftgen	10,0,256,10,1

	giTex1	GLloadTexture "moebius.png",  $PNG_ALPHA,$GL_REPEAT
	giTex2	GLloadTexture "fractal9.png",  $PNG_ALPHA,$GL_REPEAT
	giTex3	GLloadTexture "fractal2.png",  $PNG_ALPHA,$GL_REPEAT
	giTex4	GLloadTexture "fractal13.png", $PNG_ALPHA,$GL_REPEAT
	giTex5	GLloadTexture "fractal14.png", $PNG_ALPHA,$GL_REPEAT
	giTex6	GLloadTexture "fractal15b.png",$PNG_ALPHA,$GL_REPEAT
	giTex7	GLloadTexture "fractal12.png", $PNG_ALPHA,$GL_REPEAT
	glBlendFunc	$GL_SRC_ALPHA, $GL_ONE_MINUS_SRC_ALPHA
GLinsert_i $GL_INIT

	glMatrixMode	$GL_PROJECTION 
	glLoadIdentity
	gluPerspective	45,.1,10
	glMatrixMode	$GL_MODELVIEW 
	glLoadIdentity
	glClearColor	0,0,.2,1

	glEnable	$GL_DEPTH_TEST	

	glEnable	$GL_TEXTURE_2D	

	glEnable	$GL_LIGHT0
	glEnable	$GL_COLOR_MATERIAL
	glEnable	$GL_NORMALIZE

	glMaterial $GL_SPECULAR, .8,.8,0,1
	GLshininess 3
;	glShadeModel $GL_FLAT

	
GLinsert_i $GL_NOT_VALID
	glClear	$GL_COLOR_BUFFER_BIT + $GL_DEPTH_BUFFER_BIT 

GLinsert_i 1


;///////////////////////////////////////////////////
	instr	1
;///////////////////////////////////////////////////


;k1	oscili	1,.02,1,.75
;k2	oscili	1,.013456,1
k3	GLoscili	2,600.1231,1
k3b	GLoscili	2,721.1234,1,.25
k4	GLoscili	1,823.2341,1
k4b	GLoscili	1,752.234,1,.25

k1	GLphasor 	500
k2 	GLphasor	500

k_ = k4*7
if	k_ < 1 kgoto then1
if	k_ < 2 kgoto then2
if	k_ < 3 kgoto then3
if	k_ < 4 kgoto then4
if	k_ < 5 kgoto then5
if	k_ < 6 kgoto then6

	kTex1 = giTex6
	kTex2 = giTex5
	kBool = $GL_TRUE
	kgoto endif
then1:
	kTex1 = giTex1
	kTex2 = giTex4
	kBool = $GL_FALSE
	kgoto endif
then2:
	kTex1 = giTex2
	kTex2 = giTex3
	kbool = $GL_TRUE
	kgoto endif
then3:
	kTex1 = giTex3
	kTex2 = giTex2
	kBool = $GL_TRUE
	kgoto endif
then4:
	kTex1 = giTex7
	kTex2 = giTex1
	kbool = $GL_FALSE
	kgoto endif
then5:
	kTex1 = giTex4
	kTex2 = giTex6
	kbool = $GL_TRUE
	kgoto endif
then6:
	kTex1 = giTex5
	kTex2 = giTex7
	kBool = $GL_TRUE
endif:




	glLoadIdentity
	k1	GLmul k1,360
	k2	GLmul k2,360
	glRotate		k2,1,1,0
	glRotate		k1,1,0,0
	glRotate		k1,0,0,1
	glDisable	$GL_LIGHTING
	glDisable	$GL_BLEND
	glDisable	$GL_CULL_FACE

	k4_	GLsub	k4, .8
	k3_	GLsub	k3, .8
	k3b_	GLsub	k3b, .8

	glColor		k4_,k3_,k3b_,1
	glBindTexture	kTex2
	
	k1_k4b	GLsub	1,k4b
	k1_k4	GLsub	1,k4

;	GLtexCube	3,  0+k4,1-k4b,  1-k4,1-k4b,  1-k4,0+k4b,  k4+0,k4b+0
	GLtexCube	3,  k4,k1_k4b,  k1_k4,k1_k4b,  k1_k4,k4b,  k4,k4b	
	glLoadIdentity

	glPushMatrix
	glLoadIdentity
	glTranslate	0,0,-1
	glRotate		k1,1,1,0
	glRotate		k2,1,0,0
	glRotate		k2,0,0,1


	GLif	t(kbool)
		glEnable	$GL_BLEND
	GLelse
		glDisable	$GL_BLEND
	GLend_if
	
	glEnable	$GL_LIGHTING
	glEnable	$GL_CULL_FACE

	k5pK3	GLsum	.5, k3
	k5pK4	GLsum	.5, k4
	k5pK3b	GLsum	.5, k3b


	glColor	k5pK3,k5pK4,k5pK3b,1
	glBindTexture	kTex1
	k1_k3b	GLsub	1, k3b
	k1_k3	GLsub	1, k3
	
	k_	GLmul	k4b, .2
	k_	GLsum	k_, .2
;	glScale	k_, k_, k_
	GLtexCube	k_,  k3, k1_k3b,   k1_k3, k1_k3b,   k1_k3,k3b,  k3,k3b
;	GLtexCube	.2,  0+k3,1-k3b,  1-k3,1-k3b,  1-k3,0+k3b,  k3+0,k3b+0
	glPopMatrix		

	

GLinsert	1.1

k1	randomh	50, 2000, 5
a1	oscili	10000,k1,1
	out	a1

	
	endin



</CsInstruments>
<CsScore>

i1 0 3600 1

</CsScore>
</CsoundSynthesizer>
