| ... | ... |
@@ -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 |