Browse code

(piano.tal) Improved knobs

Devine Lu Linvega authored on 28/02/2023 03:18:37
Showing 1 changed files
... ...
@@ -93,6 +93,7 @@ BRK
93 93
 @on-control ( -> )
94 94
 
95 95
 	.Controller/key DEI
96
+	( octave )
96 97
 	[ LIT "a ] NEQk NIP ?&no-c #30 .octave LDZ #0c MUL ADD play &no-c
97 98
 	[ LIT "w ] NEQk NIP ?&no-c# #31 .octave LDZ #0c MUL ADD play &no-c#
98 99
 	[ LIT "s ] NEQk NIP ?&no-d #32 .octave LDZ #0c MUL ADD play &no-d
... ...
@@ -106,6 +107,9 @@ BRK
106 107
 	[ LIT "u ] NEQk NIP ?&no-a# #3a .octave LDZ #0c MUL ADD play &no-a#
107 108
 	[ LIT "j ] NEQk NIP ?&no-b #3b .octave LDZ #0c MUL ADD play &no-b
108 109
 	[ LIT "k ] NEQk NIP ?&no-c2 #3c .octave LDZ #0c MUL ADD play &no-c2
110
+	( controls )
111
+	[ LIT "z ] NEQk NIP ?&no-dec .octave LDZk #01 SUB SWP STZ &no-dec
112
+	[ LIT "x ] NEQk NIP ?&no-inc .octave LDZk INC SWP STZ &no-inc
109 113
 	[ #1b ] NEQk NIP ?&no-esc #010f DEO &no-esc
110 114
 	POP
111 115
 
... ...
@@ -153,7 +157,7 @@ BRK
153 157
 	.Mouse/x DEI2 .Mouse/y DEI2 .wave-view within-rect
154 158
 		?on-touch-wave-view
155 159
 	.Mouse/x DEI2 .Mouse/y DEI2 .adsr-view within-rect
156
-		?on-touch-adsr-view
160
+		?on-touch-knobs-view
157 161
 	.Mouse/x DEI2 .Mouse/y DEI2 .octave-view within-rect
158 162
 		?on-touch-octave-view
159 163
 
... ...
@@ -190,31 +194,39 @@ BRK
190 194
 
191 195
 BRK
192 196
 
193
-@on-touch-adsr-view ( -> )
197
+@on-touch-knobs-view ( -> )
194 198
 
195 199
 	.Mouse/x DEI2 .adsr-view/x1 LDZ2 SUB2 #03 SFT2 NIP #03 DIV
196
-	[ #00 ] NEQk NIP ?&no-a
197
-		.Audio0/adsr DEI touch2 .Audio0/adsr DEO &no-a
198
-	[ #01 ] NEQk NIP ?&no-d
199
-		.Audio0/adsr DEI touch .Audio0/adsr DEO &no-d
200
-	[ #02 ] NEQk NIP ?&no-s
201
-		.Audio0/adsr INC DEI touch2 .Audio0/adsr INC DEO &no-s
202
-	[ #03 ] NEQk NIP ?&no-r
203
-		.Audio0/adsr INC DEI touch .Audio0/adsr INC DEO &no-r
204
-	[ #05 ] NEQk NIP ?&no-left
205
-		.Audio0/volume DEI touch2 .Audio0/volume DEO &no-left
206
-	[ #06 ] NEQk NIP ?&no-right
207
-		.Audio0/volume DEI touch .Audio0/volume DEO &no-right
208
-	POP
200
+	.Mouse/y DEI2 .adsr-view/y1 LDZ2 SUB2 NIP
201
+	OVR #04 LTH ?on-touch-adsr
202
+	OVR #04 GTH ?on-touch-vol
203
+	POP2
204
+
205
+BRK
206
+
207
+@on-touch-adsr ( knob value -> )
208
+
209
+	STH2
210
+	( mask ) #ffff #000f #03 OVRr STHr SUB #60 SFT SFT2 EOR2
211
+		.Audio0/adsr DEI2 AND2
212
+	( value ) #000f STHr OVR LTHk JMP SWP POP SUB
213
+	( shift ) #03 STHr SUB #60 SFT SFT2 ORA2
214
+	.Audio0/adsr DEO2
215
+	draw-adsr
216
+
217
+BRK
218
+
219
+@on-touch-vol ( knob value -> )
209 220
 
210
-	( release ) #00 .Mouse/state DEO
221
+	SWP #03 SUB INC INC SWP STH2
222
+	( mask ) #0f OVRr STHr #60 SFT SFT
223
+		.Audio0/volume DEI AND
224
+	( value ) #0f STHr OVR LTHk JMP SWP POP SUB
225
+	( shift ) #01 STHr SUB #20 SFT #40 SFT SFT ORA
226
+	.Audio0/volume DEO
211 227
 	draw-adsr
212 228
 
213 229
 BRK
214
-@touch
215
-	DUP #f0 AND STH #01 .Mouse/state DEI #01 GTH #0e MUL ADD ADD #0f AND STHr ADD JMP2r
216
-@touch2
217
-	#10 .Mouse/state DEI #01 GTH #e0 MUL ADD ADD JMP2r
218 230
 
219 231
 (
220 232
 @|core )