Browse code

(piano.tal) Improved layout

Devine Lu Linvega authored on 27/02/2023 05:16:56
Showing 1 changed files
... ...
@@ -12,7 +12,6 @@
12 12
 
13 13
 	@last-note $1
14 14
 	@octave $1
15
-	@pointer &x $2 &y $2
16 15
 	@center &x $2 &y $2
17 16
 	@adsr-view &x1 $2 &y1 $2 &x2 $2 &y2 $2
18 17
 	@wave-view &x1 $2 &y1 $2 &x2 $2 &y2 $2
... ...
@@ -21,20 +20,23 @@
21 20
 |0100 ( -> )
22 21
 
23 22
 	( theme )
24
-	#0fe5 .System/r DEO2
25
-	#0fc5 .System/g DEO2
26
-	#0f25 .System/b DEO2
23
+	#0fe3 .System/r DEO2
24
+	#0fc3 .System/g DEO2
25
+	#0f23 .System/b DEO2
26
+	( resize )
27
+	#0180 .Screen/width DEO2
28
+	#00e0 .Screen/height DEO2
27 29
 	( find center )
28 30
 	.Screen/width DEI2 #01 SFT2 .center/x STZ2
29
-	.Screen/height DEI2 #01 SFT2 #0018 ADD2 .center/y STZ2
31
+	.Screen/height DEI2 #01 SFT2 #0010 ADD2 .center/y STZ2
30 32
 	( place octave )
31 33
 	.center/x LDZ2 #0080 SUB2 .octave-view/x1 STZ2
32
-	.center/y LDZ2 #0008 ADD2 .octave-view/y1 STZ2
34
+	.center/y LDZ2 #0010 ADD2 .octave-view/y1 STZ2
33 35
 	.octave-view/x1 LDZ2 #0050 ADD2 .octave-view/x2 STZ2
34 36
 	.octave-view/y1 LDZ2 #0018 ADD2 .octave-view/y2 STZ2
35 37
 	( place adsr )
36 38
 	.center/x LDZ2 #0020 SUB2 .adsr-view/x1 STZ2
37
-	.center/y LDZ2 #0008 ADD2 .adsr-view/y1 STZ2
39
+	.center/y LDZ2 #0010 ADD2 .adsr-view/y1 STZ2
38 40
 	.adsr-view/x1 LDZ2 #00a0 ADD2 .adsr-view/x2 STZ2
39 41
 	.adsr-view/y1 LDZ2 #0018 ADD2 .adsr-view/y2 STZ2
40 42
 	( place waveform )
... ...
@@ -58,9 +60,12 @@
58 60
 
59 61
 BRK
60 62
 
63
+(
64
+@|vectors )
65
+
61 66
 @on-frame ( -> )
62 67
 
63
-	#00 .Screen/auto DEO
68
+	[ LIT2 00 -Screen/auto ] DEO
64 69
 	.adsr-view/y2 LDZ2 #0020 SUB2 .Screen/y DEO2
65 70
 	#1000
66 71
 	&loop
... ...
@@ -76,11 +81,6 @@ BRK
76 81
 
77 82
 @on-control ( -> )
78 83
 
79
-	( clear last cursor )
80
-	.pointer/x LDZ2 .Screen/x DEO2
81
-	.pointer/y LDZ2 .Screen/y DEO2
82
-	#40 .Screen/sprite DEO
83
-
84 84
 	.Controller/key DEI
