... | ... |
@@ -61,6 +61,10 @@ RTN |
61 | 61 |
- `#a1f3` `#a14d` `#a16c`, grey-pink/teal |
62 | 62 |
- `#8c4b` `#884b` `#e8bb`, commodore64 |
63 | 63 |
|
64 |
+## Convert audio for Unx |
|
65 |
+ |
|
66 |
+```sox sub202_C.wav -b 8 -c 1 -e signed output.raw``` |
|
67 |
+ |
|
64 | 68 |
## Refs |
65 | 69 |
|
66 | 70 |
https://code.9front.org/hg/plan9front/file/a7f9946e238f/sys/src/games/nes/cpu.c |
67 | 71 |
new file mode 100755 |
... | ... |
@@ -0,0 +1,16 @@ |
1 |
+#!/bin/bash |
|
2 |
+ |
|
3 |
+echo "Formatting.." |
|
4 |
+clang-format -i utos.c |
|
5 |
+ |
|
6 |
+echo "Cleaning.." |
|
7 |
+rm -f ../../bin/utos |
|
8 |
+ |
|
9 |
+echo "Building.." |
|
10 |
+mkdir -p ../../bin |
|
11 |
+cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined -lm utos.c -o ../../bin/utos |
|
12 |
+ |
|
13 |
+echo "Running.." |
|
14 |
+../../bin/utos ../../projects/sounds/pad1.ss8 ../../projects/sounds/pad1.pcm |
|
15 |
+ |
|
16 |
+echo "Done." |
0 | 17 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,39 @@ |
1 |
+#include <stdio.h> |
|
2 |
+#include <stdlib.h> |
|
3 |
+ |
|
4 |
+/* |
|
5 |
+Copyright (c) 2020 Devine Lu Linvega |
|
6 |
+ |
|
7 |
+Permission to use, copy, modify, and distribute this software for any |
|
8 |
+purpose with or without fee is hereby granted, provided that the above |
|
9 |
+copyright notice and this permission notice appear in all copies. |
|
10 |
+ |
|
11 |
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|
12 |
+WITH REGARD TO THIS SOFTWARE. |
|
13 |
+*/ |
|
14 |
+ |
|
15 |
+typedef unsigned char Uint8; |
|
16 |
+typedef signed char Sint8; |
|
17 |
+typedef unsigned short Uint16; |
|
18 |
+typedef signed short Sint16; |
|
19 |
+ |
|
20 |
+int |
|
21 |
+main(int argc, char **argv) |
|
22 |
+{ |
|
23 |
+ FILE *f; |
|
24 |
+ Uint8 *buffer; |
|
25 |
+ Uint16 filelen, i; |
|
26 |
+ if(argc < 2 || !(f = fopen(argv[1], "rb"))) |
|
27 |
+ return 1; |
|
28 |
+ fseek(f, 0, SEEK_END); |
|
29 |
+ filelen = ftell(f); |
|
30 |
+ rewind(f); |
|
31 |
+ buffer = (Uint8 *)malloc(filelen * sizeof(Uint8)); |
|
32 |
+ fread(buffer, filelen, 1, f); |
|
33 |
+ fclose(f); |
|
34 |
+ for(i = 0; i < filelen; ++i) |
|
35 |
+ buffer[i] += 0x80; |
|
36 |
+ printf("\n\n"); |
|
37 |
+ fwrite(buffer, filelen, 1, fopen(argv[2], "wb")); |
|
38 |
+ return 0; |
|
39 |
+} |
... | ... |
@@ -1,4 +1,11 @@ |
1 |
-( a blank file ) |
|
1 |
+( drum rack |
|
2 |
+ |
|
3 |
+ TODO |
|
4 |
+ - Change pitch of sample |
|
5 |
+ - Draw pad pitch on pad |
|
6 |
+ - When selecting a pad, should highlight note in octave |
|
7 |
+) |
|
8 |
+ |
|
2 | 9 |
|
3 | 10 |
%RTN { JMP2r } |
4 | 11 |
%8+ { #0008 ADD2 } |
... | ... |
@@ -35,6 +42,9 @@ |
35 | 42 |
|
36 | 43 |
|0000 |
37 | 44 |
|
45 |
+@piano [ &last $1 &octave $1 ] |
|
46 |
+ |
|
47 |
+@last-note $1 |
|
38 | 48 |
@last $1 |
39 | 49 |
@color $1 |
40 | 50 |
@center [ &x $2 &y $2 ] |
... | ... |
@@ -44,9 +54,10 @@ |
44 | 54 |
@frame [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
45 | 55 |
@label [ &x $2 &y $2 &color $1 &addr $2 ] |
46 | 56 |
@pos [ &x $2 &y $2 ] |
47 |
-@padview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
48 |
-@mixview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
49 |
-@wavview [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
57 |
+@pad-view [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
58 |
+@mix-view [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
59 |
+@oct-view [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
60 |
+@wav-view [ &x1 $2 &y1 $2 &x2 $2 &y2 $2 ] |
|
50 | 61 |
|
51 | 62 |
@state [ ( addr length ) |
52 | 63 |
$4 $4 $4 $4 |
... | ... |
@@ -55,14 +66,16 @@ |
55 | 66 |
$4 $4 $4 $4 |
56 | 67 |
] |
57 | 68 |
|
69 |
+@modes [ $1 $1 $1 $1 ] ( single/repeat ) |
|
70 |
+ |
|
58 | 71 |
( program ) |
59 | 72 |
|
60 | 73 |
|0100 ( -> ) |
61 | 74 |
|
62 | 75 |
( theme ) |
63 | 76 |
#0aff .System/r DEO2 |
64 |
- #0af2 .System/g DEO2 |
|
65 |
- #0af3 .System/b DEO2 |
|
77 |
+ #0a2f .System/g DEO2 |
|
78 |
+ #0a3f .System/b DEO2 |
|
66 | 79 |
|
67 | 80 |
( vectors ) |
68 | 81 |
;on-control .Controller/vector DEO2 |
... | ... |
@@ -71,10 +84,18 @@ |
71 | 84 |
;on-midi .Midi/vector DEO2 |
72 | 85 |
|
73 | 86 |
( store location/length ) |
74 |
- #88 .Audio0/volume DEO #011c .Audio0/adsr DEO2 |
|
75 |
- #88 .Audio1/volume DEO #011c .Audio1/adsr DEO2 |
|
76 |
- #88 .Audio2/volume DEO #011c .Audio2/adsr DEO2 |
|
77 |
- #88 .Audio3/volume DEO #111c .Audio3/adsr DEO2 |
|
87 |
+ #88 .Audio0/volume DEO #023c .Audio0/adsr DEO2 |
|
88 |
+ #7a .Audio1/volume DEO #1334 .Audio1/adsr DEO2 |
|
89 |
+ #a7 .Audio2/volume DEO #0414 .Audio2/adsr DEO2 |
|
90 |
+ #88 .Audio3/volume DEO #022c .Audio3/adsr DEO2 |
|
91 |
+ |
|
92 |
+ #0400 .Audio0/length DEO2 |
|
93 |
+ #0800 .Audio1/length DEO2 |
|
94 |
+ #0800 .Audio2/length DEO2 |
|
95 |
+ #1000 .Audio3/length DEO2 |
|
96 |
+ |
|
97 |
+ #01 .modes POK |
|
98 |
+ #03 .piano/octave POK |
|
78 | 99 |
|
79 | 100 |
;load-samples JSR2 |
80 | 101 |
|
... | ... |
@@ -86,40 +107,47 @@ |
86 | 107 |
.center/x PEK2 PAD-WIDTH #0003 MUL2 SUB2 #0010 SUB2 .frame/x1 POK2 |
87 | 108 |
.center/y PEK2 #0050 SUB2 .frame/y1 POK2 |
88 | 109 |
.center/x PEK2 PAD-WIDTH #0003 MUL2 ADD2 #0010 ADD2 .frame/x2 POK2 |
89 |
- .frame/y1 PEK2 PAD-HEIGHT #0004 MUL2 ADD2 #0030 ADD2 .frame/y2 POK2 |
|
90 |
- |
|
91 |
- ( place padview ) |
|
92 |
- .frame/x1 PEK2 .padview/x1 POK2 |
|
93 |
- .frame/y1 PEK2 .padview/y1 POK2 |
|
94 |
- .padview/x1 PEK2 #0004 PAD-WIDTH MUL2 ADD2 .padview/x2 POK2 |
|
95 |
- .padview/y1 PEK2 #0004 PAD-HEIGHT MUL2 ADD2 .padview/y2 POK2 |
|
96 |
- |
|
97 |
- ( place mixview ) |
|
98 |
- .padview/x2 PEK2 .mixview/x1 POK2 |
|
99 |
- .padview/y1 PEK2 .mixview/y1 POK2 |
|
100 |
- .mixview/x1 PEK2 #0080 ADD2 .mixview/x2 POK2 |
|
101 |
- .padview/y2 PEK2 .mixview/y2 POK2 |
|
102 |
- |
|
103 |
- ( place wavview ) |
|
104 |
- .frame/x1 PEK2 .wavview/x1 POK2 |
|
105 |
- .mixview/y2 PEK2 #0008 ADD2 .wavview/y1 POK2 |
|
106 |
- .frame/x2 PEK2 .wavview/x2 POK2 |
|
107 |
- .wavview/y1 PEK2 #0020 ADD2 .wavview/y2 POK2 |
|
110 |
+ .frame/y1 PEK2 PAD-HEIGHT #0004 MUL2 ADD2 #0028 ADD2 .frame/y2 POK2 |
|
111 |
+ |
|
112 |
+ ( place pad-view ) |
|
113 |
+ .frame/x1 PEK2 .pad-view/x1 POK2 |
|
114 |
+ .frame/y1 PEK2 .pad-view/y1 POK2 |
|
115 |
+ .pad-view/x1 PEK2 #0004 PAD-WIDTH MUL2 ADD2 .pad-view/x2 POK2 |
|
116 |
+ .pad-view/y1 PEK2 #0004 PAD-HEIGHT MUL2 ADD2 .pad-view/y2 POK2 |
|
117 |
+ |
|
118 |
+ ( place mix-view ) |
|
119 |
+ .pad-view/x2 PEK2 #0006 ADD2 .mix-view/x1 POK2 |
|
120 |
+ .pad-view/y1 PEK2 .mix-view/y1 POK2 |
|
121 |
+ .mix-view/x1 PEK2 #007a ADD2 .mix-view/x2 POK2 |
|
122 |
+ .pad-view/y2 PEK2 .mix-view/y2 POK2 |
|
123 |
+ |
|
124 |
+ ( place oct-view ) |
|
125 |
+ .frame/x1 PEK2 .oct-view/x1 POK2 |
|
126 |
+ .mix-view/y2 PEK2 #0004 ADD2 .oct-view/y1 POK2 |
|
127 |
+ .oct-view/x1 PEK2 #0050 ADD2 .oct-view/x2 POK2 |
|
128 |
+ .oct-view/y1 PEK2 #0018 ADD2 .oct-view/y2 POK2 |
|
129 |
+ |
|
130 |
+ ( place wav-view ) |
|
131 |
+ .oct-view/x2 PEK2 .wav-view/x1 POK2 |
|
132 |
+ .mix-view/y2 PEK2 #0004 ADD2 .wav-view/y1 POK2 |
|
133 |
+ .frame/x2 PEK2 .wav-view/x2 POK2 |
|
134 |
+ .wav-view/y1 PEK2 #0020 ADD2 .wav-view/y2 POK2 |
|
108 | 135 |
|
109 | 136 |
;draw-pads JSR2 |
110 | 137 |
;draw-mixers JSR2 |
138 |
+ ;draw-octave JSR2 |
|
111 | 139 |
|
112 |
- .frame/x1 PEK2 #0004 SUB2 |
|
113 |
- .frame/y1 PEK2 #0004 SUB2 |
|
114 |
- .frame/x2 PEK2 #0002 ADD2 |
|
115 |
- .frame/y2 PEK2 #0002 ADD2 |
|
140 |
+ .mix-view/x1 PEK2 #0004 SUB2 |
|
141 |
+ .mix-view/y1 PEK2 #0000 SUB2 |
|
142 |
+ .mix-view/x2 PEK2 #0002 SUB2 |
|
143 |
+ .mix-view/y2 PEK2 #0002 SUB2 |
|
116 | 144 |
#01 |
117 | 145 |
;line-rect JSR2 |
118 | 146 |
|
119 |
- .mixview/x1 PEK2 #0002 ADD2 |
|
120 |
- .mixview/y1 PEK2 #0000 SUB2 |
|
121 |
- .mixview/x2 PEK2 #0002 SUB2 |
|
122 |
- .mixview/y2 PEK2 #0002 SUB2 |
|
147 |
+ .wav-view/x1 PEK2 #0000 SUB2 |
|
148 |
+ .wav-view/y1 PEK2 #0002 SUB2 |
|
149 |
+ .wav-view/x2 PEK2 #0002 SUB2 |
|
150 |
+ .wav-view/y2 PEK2 #0002 ADD2 |
|
123 | 151 |
#01 |
124 | 152 |
;line-rect JSR2 |
125 | 153 |
|
... | ... |
@@ -145,9 +173,6 @@ BRK |
145 | 173 |
.Audio3/output DEI #04 SFT TOS #0008 MUL2 ;meter ADD2 .Screen/addr DEO2 |
146 | 174 |
#21 .Screen/color DEO |
147 | 175 |
|
148 |
- ( TODO: draw in mixer ) |
|
149 |
- ( TODO: draw global ) |
|
150 |
- |
|
151 | 176 |
BRK |
152 | 177 |
|
153 | 178 |
@on-mouse ( -> ) |
... | ... |
@@ -156,10 +181,18 @@ BRK |
156 | 181 |
|
157 | 182 |
.Mouse/state DEI #00 NEQ ,&on-touch JNZ BRK &on-touch |
158 | 183 |
|
159 |
- .Mouse/x DEI2 DUP2 .padview/x1 PEK2 GTH2 ROT ROT .padview/x2 PEK2 #0001 ADD2 LTH2 #0101 EQU2 |
|
160 |
- .Mouse/y DEI2 DUP2 .padview/y1 PEK2 GTH2 ROT ROT .padview/y2 PEK2 LTH2 #0101 EQU2 |
|
184 |
+ .Mouse/x DEI2 DUP2 .pad-view/x1 PEK2 GTH2 ROT ROT .pad-view/x2 PEK2 #0001 ADD2 LTH2 #0101 EQU2 |
|
185 |
+ .Mouse/y DEI2 DUP2 .pad-view/y1 PEK2 GTH2 ROT ROT .pad-view/y2 PEK2 LTH2 #0101 EQU2 |
|
161 | 186 |
#0101 EQU2 ;on-touch-pad JNZ2 |
162 | 187 |
|
188 |
+ .Mouse/x DEI2 DUP2 .mix-view/x1 PEK2 GTH2 ROT ROT .mix-view/x2 PEK2 #0001 ADD2 LTH2 #0101 EQU2 |
|
189 |
+ .Mouse/y DEI2 DUP2 .mix-view/y1 PEK2 GTH2 ROT ROT .mix-view/y2 PEK2 LTH2 #0101 EQU2 |
|
190 |
+ #0101 EQU2 ;on-touch-mix JNZ2 |
|
191 |
+ |
|
192 |
+ .Mouse/x DEI2 DUP2 .oct-view/x1 PEK2 GTH2 ROT ROT .oct-view/x2 PEK2 #0001 ADD2 LTH2 #0101 EQU2 |
|
193 |
+ .Mouse/y DEI2 DUP2 .oct-view/y1 PEK2 GTH2 ROT ROT .oct-view/y2 PEK2 LTH2 #0101 EQU2 |
|
194 |
+ #0101 EQU2 ;on-touch-oct JNZ2 |
|
195 |
+ |
|
163 | 196 |
BRK |
164 | 197 |
|
165 | 198 |
@on-midi ( -> ) |
... | ... |
@@ -167,7 +200,7 @@ BRK |
167 | 200 |
.Midi/note DEI #00 NEQ ,¬e-on JNZ BRK ¬e-on |
168 | 201 |
|
169 | 202 |
.Midi/channel DEI #90 NEQ ,&no-drum JNZ |
170 |
- .Midi/note DEI DUP #80 ADD SWP #10 MOD ;play-pad JSR2 |
|
203 |
+ ( .Midi/note DEI DUP #80 ADD SWP #10 MOD ;play-pad JSR2 ) |
|
171 | 204 |
BRK |
172 | 205 |
&no-drum |
173 | 206 |
|
... | ... |
@@ -182,47 +215,133 @@ BRK |
182 | 215 |
.Controller/key DEI #00 NEQ ,&key-down JNZ BRK &key-down |
183 | 216 |
|
184 | 217 |
.Controller/key DEI |
185 |
- DUP #31 NEQ ,&no-0 JNZ #b0 #00 ;play-pad JSR2 &no-0 |
|
186 |
- DUP #32 NEQ ,&no-1 JNZ #b0 #01 ;play-pad JSR2 &no-1 |
|
187 |
- DUP #33 NEQ ,&no-2 JNZ #b0 #02 ;play-pad JSR2 &no-2 |
|
188 |
- DUP #34 NEQ ,&no-3 JNZ #b0 #03 ;play-pad JSR2 &no-3 |
|
189 |
- DUP #71 NEQ ,&no-4 JNZ #b0 #04 ;play-pad JSR2 &no-4 |
|
190 |
- DUP #77 NEQ ,&no-5 JNZ #b0 #05 ;play-pad JSR2 &no-5 |
|
191 |
- DUP #65 NEQ ,&no-6 JNZ #b0 #06 ;play-pad JSR2 &no-6 |
|
192 |
- DUP #72 NEQ ,&no-7 JNZ #b0 #07 ;play-pad JSR2 &no-7 |
|
193 |
- DUP #61 NEQ ,&no-8 JNZ #b0 #08 ;play-pad JSR2 &no-8 |
|
194 |
- DUP #73 NEQ ,&no-9 JNZ #b0 #09 ;play-pad JSR2 &no-9 |
|
195 |
- DUP #64 NEQ ,&no-a JNZ #b0 #0a ;play-pad JSR2 &no-a |
|
196 |
- DUP #66 NEQ ,&no-b JNZ #b0 #0b ;play-pad JSR2 &no-b |
|
197 |
- DUP #7a NEQ ,&no-c JNZ #b0 #0c ;play-pad JSR2 &no-c |
|
198 |
- DUP #78 NEQ ,&no-d JNZ #b0 #0d ;play-pad JSR2 &no-d |
|
199 |
- DUP #63 NEQ ,&no-e JNZ #b0 #0e ;play-pad JSR2 &no-e |
|
200 |
- DUP #76 NEQ ,&no-f JNZ #b0 #0f ;play-pad JSR2 &no-f |
|
218 |
+ DUP #31 NEQ ,&no-0 JNZ #00 ;play-pad JSR2 &no-0 |
|
219 |
+ DUP #32 NEQ ,&no-1 JNZ #01 ;play-pad JSR2 &no-1 |
|
220 |
+ DUP #33 NEQ ,&no-2 JNZ #02 ;play-pad JSR2 &no-2 |
|
221 |
+ DUP #34 NEQ ,&no-3 JNZ #03 ;play-pad JSR2 &no-3 |
|
222 |
+ DUP #71 NEQ ,&no-4 JNZ #04 ;play-pad JSR2 &no-4 |
|
223 |
+ DUP #77 NEQ ,&no-5 JNZ #05 ;play-pad JSR2 &no-5 |
|
224 |
+ DUP #65 NEQ ,&no-6 JNZ #06 ;play-pad JSR2 &no-6 |
|
225 |
+ DUP #72 NEQ ,&no-7 JNZ #07 ;play-pad JSR2 &no-7 |
|
226 |
+ DUP #61 NEQ ,&no-8 JNZ #08 ;play-pad JSR2 &no-8 |
|
227 |
+ DUP #73 NEQ ,&no-9 JNZ #09 ;play-pad JSR2 &no-9 |
|
228 |
+ DUP #64 NEQ ,&no-a JNZ #0a ;play-pad JSR2 &no-a |
|
229 |
+ DUP #66 NEQ ,&no-b JNZ #0b ;play-pad JSR2 &no-b |
|
230 |
+ DUP #7a NEQ ,&no-c JNZ #0c ;play-pad JSR2 &no-c |
|
231 |
+ DUP #78 NEQ ,&no-d JNZ #0d ;play-pad JSR2 &no-d |
|
232 |
+ DUP #63 NEQ ,&no-e JNZ #0e ;play-pad JSR2 &no-e |
|
233 |
+ DUP #76 NEQ ,&no-f JNZ #0f ;play-pad JSR2 &no-f |
|
201 | 234 |
POP |
202 | 235 |
|
203 | 236 |
BRK |
204 | 237 |
|
205 | 238 |
@on-touch-pad ( -> ) |
206 | 239 |
|
207 |
- ( x ) .Mouse/x DEI2 .padview/x1 PEK2 SUB2 PAD-WIDTH DIV2 SWP POP |
|
208 |
- ( y ) .Mouse/y DEI2 .padview/y1 PEK2 SUB2 PAD-HEIGHT DIV2 SWP POP #04 MUL ADD |
|
240 |
+ ( x ) .Mouse/x DEI2 .pad-view/x1 PEK2 SUB2 PAD-WIDTH DIV2 SWP POP |
|
241 |
+ ( y ) .Mouse/y DEI2 .pad-view/y1 PEK2 SUB2 PAD-HEIGHT DIV2 SWP POP #04 MUL ADD |
|
209 | 242 |
|
210 |
- DUP #b0 SWP ;play-pad JSR2 |
|
243 |
+ DUP SWP ;play-pad JSR2 |
|
211 | 244 |
|
212 |
- DUP ;draw-editor JSR2 |
|
213 |
- DUP ;draw-waveform JSR2 |
|
245 |
+ ;draw-waveform JSR2 |
|
246 |
+ |
|
247 |
+ ( release ) #00 .Mouse/state DEO |
|
214 | 248 |
|
249 |
+BRK |
|
250 |
+ |
|
251 |
+@on-touch-mix ( -> ) |
|
252 |
+ |
|
253 |
+ ( channel ) .Mouse/y DEI2 .mix-view/y1 PEK2 SUB2 PAD-HEIGHT DIV2 SWP POP STH |
|
254 |
+ |
|
255 |
+ ( knob ) .Mouse/x DEI2 .mix-view/x1 PEK2 SUB2 #0010 DIV2 SWP POP |
|
256 |
+ |
|
257 |
+ DUP #00 NEQ ,&no-a JNZ |
|
258 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] DEI |
|
259 |
+ #10 .Mouse/state DEI #10 EQU #e0 MUL ADD ADD |
|
260 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] DEO &no-a |
|
261 |
+ DUP #01 NEQ ,&no-d JNZ |
|
262 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] DEI |
|
263 |
+ DUP #f0 AND STH #01 .Mouse/state DEI #10 EQU #0e MUL ADD ADD #0f AND STHr ADD |
|
264 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] DEO &no-d |
|
265 |
+ DUP #02 NEQ ,&no-s JNZ |
|
266 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] #01 ADD DEI |
|
267 |
+ #10 .Mouse/state DEI #10 EQU #e0 MUL ADD ADD |
|
268 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] #01 ADD DEO &no-s |
|
269 |
+ DUP #03 NEQ ,&no-r JNZ |
|
270 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] #01 ADD DEI |
|
271 |
+ DUP #f0 AND STH #01 .Mouse/state DEI #10 EQU #0e MUL ADD ADD #0f AND STHr ADD |
|
272 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] #01 ADD DEO &no-r |
|
273 |
+ |
|
274 |
+ DUP #04 NEQ ,&no-repeat JNZ |
|
275 |
+ .modes [ DUPr STHr ADD ] PEK |
|
276 |
+ #00 EQU |
|
277 |
+ .modes [ DUPr STHr ADD ] POK &no-repeat |
|
278 |
+ |
|
279 |
+ DUP #05 NEQ ,&no-left JNZ |
|
280 |
+ .Audio0/volume [ DUPr STHr #10 MUL ADD ] DEI |
|
281 |
+ #10 .Mouse/state DEI #10 EQU #e0 MUL ADD ADD |
|
282 |
+ .Audio0/volume [ DUPr STHr #10 MUL ADD ] DEO &no-left |
|
283 |
+ DUP #06 NEQ ,&no-right JNZ |
|
284 |
+ .Audio0/volume [ DUPr STHr #10 MUL ADD ] DEI |
|
285 |
+ DUP #f0 AND STH #01 .Mouse/state DEI #10 EQU #0e MUL ADD ADD #0f AND STHr ADD |
|
286 |
+ .Audio0/volume [ DUPr STHr #10 MUL ADD ] DEO &no-right |
|
215 | 287 |
POP |
288 |
+ |
|
216 | 289 |
( release ) #00 .Mouse/state DEO |
217 | 290 |
|
291 |
+ DUPr STHr ;draw-mixer JSR2 |
|
292 |
+ |
|
293 |
+ POPr |
|
294 |
+ |
|
295 |
+BRK |
|
296 |
+ |
|
297 |
+@on-touch-oct ( -> ) |
|
298 |
+ |
|
299 |
+ .Mouse/x DEI2 .oct-view/x1 PEK2 SUB2 8/ SWP POP #08 NEQ ,&no-mod JNZ |
|
300 |
+ .Mouse/y DEI2 .oct-view/y1 PEK2 SUB2 8/ SWP POP |
|
301 |
+ DUP #00 NEQ ,&no-incr JNZ |
|
302 |
+ .piano/octave PEK #01 ADD .piano/octave POK &no-incr |
|
303 |
+ DUP #02 NEQ ,&no-decr JNZ |
|
304 |
+ .piano/octave PEK #01 SUB .piano/octave POK &no-decr |
|
305 |
+ POP |
|
306 |
+ ( release ) #00 .Mouse/state DEO |
|
307 |
+ ;draw-octave JSR2 |
|
308 |
+ BRK |
|
309 |
+ &no-mod |
|
310 |
+ |
|
311 |
+ .Mouse/x DEI2 .oct-view/x1 PEK2 SUB2 8/ SWP POP #06 GTH ,&no-key JNZ |
|
312 |
+ .Mouse/x DEI2 .oct-view/x1 PEK2 SUB2 8/ |
|
313 |
+ |
|
314 |
+ ( set pitch of pad ) |
|
315 |
+ DUP2 ;notes ADD2 LDA .last PEK SWP .piano/octave PEK #02 SUB #0c MUL ADD ;set-pitch JSR2 |
|
316 |
+ |
|
317 |
+ ( record last note ) |
|
318 |
+ SWP POP .last-note POK |
|
319 |
+ .last PEK ;play-pad JSR2 |
|
320 |
+ |
|
321 |
+ ( release ) #00 .Mouse/state DEO |
|
322 |
+ ;draw-octave JSR2 |
|
323 |
+ &no-key |
|
324 |
+ |
|
218 | 325 |
BRK |
219 | 326 |
|
327 |
+@set-pitch ( pad pitch -- ) |
|
328 |
+ |
|
329 |
+ SWP TOS ;pad-pitch ADD2 STA |
|
330 |
+ |
|
331 |
+RTN |
|
332 |
+ |
|
333 |
+@play ( pitch -- ) |
|
334 |
+ |
|
335 |
+ DUP .piano/octave PEK .modes PEK MUL ADD .Audio0/pitch DEO |
|
336 |
+ |
|
337 |
+RTN |
|
338 |
+ |
|
220 | 339 |
@load-samples ( -- ) |
221 | 340 |
|
222 | 341 |
#00 #10 |
223 | 342 |
&loop |
224 | 343 |
( name ) OVR TOS #0019 MUL2 ;pad-path ADD2 .File/name DEO2 |
225 |
- ( length ) OVR TOS #0002 MUL2 ;pad-length ADD2 LDA2 .File/length DEO2 |
|
344 |
+ ( length ) OVR #04 DIV #10 MUL .Audio0/length ADD DEI2 .File/length DEO2 |
|
226 | 345 |
( load ) OVR TOS #0002 MUL2 ;pad-addr ADD2 LDA2 .File/load DEO2 |
227 | 346 |
( incr ) SWP #01 ADD SWP |
228 | 347 |
DUP2 LTH ,&loop JNZ |
... | ... |
@@ -232,28 +351,19 @@ RTN |
232 | 351 |
|
233 | 352 |
@play-pad ( note pad -- ) |
234 | 353 |
|
235 |
- STH |
|
236 |
- ( unseslect last ) |
|
354 |
+ ( unselect last ) |
|
237 | 355 |
.last PEK #01 ;draw-pad JSR2 |
238 |
- DUPr STHr .last POK |
|
239 |
- |
|
356 |
+ DUP .last POK |
|
240 | 357 |
( highlight ) |
241 |
- DUPr STHr #02 ;draw-pad JSR2 |
|
242 |
- |
|
243 |
- ( length ) |
|
244 |
- DUPr STHr TOS #0002 MUL2 ;pad-addr ADD2 DUP2 LDA2 SWP2 #0002 ADD2 LDA2 SWP2 SUB2 |
|
245 |
- DUPr STHr #04 DIV #10 MUL .Audio0/length ADD DEO2 |
|
246 |
- |
|
358 |
+ DUP #02 ;draw-pad JSR2 |
|
247 | 359 |
( addr ) |
248 |
- DUPr STHr TOS #0002 MUL2 ;pad-addr ADD2 LDA2 |
|
249 |
- DUPr STHr #04 DIV #10 MUL .Audio0/addr ADD DEO2 |
|
250 |
- |
|
360 |
+ DUP TOS #0002 MUL2 ;pad-addr ADD2 LDA2 STH2 |
|
361 |
+ DUP #04 DIV #10 MUL .Audio0/addr ADD STH2r ROT DEO2 |
|
251 | 362 |
( pitch ) |
252 |
- DUPr STHr #04 DIV #10 MUL .Audio0/pitch ADD DEO |
|
253 |
- |
|
254 |
- DUPr STHr #04 DIV ;draw-mixer JSR2 |
|
255 |
- |
|
256 |
- POPr |
|
363 |
+ DUP TOS ;pad-pitch ADD2 LDA STH |
|
364 |
+ DUP #04 DIV .modes ADD PEK #00 EQU #80 MUL STH ADDr |
|
365 |
+ DUP #04 DIV #10 MUL .Audio0/pitch ADD STHr SWP DEO |
|
366 |
+ #04 DIV ;draw-mixer JSR2 |
|
257 | 367 |
|
258 | 368 |
RTN |
259 | 369 |
|
... | ... |
@@ -261,27 +371,27 @@ RTN |
261 | 371 |
|
262 | 372 |
#02 MUL #00 SWP ;pad-addr ADD2 LDA2 STH2 |
263 | 373 |
|
264 |
- .wavview/x1 PEK2 |
|
265 |
- .wavview/y1 PEK2 |
|
266 |
- .wavview/x2 PEK2 ++ |
|
267 |
- .wavview/y2 PEK2 |
|
374 |
+ .wav-view/x1 PEK2 #0002 ADD2 |
|
375 |
+ .wav-view/y1 PEK2 |
|
376 |
+ .wav-view/x2 PEK2 #0002 SUB2 |
|
377 |
+ .wav-view/y2 PEK2 |
|
268 | 378 |
#00 ;fill-rect JSR2 |
269 | 379 |
|
270 |
- .wavview/x1 PEK2 .Screen/x DEO2 |
|
380 |
+ .wav-view/x1 PEK2 #0002 ADD2 .Screen/x DEO2 |
|
271 | 381 |
|
272 | 382 |
( waveform ) |
273 | 383 |
#00 #ff |
274 | 384 |
&loop |
275 | 385 |
( dotted line ) |
276 | 386 |
OVR #01 AND ,&no-dot JNZ |
277 |
- .wavview/y1 PEK2 #0010 ADD2 .Screen/y DEO2 |
|
278 |
- #03 .Screen/color DEO |
|
387 |
+ .wav-view/y1 PEK2 #0010 ADD2 .Screen/y DEO2 |
|
388 |
+ #01 .Screen/color DEO |
|
279 | 389 |
&no-dot |
280 | 390 |
OVR TOS #0010 MUL2 [ DUP2r STH2r ] ADD2 LDA |
281 | 391 |
#02 DIV #40 ADD DUP #07 SFT #80 MUL SUB |
282 |
- TOS #0004 DIV2 .wavview/y1 PEK2 ADD2 .Screen/y DEO2 |
|
392 |
+ TOS #0004 DIV2 .wav-view/y1 PEK2 ADD2 .Screen/y DEO2 |
|
283 | 393 |
.Screen/x DEI2 ++ .Screen/x DEO2 |
284 |
- ( draw ) OVR .Audio0/length DEI2 SWP POP GTH #02 MUL #01 ADD .Screen/color DEO |
|
394 |
+ ( draw ) #02 .Screen/color DEO |
|
285 | 395 |
( incr ) SWP #01 ADD SWP |
286 | 396 |
DUP2 LTH ,&loop JNZ |
287 | 397 |
POP2 |
... | ... |
@@ -290,59 +400,35 @@ RTN |
290 | 400 |
|
291 | 401 |
RTN |
292 | 402 |
|
293 |
-@draw-editor ( pad -- ) |
|
294 |
- |
|
295 |
- ( get state ) |
|
296 |
- |
|
297 |
- .frame/y2 PEK2 #0008 ADD2 .Screen/y DEO2 |
|
298 |
- |
|
299 |
- .frame/x1 PEK2 .Screen/x DEO2 |
|
300 |
- DUP #02 MUL TOS ;pad-addr ADD2 LDA2 |
|
301 |
- ( addr ) #21 ;draw-short JSR2 |
|
302 |
- |
|
303 |
- .frame/x1 PEK2 #0028 ADD2 .Screen/x DEO2 |
|
304 |
- DUP #02 MUL TOS ;pad-length ADD2 LDA2 |
|
305 |
- ( addr ) #21 ;draw-short JSR2 |
|
306 |
- |
|
307 |
- POP |
|
308 |
- |
|
309 |
-RTN |
|
310 |
- |
|
311 | 403 |
@draw-mixer ( mixer -- ) |
312 | 404 |
|
313 |
- ;cursor .Screen/addr DEO2 |
|
314 |
- |
|
315 |
- DUP #00 SWP PAD-HEIGHT MUL2 .mixview/y1 PEK2 ADD2 #0002 ADD2 STH2 |
|
405 |
+ DUP STH #00 SWP PAD-HEIGHT MUL2 .mix-view/y1 PEK2 ADD2 #0003 ADD2 |
|
316 | 406 |
|
317 | 407 |
( adsr ) |
318 |
- .mixview/x1 PEK2 #0008 ADD2 DUP2r STH2r |
|
319 |
- .Audio0/adsr DEI #04 SFT |
|
408 |
+ DUP2 .mix-view/x1 PEK2 SWP2 |
|
409 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] DEI #04 SFT |
|
320 | 410 |
;draw-knob JSR2 |
321 |
- .mixview/x1 PEK2 #0018 ADD2 DUP2r STH2r |
|
322 |
- .Audio0/adsr DEI #0f AND |
|
411 |
+ DUP2 .mix-view/x1 PEK2 #0010 ADD2 SWP2 |
|
412 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] DEI #0f AND |
|
323 | 413 |
;draw-knob JSR2 |
324 |
- .mixview/x1 PEK2 #0028 ADD2 DUP2r STH2r |
|
325 |
- .Audio0/adsr #01 ADD DEI #04 SFT |
|
414 |
+ DUP2 .mix-view/x1 PEK2 #0020 ADD2 SWP2 |
|
415 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] #01 ADD DEI #04 SFT |
|
326 | 416 |
;draw-knob JSR2 |
327 |
- .mixview/x1 PEK2 #0038 ADD2 DUP2r STH2r |
|
328 |
- .Audio0/adsr #01 ADD DEI #0f AND |
|
417 |
+ DUP2 .mix-view/x1 PEK2 #0030 ADD2 SWP2 |
|
418 |
+ .Audio0/adsr [ DUPr STHr #10 MUL ADD ] #01 ADD DEI #0f AND |
|
329 | 419 |
;draw-knob JSR2 |
330 |
- |
|
331 |
- .mixview/x1 PEK2 #0048 ADD2 DUP2r STH2r |
|
332 |
- #00 ;draw-switch JSR2 |
|
333 |
- |
|
420 |
+ ( once/repeat ) |
|
421 |
+ DUP2 .mix-view/x1 PEK2 #0040 ADD2 SWP2 |
|
422 |
+ .modes [ DUPr STHr ADD ] PEK ;draw-switch JSR2 |
|
334 | 423 |
( volume ) |
335 |
- .mixview/x1 PEK2 #0058 ADD2 DUP2r STH2r |
|
336 |
- .Audio0/volume DEI #04 SFT |
|
424 |
+ DUP2 .mix-view/x1 PEK2 #0050 ADD2 SWP2 |
|
425 |
+ .Audio0/volume [ DUPr STHr #10 MUL ADD ] DEI #04 SFT |
|
337 | 426 |
;draw-knob JSR2 |
338 |
- .mixview/x1 PEK2 #0068 ADD2 DUP2r STH2r |
|
339 |
- .Audio0/volume DEI #0f AND |
|
427 |
+ DUP2 .mix-view/x1 PEK2 #0060 ADD2 SWP2 |
|
428 |
+ .Audio0/volume [ DUPr STHr #10 MUL ADD ] DEI #0f AND |
|
340 | 429 |
;draw-knob JSR2 |
341 |
- |
|
342 |
- |
|
343 |
- POP |
|
344 |
- POP2r |
|
345 |
- ( once/repeat interface ) |
|
430 |
+ POP2 |
|
431 |
+ POPr |
|
346 | 432 |
|
347 | 433 |
RTN |
348 | 434 |
|
... | ... |
@@ -351,13 +437,13 @@ RTN |
351 | 437 |
( load ) .knob/value POK .knob/y POK2 .knob/x POK2 |
352 | 438 |
|
353 | 439 |
.knob/x PEK2 .Screen/x DEO2 |
354 |
- .knob/y PEK2 .Screen/y DEO2 ;knob_icns .Screen/addr DEO2 #21 .Screen/color DEO |
|
355 |
- .knob/x PEK2 8+ .Screen/x DEO2 ;knob_icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO |
|
356 |
- .knob/y PEK2 8+ .Screen/y DEO2 ;knob_icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO |
|
357 |
- .knob/x PEK2 .Screen/x DEO2 ;knob_icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO |
|
440 |
+ .knob/y PEK2 .Screen/y DEO2 ;knob-icns .Screen/addr DEO2 #21 .Screen/color DEO |
|
441 |
+ .knob/x PEK2 8+ .Screen/x DEO2 ;knob-icns 8+ .Screen/addr DEO2 #21 .Screen/color DEO |
|
442 |
+ .knob/y PEK2 8+ .Screen/y DEO2 ;knob-icns #0018 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO |
|
443 |
+ .knob/x PEK2 .Screen/x DEO2 ;knob-icns #0010 ADD2 .Screen/addr DEO2 #21 .Screen/color DEO |
|
358 | 444 |
.knob/x PEK2 #00 #00 .knob/value PEK ;knob-offsetx ADD2 LDA ADD2 .Screen/x DEO2 |
359 | 445 |
.knob/y PEK2 #00 #00 .knob/value PEK ;knob-offsety ADD2 LDA ADD2 .Screen/y DEO2 |
360 |
- ;knob_icns #0020 ADD2 .Screen/addr DEO2 |
|
446 |
+ ;knob-icns #0020 ADD2 .Screen/addr DEO2 |
|
361 | 447 |
#25 .Screen/color DEO |
362 | 448 |
.knob/x PEK2 #0004 ADD2 .Screen/x DEO2 |
363 | 449 |
.knob/y PEK2 #0010 ADD2 .Screen/y DEO2 |
... | ... |
@@ -368,24 +454,28 @@ RTN |
368 | 454 |
|
369 | 455 |
@draw-switch ( x* y* value -- ) |
370 | 456 |
|
371 |
- POP ( TODO: use value for toggle position ) |
|
457 |
+ STH |
|
458 |
+ |
|
372 | 459 |
.Screen/y DEO2 |
373 | 460 |
.Screen/x DEO2 |
374 |
- ;switch .Screen/addr DEO2 |
|
375 |
- #21 .Screen/color DEO |
|
461 |
+ |
|
462 |
+ DUPr STHr #20 MUL #00 SWP ;switch-icns ADD2 ( keep in stack ) |
|
463 |
+ |
|
464 |
+ DUP2 .Screen/addr DEO2 |
|
465 |
+ #21 DUPr STHr ADD .Screen/color DEO |
|
376 | 466 |
|
377 | 467 |
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
378 |
- ;switch #0008 ADD2 .Screen/addr DEO2 |
|
379 |
- #21 .Screen/color DEO |
|
468 |
+ DUP2 #0008 ADD2 .Screen/addr DEO2 |
|
469 |
+ #21 DUPr STHr ADD .Screen/color DEO |
|
380 | 470 |
|
381 | 471 |
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 |
382 | 472 |
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2 |
383 |
- ;switch #0010 ADD2 .Screen/addr DEO2 |
|
384 |
- #21 .Screen/color DEO |
|
473 |
+ DUP2 #0010 ADD2 .Screen/addr DEO2 |
|
474 |
+ #21 DUPr STHr ADD .Screen/color DEO |
|
385 | 475 |
|
386 | 476 |
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
387 |
- ;switch #0018 ADD2 .Screen/addr DEO2 |
|
388 |
- #21 .Screen/color DEO |
|
477 |
+ #0018 ADD2 .Screen/addr DEO2 |
|
478 |
+ #21 STHr ADD .Screen/color DEO |
|
389 | 479 |
|
390 | 480 |
RTN |
391 | 481 |
|
... | ... |
@@ -417,8 +507,8 @@ RTN |
417 | 507 |
|
418 | 508 |
DUPr STHr |
419 | 509 |
|
420 |
- DUP #04 DIV SWP #04 MOD TOS PAD-WIDTH MUL2 ( center ) .padview/x1 PEK2 ADD2 |
|
421 |
- ROT TOS PAD-HEIGHT MUL2 ( center ) .padview/y1 PEK2 ADD2 |
|
510 |
+ DUP #04 DIV SWP #04 MOD TOS PAD-WIDTH MUL2 ( center ) .pad-view/x1 PEK2 ADD2 |
|
511 |
+ ROT TOS PAD-HEIGHT MUL2 ( center ) .pad-view/y1 PEK2 ADD2 |
|
422 | 512 |
|
423 | 513 |
( draw outline ) |
424 | 514 |
OVR2 OVR2 |
... | ... |
@@ -433,16 +523,75 @@ RTN |
433 | 523 |
;pad-name DUPr STHr TOS #0005 MUL2 ADD2 |
434 | 524 |
;draw-label-left JSR2 |
435 | 525 |
|
526 |
+ ( draw note ) |
|
527 |
+ OVR2 #0002 ADD2 .Screen/x DEO2 |
|
528 |
+ DUP2 #0014 ADD2 .Screen/y DEO2 |
|
529 |
+ OVRr STHr TOS ;pad-pitch ADD2 LDA |
|
530 |
+ #0c MOD TOS #0008 MUL2 ;font-num-uc #0030 ADD2 ADD2 .Screen/addr DEO2 |
|
531 |
+ #21 .Screen/color DEO |
|
532 |
+ |
|
533 |
+ ( draw octave ) |
|
534 |
+ OVR2 #000a ADD2 .Screen/x DEO2 |
|
535 |
+ DUP2 #0014 ADD2 .Screen/y DEO2 |
|
536 |
+ OVRr STHr TOS ;pad-pitch ADD2 LDA |
|
537 |
+ #0c DIV TOS #0008 MUL2 ;font-num-uc #0030 ADD2 ADD2 .Screen/addr DEO2 |
|
538 |
+ #21 .Screen/color DEO |
|
539 |
+ |
|
436 | 540 |
POP2 POP2 |
437 | 541 |
|
438 | 542 |
POPr POPr |
439 | 543 |
|
440 | 544 |
RTN |
441 | 545 |
|
546 |
+@draw-octave ( -- ) |
|
547 |
+ |
|
548 |
+ .oct-view/x1 PEK2 .oct-view/y1 PEK2 |
|
549 |
+ |
|
550 |
+ OVR2 OVR2 ;keys-left-icns #21 .last-note PEK #00 EQU ADD ;draw-key JSR2 |
|
551 |
+ OVR2 8+ OVR2 ;keys-middle-icns #21 .last-note PEK #01 EQU ADD ;draw-key JSR2 |
|
552 |
+ OVR2 #0010 ADD2 OVR2 ;keys-right-icns #21 .last-note PEK #02 EQU ADD ;draw-key JSR2 |
|
553 |
+ OVR2 #0018 ADD2 OVR2 ;keys-left-icns #21 .last-note PEK #03 EQU ADD ;draw-key JSR2 |
|
554 |
+ OVR2 #0020 ADD2 OVR2 ;keys-middle-icns #21 .last-note PEK #04 EQU ADD ;draw-key JSR2 |
|
555 |
+ OVR2 #0028 ADD2 OVR2 ;keys-middle-icns #21 .last-note PEK #05 EQU ADD ;draw-key JSR2 |
|
556 |
+ SWP2 #0030 ADD2 SWP2 ;keys-right-icns #21 .last-note PEK #06 EQU ADD ;draw-key JSR2 |
|
557 |
+ |
|
558 |
+ .oct-view/x1 PEK2 #0040 ADD2 .Screen/x DEO2 |
|
559 |
+ |
|
560 |
+ ;arrow-icns .Screen/addr DEO2 |
|
561 |
+ .oct-view/y1 PEK2 .Screen/y DEO2 |
|
562 |
+ #21 .Screen/color DEO |
|
563 |
+ |
|
564 |
+ ;arrow-icns 8+ .Screen/addr DEO2 |
|
565 |
+ .oct-view/y1 PEK2 #0010 ADD2 .Screen/y DEO2 |
|
566 |
+ #21 .Screen/color DEO |
|
567 |
+ |
|
568 |
+ ;font-hex .piano/octave PEK #03 ADD #00 SWP #0008 MUL2 ADD2 .Screen/addr DEO2 |
|
569 |
+ .oct-view/y1 PEK2 8+ .Screen/y DEO2 |
|
570 |
+ #23 .Screen/color DEO |
|
571 |
+ |
|
572 |
+RTN |
|
573 |
+ |
|
574 |
+@draw-key ( x* y* addr* color -- ) |
|
575 |
+ |
|
576 |
+ STH |
|
577 |
+ .Screen/addr DEO2 |
|
578 |
+ SWP2 .Screen/x DEO2 |
|
579 |
+ DUP2 #0018 ADD2 |
|
580 |
+ &loop |
|
581 |
+ ( move ) OVR2 .Screen/y DEO2 |
|
582 |
+ ( draw ) DUPr STHr .Screen/color DEO |
|
583 |
+ ( incr ) .Screen/addr DEI2 8+ .Screen/addr DEO2 |
|
584 |
+ ( incr ) SWP2 8+ SWP2 |
|
585 |
+ OVR2 OVR2 LTH2 ,&loop JNZ |
|
586 |
+ POP2 POP2 |
|
587 |
+ POPr |
|
588 |
+ |
|
589 |
+RTN |
|
590 |
+ |
|
442 | 591 |
@draw-cursor ( -- ) |
443 | 592 |
|
444 | 593 |
( clear last cursor ) |
445 |
- ;clear .Screen/addr DEO2 |
|
594 |
+ #fff8 .Screen/addr DEO2 |
|
446 | 595 |
.pointer/x PEK2 .Screen/x DEO2 |
447 | 596 |
.pointer/y PEK2 .Screen/y DEO2 |
448 | 597 |
#30 .Screen/color DEO |
... | ... |
@@ -450,7 +599,7 @@ RTN |
450 | 599 |
.Mouse/x DEI2 .pointer/x POK2 |
451 | 600 |
.Mouse/y DEI2 .pointer/y POK2 |
452 | 601 |
( draw new cursor ) |
453 |
- ;cursor .Screen/addr DEO2 |
|
602 |
+ ;cursor-icn .Screen/addr DEO2 |
|
454 | 603 |
.pointer/x PEK2 .Screen/x DEO2 |
455 | 604 |
.pointer/y PEK2 .Screen/y DEO2 |
456 | 605 |
( colorize on state ) |
... | ... |
@@ -533,31 +682,68 @@ RTN |
533 | 682 |
"PAD1 $1 "SYN1 $1 "SYN2 $1 "CYM1 $1 ( short ) |
534 | 683 |
"HHAT $1 "OHAT $1 "CHAT $1 "RIDE $1 |
535 | 684 |
"SID1 $1 "SNR1 $1 "SNR2 $1 "SID2 $1 ( long ) |
536 |
- "BDR1 $1 "KCK1 $1 "KCK2 $1 "BDR2 $1 ] |
|
685 |
+ "BDR1 $1 "KCK1 $1 "KCK2 $1 "SUB1 $1 ] |
|
537 | 686 |
|
538 | 687 |
@pad-addr [ |
539 |
- 4000 4400 4800 4c00 |
|
688 |
+ 5000 5400 5800 5c00 |
|
540 | 689 |
5000 5800 6000 6800 |
541 | 690 |
7000 7800 8000 8800 |
542 | 691 |
9000 b000 d000 f000 $2 ] |
543 | 692 |
|
544 |
-@pad-length [ |
|
545 |
- 0800 0800 0800 0800 |
|
546 |
- 0800 0800 0800 0800 |
|
547 |
- 0800 0800 0800 0800 |
|
548 |
- 0800 0800 0800 0800 $2 ] |
|
693 |
+@pad-pitch [ |
|
694 |
+ 30 30 30 30 |
|
695 |
+ 30 30 30 30 |
|
696 |
+ 30 30 30 30 |
|
697 |
+ 30 30 30 30 ] |
|
549 | 698 |
|
550 | 699 |
@pad-path [ |
551 |
- "projects/sounds/pad1.ss8 $1 "projects/sounds/syn1.ss8 $1 |
|
552 |
- "projects/sounds/syn2.ss8 $1 "projects/sounds/cym1.ss8 $1 |
|
553 |
- "projects/sounds/hhat.ss8 $1 "projects/sounds/ohat.ss8 $1 |
|
554 |
- "projects/sounds/chat.ss8 $1 "projects/sounds/ride.ss8 $1 |
|
555 |
- "projects/sounds/sid1.ss8 $1 "projects/sounds/snr1.ss8 $1 |
|
556 |
- "projects/sounds/snr2.ss8 $1 "projects/sounds/sid2.ss8 $1 |
|
557 |
- "projects/sounds/bdr1.ss8 $1 "projects/sounds/kck1.ss8 $1 |
|
558 |
- "projects/sounds/kck2.ss8 $1 "projects/sounds/bdr2.ss8 $1 ] |
|
559 |
- |
|
560 |
-@knob_icns [ |
|
700 |
+ "projects/sounds/pad1.pcm $1 "projects/sounds/syn1.pcm $1 |
|
701 |
+ "projects/sounds/syn2.pcm $1 "projects/sounds/cym1.pcm $1 |
|
702 |
+ "projects/sounds/hhat.pcm $1 "projects/sounds/ohat.pcm $1 |
|
703 |
+ "projects/sounds/chat.pcm $1 "projects/sounds/ride.pcm $1 |
|
704 |
+ "projects/sounds/sid1.pcm $1 "projects/sounds/snr1.pcm $1 |
|
705 |
+ "projects/sounds/snr2.pcm $1 "projects/sounds/sid2.pcm $1 |
|
706 |
+ "projects/sounds/bdr1.pcm $1 "projects/sounds/kck1.pcm $1 |
|
707 |
+ "projects/sounds/kck2.pcm $1 "projects/sounds/sub1.pcm $1 ] |
|
708 |
+ |
|
709 |
+@notes [ |
|
710 |
+ 3c 3e 40 41 43 45 47 |
|
711 |
+ 48 4a 4c 4d 4f 51 53 ] |
|
712 |
+ |
|
713 |
+@cursor-icn [ |
|
714 |
+ 80c0 e0f0 f8e0 1000 ] |
|
715 |
+ |
|
716 |
+@keys-left-icns [ |
|
717 |
+ 7c7c 7c7c 7c7c 7c7c |
|
718 |
+ 7c7c 7c7c 7c7c 7e7f |
|
719 |
+ 7f7f 7f7f 7f7f 3e00 ] |
|
720 |
+ |
|
721 |
+@keys-middle-icns [ |
|
722 |
+ 1c1c 1c1c 1c1c 1c1c |
|
723 |
+ 1c1c 1c1c 1c1c 3e7f |
|
724 |
+ 7f7f 7f7f 7f7f 3e00 ] |
|
725 |
+ |
|
726 |
+@keys-right-icns [ |
|
727 |
+ 1f1f 1f1f 1f1f 1f1f |
|
728 |
+ 1f1f 1f1f 1f1f 3f7f |
|
729 |
+ 7f7f 7f7f 7f7f 3e00 ] |
|
730 |
+ |
|
731 |
+@arrow-icns [ |
|
732 |
+ 0010 387c fe10 1000 |
|
733 |
+ 0010 1010 fe7c 3810 ] |
|
734 |
+ |
|
735 |
+@switch-icns [ |
|
736 |
+ 001f 2040 4040 4040 |
|
737 |
+ 00f8 0402 0202 0202 |
|
738 |
+ 404f 5f5f 4f20 1f00 |
|
739 |
+ 02f2 fafa f204 f800 |
|
740 |
+ 001f 204f 5f5f 4f40 |
|
741 |
+ 00f8 04f2 fafa f202 |
|
742 |
+ 4040 4040 4020 1f00 |
|
743 |
+ 0202 0202 0204 f800 |
|
744 |
+] |
|
745 |
+ |
|
746 |
+@knob-icns [ |
|
561 | 747 |
0003 0c10 2020 4040 |
562 | 748 |
00c0 3008 0404 0202 |
563 | 749 |
4040 2020 100c 0300 |
... | ... |
@@ -572,12 +758,6 @@ RTN |
572 | 758 |
07 06 05 03 02 01 00 00 |
573 | 759 |
00 00 01 02 03 05 06 07 ] |
574 | 760 |
|
575 |
-@clear [ |
|
576 |
- 0000 0000 0000 0000 ] |
|
577 |
- |
|
578 |
-@cursor [ |
|
579 |
- 80c0 e0f0 f8e0 1000 ] |
|
580 |
- |
|
581 | 761 |
@meter [ |
582 | 762 |
0000 0000 0000 0000 |
583 | 763 |
0000 0000 0000 0070 |
... | ... |
@@ -596,17 +776,6 @@ RTN |
596 | 776 |
707e 7e7e 7e7e 7e7e |
597 | 777 |
7e7e 7e7e 7e7e 7e7e ] |
598 | 778 |
|
599 |
-@switch [ |
|
600 |
- 001f 204f 5f5f 4f40 |
|
601 |
- 00f8 04f2 fafa f202 |
|
602 |
- 4040 4040 4020 1f00 |
|
603 |
- 0202 0202 0204 f800 |
|
604 |
- 0000 0000 0000 0000 |
|
605 |
- 0000 0000 0000 0000 |
|
606 |
- 0000 0000 0000 0000 |
|
607 |
- 0000 0000 0000 0000 |
|
608 |
-] |
|
609 |
- |
|
610 | 779 |
@font-hex ( 0-F ) |
611 | 780 |
[ |
612 | 781 |
007c 8282 8282 827c 0030 1010 1010 1010 |
642 | 811 |
new file mode 100644 |
... | ... |
@@ -0,0 +1 @@ |
1 |
+�������������������������������������������������������������������������������������������������������������������������������� |
|
0 | 2 |
\ No newline at end of file |