;Port Audio
;WARNING!!!
;it is recommended to use -f flag when soundcard it supports native ASIO driver (20,24 or 32 bit)
-+P -m0
sr = 48000
kr = 2400
ksmps = 20
nchnls = 2
gitemp ftgen 1,0,8192,10,5
;itemp ftgen 73,0,8192,7,0,2048,1,2048,0.5,2048,0.5,2048,0 ;ADSR
giPixel init 64
iw init 2
ih init iw*giPixel*.7
ix init 30
iy init 30
#define MODULE(a'b'c'd'e'f'g'h'i'l'm'n'o'p'q'r's') #
knull1,gihband$b FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix, iy
knull2,gihband$c FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*1), iy
knull3,gihband$d FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*2), iy
knull4,gihband$e FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*3), iy
knull5,gihband$f FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*4), iy
knull6,gihband$g FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*5), iy
knull7,gihband$h FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*6), iy
knull8,gihband$i FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*7), iy
knull9,gihband$l FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*8), iy
knull10,gihband$m FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*9), iy
knull11,gihband$n FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*10), iy
knull12,gihband$o FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*11), iy
knull13,gihband$p FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*12), iy
knull14,gihband$q FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*13), iy
knull15,gihband$r FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*14), iy
knull16,gihband$s FLslider " ", -1,1, 0, 4, -1, iw, ih, ($a*16*iw)+ix+(iw*15), iy
FLsetBox 1,gihband$b
FLsetBox 1,gihband$c
FLsetBox 1,gihband$d
FLsetBox 1,gihband$e
FLsetBox 1,gihband$f
FLsetBox 1,gihband$g
FLsetBox 1,gihband$h
FLsetBox 1,gihband$i
FLsetBox 1,gihband$l
FLsetBox 1,gihband$m
FLsetBox 1,gihband$n
FLsetBox 1,gihband$o
FLsetBox 1,gihband$p
FLsetBox 1,gihband$q
FLsetBox 1,gihband$r
FLsetBox 1,gihband$s
#
#define DRAW(a'b'c'd'e'f'g'h'i'l'm'n'o'p'q'r') #
if incr = $a igoto $a_0
if incr = $b igoto $b_1
if incr = $c igoto $c_2
if incr = $d igoto $d_3
if incr = $e igoto $e_4
if incr = $f igoto $f_5
if incr = $g igoto $g_6
if incr = $h igoto $h_7
if incr = $i igoto $i_8
if incr = $l igoto $l_9
if incr = $m igoto $m_10
if incr = $n igoto $n_11
if incr = $o igoto $o_12
if incr = $p igoto $p_13
if incr = $q igoto $q_14
if incr = $r igoto $r_15
igoto newblok$a
$a_0:
FLsetVal_i ival,gihband$a
igoto contin
$b_1:
FLsetVal_i ival,gihband$b
igoto contin
$c_2:
FLsetVal_i ival,gihband$c
igoto contin
$d_3:
FLsetVal_i ival,gihband$d
igoto contin
$e_4:
FLsetVal_i ival,gihband$e
igoto contin
$f_5:
FLsetVal_i ival,gihband$f
igoto contin
$g_6:
FLsetVal_i ival,gihband$g
igoto contin
$h_7:
FLsetVal_i ival,gihband$h
igoto contin
$i_8:
FLsetVal_i ival,gihband$i
igoto contin
$l_9:
FLsetVal_i ival,gihband$l
igoto contin
$m_10:
FLsetVal_i ival,gihband$m
igoto contin
$n_11:
FLsetVal_i ival,gihband$n
igoto contin
$o_12:
FLsetVal_i ival,gihband$o
igoto contin
$p_13:
FLsetVal_i ival,gihband$p
igoto contin
$q_14:
FLsetVal_i ival,gihband$q
igoto contin
$r_15:
FLsetVal_i ival,gihband$r
igoto contin
newblok$a:
#
;GUI generation
FLpanel "Drawing function", 300,300
FLcolor 174,174,174,0,0,0
;one module = 16 pixel
$MODULE(0'1'2'3'4'5'6'7'8'9'10'11'12'13'14'15'16')
$MODULE(1'17'18'19'20'21'22'23'24'25'26'27'28'29'30'31'32')
$MODULE(2'33'34'35'36'37'38'39'40'41'42'43'44'45'46'47'48')
$MODULE(3'49'50'51'52'53'54'55'56'57'58'59'60'61'62'63'64')
inull_1 FLbox "+1",8,1,14,iw*giPixel+2,ih+2,ix-1,iy-1
FLsetAlign 2,inull_1
ginull_2 FLbox "0",8,1,14,iw*giPixel,1,ix,iy+ih*.5
FLsetAlign 4,ginull_2
ginull_3 FLbox " ",8,1,14,1,ih,ix+(iw*giPixel*.25),iy
ginull_4 FLbox "-1",8,1,14,1,ih,ix+(iw*giPixel*.5),iy
FLsetAlign 3,ginull_4
ginull_5 FLbox " ",8,1,14,1,ih,ix+(iw*giPixel*.75),iy
FLpanel_end
FLrun
instr 1
incr init 0
reset:
incr = incr + 1
ival table incr/giPixel,gitemp,1
ival init -ival
;one drawing = 16 pixel
$DRAW(1'2'3'4'5'6'7'8'9'10'11'12'13'14'15'16')
$DRAW(17'18'19'20'21'22'23'24'25'26'27'28'29'30'31'32')
$DRAW(33'34'35'36'37'38'39'40'41'42'43'44'45'46'47'48')
$DRAW(49'50'51'52'53'54'55'56'57'58'59'60'61'62'63'64')
contin:
FLshow ginull_2
FLshow ginull_3
FLshow ginull_4
FLshow ginull_5
if incr < giPixel kgoto salta
turnoff
salta:
reinit reset
endin
i1 0 [3600*3] ;Max performance time
e