85 85
 	[ LIT "a ] NEQk NIP ?&no-c #30 .octave LDZ #0c MUL ADD play &no-c
86 86
 	[ LIT "s ] NEQk NIP ?&no-d #32 .octave LDZ #0c MUL ADD play &no-d
... ...
@@ -114,7 +114,6 @@ BRK
114 114
 	POP
115 115
 
116 116
 	draw-octave
117
-	draw-wave
118 117
 
119 118
 BRK
120 119
 
... ...
@@ -147,8 +146,7 @@ BRK
147 146
 @on-touch-wave-view ( -> )
148 147
 
149 148
 	.Mouse/x DEI2 .wave-view/x1 LDZ2 SUB2
150
-		( min ) #0010 GTH2k JMP SWP2 POP2 .Audio0/length DEO2
151
-	draw-wave
149
+		( min ) #0010 GTH2k [ JMP SWP2 POP2 ] set-length
152 150
 
153 151
 BRK
154 152
 
... ...
@@ -212,6 +210,15 @@ BRK
212 210
 
213 211
 JMP2r
214 212
 
213
+@set-length ( length* -- )
214
+
215
+	.Audio0/length DEO2
216
+
217
+!draw-wave
218
+
219
+(
220
+@|drawing )
221
+
215 222
 @update-cursor ( color addr* -- )
216 223
 
217 224
 	[ LIT2 00 -Screen/auto ] DEO
... ...
@@ -237,7 +244,7 @@ JMP2r
237 244
 	;arrow-icns .Screen/addr DEO2
238 245
 	[ LIT2 01 -Screen/sprite ] DEO
239 246
 	;font-hex .octave LDZ #03 ADD #00 SWP #30 SFT2 ADD2 .Screen/addr DEO2
240
-	[ LIT2 03 -Screen/sprite ] DEO
247
+	[ LIT2 02 -Screen/sprite ] DEO
241 248
 	;arrow-icns/down .Screen/addr DEO2
242 249
 	[ LIT2 01 -Screen/sprite ] DEO
243 250
 	( octave )
... ...
@@ -294,41 +301,32 @@ JMP2r
294 301
 	[ LIT2 75 -Screen/auto ] DEO
295 302
 	#e0 &lbg
296 303
 		;dotted-icn .Screen/addr DEO2
297
-		[ LIT2 03 -Screen/sprite ] DEO
304
+		[ LIT2 0c -Screen/sprite ] DEO
298 305
 		INC DUP ?&lbg
299 306
 	POP
300 307
 	.wave-view/x1 LDZ2 .Screen/x DEO2
301
-
302 308
 	( waveform )
303 309
 	[ LIT2 01 -Screen/auto ] DEO
304 310
 	;sin-pcm/end ;sin-pcm
305 311
 	&loop
306
-
307 312
 		DUP2 ;sin-pcm SUB2 .Audio0/length DEI2 DIV2k MUL2 SUB2 ;sin-pcm ADD2 LDA
308
-
309
-
310
-		 #00 SWP #02 SFT2 .wave-view/y1 LDZ2 ADD2 .Screen/y DEO2
313
+		#00 SWP #02 SFT2 .wave-view/y1 LDZ2 ADD2 .Screen/y DEO2
311 314
 		( draw ) DUP2 ;sin-pcm SUB2 NIP .Audio0/length DEI2 NIP #01 SUB GTH INC .Screen/pixel DEO
312 315
 		INC2 GTH2k ?&loop
313 316
 	POP2 POP2
314
-
315 317
 	( length line )
316 318
 	.wave-view/x1 LDZ2 .Audio0/length DEI2 #0001 SUB2 ADD2 .Screen/x DEO2
317 319
 	.wave-view/y1 LDZ2 .Screen/y DEO2
318 320
 	;line-icn .Screen/addr DEO2
319 321
 	[ LIT2 71 -Screen/auto ] DEO
320 322
 	[ LIT2 05 -Screen/sprite ] DEO
321
-
322 323
 	( range )
323
-	#01 .Screen/auto DEO
324
+	[ LIT2 01 -Screen/auto ] DEO
324 325
 	.wave-view/x1 LDZ2 .Screen/x DEO2
325
-	.wave-view/y1 LDZ2 #0010 SUB2 .Screen/y DEO2
326
-	.Audio0/addr DEI2 draw-short
327
-	.wave-view/x2 LDZ2 #0020 SUB2 .Screen/x DEO2
328
-	.Audio0/length DEI2 draw-short
329
-	#00 .Screen/auto DEO
326
+	.wave-view/y1 LDZ2 #0018 SUB2 .Screen/y DEO2
327
+	.Audio0/length DEI2
330 328
 
331
-JMP2r
329
+!draw-short
332 330
 
333 331
 @draw-knob ( x* y* value -- )
334 332
 
... ...
@@ -347,7 +345,7 @@ JMP2r
347 345
 	( marker )
348 346
 	.Screen/x DEI2 #0004 SUB2 #0000 STHkr ;knob-offsetx ADD2 LDA ADD2 .Screen/x DEO2
349 347
 	.Screen/y DEI2 #0010 SUB2 #0000 STHr ;knob-offsety ADD2 LDA ADD2 .Screen/y DEO2
350
-	;knob-icns #0020 ADD2 .Screen/addr DEO2
348
+	;knob-icns/index .Screen/addr DEO2
351 349
 	[ LIT2 05 -Screen/sprite ] DEO
352 350
 
353 351
 JMP2r
... ...
@@ -387,9 +385,11 @@ JMP2r
387 385
 @phex ( short* -- ) SWP phex/b &b DUP #04 SFT phex/c &c #0f AND DUP #09 GTH #27 MUL ADD #30 ADD #18 DEO JMP2r
388 386
 
389 387
 (
390
-
391 388
 @|assets )
392 389
 
390
+@notes-lut [
391
+	30 32 34 35 37 39 3b 3c ]
392
+
393 393
 @dotted-icn [
394 394
 	0000 0000 0000 0000
395 395
 	0000 0000 0000 0000
... ...
@@ -410,9 +410,6 @@ JMP2r
410 410
 	0010 387c fe10 1000
411 411
 &down
412 412
 	0010 1010 fe7c 3810 ]
413
-@notes-lut [
414
-	30 32 34 35
415
-	37 39 3b 3c ]
416 413
 @keys-left-icns [
417 414
 	7c7c 7c7c 7c7c 7c7c
418 415
 	7c7c 7c7c 7c7c 7e7f