SCREEN 12 PRINT : COLOR 11 PRINT " Mondriaans akoestisch tableau" PRINT " Mondriaan acoustic painting" PRINT " *****************************" PRINT : COLOR 15 PRINT " Elk geluid is proportioneel aan kleur, positie en grootte rechthoek" PRINT " Each sound is proportional to colour, position and size rectangle" PRINT PRINT " Press a key for changing SOUND properties:" PRINT PRINT " > "; CHR$(26); " = double lowest frequency" PRINT " > "; CHR$(27); " = halve lowest frequency" PRINT " > "; CHR$(24); " = increase highest frequency by 10%" PRINT " > "; CHR$(25); " = decrease highest frequency by 10%" PRINT " > '.' = toggle SOUND ON/OFF" PRINT " > ENTER = interval switch" PRINT " > '0' = CLSireene" PRINT " > SPACE = END" PRINT PRINT " *****************************************************" PRINT : PRINT : PRINT : COLOR 10 PRINT " Credits: guido wuyts 1997" PRINT : PRINT : PRINT : COLOR 3 PRINT " -> Toets/Key...": COLOR 15 PLAY "o4l24d" SLEEP: a$ = INKEY$: a$ = "": COLOR 11 CLS RANDOMIZE TIMER snd = 1: frek = 1200: fre0 = 640: wt = 0 lus: IF ABS(RND - RND) < .00005 THEN GOSUB clscr a1 = RND: a2 = RND: a3 = RND: a4 = RND x = a1 * 640: y = a2 * 480 dx = a3 * (640 - x): dy = a4 * (480 - y) col = INT(RND * 16) LINE (x, y)-(x + dx, y + dy), col, BF IF snd = 1 THEN SOUND fre0 + col * SQR(a1 * a2 * a3 * a4) * frek / 16, .3 a$ = INKEY$ IF a$ = "." THEN snd = ABS(1 - snd) IF a$ = CHR$(0) + "H" AND frek < 5000 THEN frek = frek * 1.1 IF a$ = CHR$(0) + "P" AND frek / 1.1 > fre0 + 50 THEN frek = frek / 1.1 IF a$ = CHR$(0) + "M" AND fre0 * 2 < frek - 50 THEN fre0 = fre0 * 2 IF a$ = CHR$(0) + "K" AND fre0 > 80 THEN fre0 = fre0 * .5 IF a$ = CHR$(13) THEN wt = ABS(1 - wt) IF a$ = "0" THEN GOSUB clscr: GOTO lus IF a$ = " " THEN END IF wt = 1 THEN t = TIMER: WHILE TIMER - t < .15: WEND GOTO lus END clscr: f0 = fre0: f1 = frek: n = f1 - f0 stap = (f1 - f0) / 500 zzzing: FOR k = f0 TO f1 STEP stap x = 320 * (k - fre0) / n: y = 240 * (k - fre0) / n LINE (320 - x, 240 - y)-(320 + x, 240 + y), col, B IF snd = 1 THEN SOUND k, .1 NEXT IF stap < 0 THEN GOTO verder stap = -stap f0 = frek: f1 = fre0: col = 0 GOTO zzzing verder: RETURN END