DECLARE SUB play_sonate_s() DECLARE SUB plugin_0() GLOBAL sonate_s_probab_R AS SINGLE GLOBAL sonate_s_probab_L AS SINGLE GLOBAL tempo AS BYTE GLOBAL on_off AS BYTE %plugin_count = 1 SUB plugin_0() LOCAL i AS DWORD 'BYTE LOCAL j AS SINGLE LOCAL k AS SINGLE LOCAL time_counter AS BYTE RANDOMIZE TIMER IF ISFALSE task(%plugin_0).tog THEN task(%plugin_0).freq = 1 time_counter = 1 on_off = %false END IF SELECT CASE time_counter CASE 1 TO 16 SELECT CASE on_off CASE %false tempo = 120 'j = RND (0,1)^sonate_s_probab_R 'for i = 1 to plugin_count ' SELECT CASE j ' CASE (i)/plugin_count TO (i+1)/plugin_count ' sonate_s.plug_R = i ' EXIT FOR ' END SELECT 'next i 'k = RND (0,1)^sonate_s_probab_L 'for i = 1 to plugin_count ' SELECT CASE j ' CASE (i)/plugin_count TO (i+1)/plugin_count ' sonate_s.plug_L = i ' exit for ' END SELECT 'next i on_off = %true INCR time_counter CASE %true END SELECT CASE 17 sonate_s.plug_L = 1 sonate_s.plug_R = 1 on_off = %true INCR time_counter CASE 18 TO 33 SELECT CASE on_off CASE %false tempo = 60 'zie vorig deel on_off = %true INCR time_counter CASE %true END SELECT CASE 34 sonate_s.plug_L = 1 sonate_s.plug_R = 1 on_off = %true INCR time_counter CASE 35 TO 50 SELECT CASE on_off CASE %false tempo = 180 'zie vorig deel on_off = %true INCR time_counter CASE %true END SELECT CASE 51 stoptask %play_sonate_s 'stop plugins die bezig zijn ! 'in plugin zelf? IF Task(%plugin_0).tog THEN stoptask %plugin_0 END SELECT END SUB SUB play_sonate_s() STATIC Sc() AS Sekwenstype STATIC tik AS DWORD STATIC cnt AS DWORD IF ISFALSE Task(%play_sonate_s).tog THEN tik = 0 cnt = 0 REDIM Sc(1) AS STATIC Sekwenstype controller 0, 7, 120 starttask %plugin_0 Task(%play_sonate_s).tog = %True END IF Task(%play_sonate_s).Har.vel = SumHar (Task(%plugin_1_R).Har, Task(%plugin_1_L).Har) Task(%play_sonate_s).Har.vel = SumHar (Task(%play_sonate_s).Har, Task(%plugin_2_R).Har) PlayHar Task(%play_sonate_s).Har, 0 IF Task(%play_sonate_s).Har.vel <> Sc(cnt).Har.vel THEN Sc(cnt).Har = Task(%play_sonate_s).Har Sc(cnt).tik = tik INCR cnt REDIM PRESERVE Sc(cnt) END IF INCR tik Task(%play_sonate_s).Har.vel = NUL$(128) Task(%play_sonate_s).freq = 1000 END SUB