~rabbits/orca-toy

939ea19e881ecc336a83bbe5f5bb9c9b2fc4b050 — neauoire 1 year, 1 month ago 75daef0
Optimized synth
1 files changed, 9 insertions(+), 8 deletions(-)

M src/main.tal
M src/main.tal => src/main.tal +9 -8
@@ 1068,14 1068,15 @@ RTN

@op-synth ( x y char -- ) ( TODO )

	POP
	( get channel ) DUP2 [ SWP INC SWP ] GET-PORT-RIGHT STH
	( get octave ) DUP2 [ SWP #02 + SWP ] GET-PORT-RIGHT [ #0c * ] STH
	( get note ) DUP2 [ SWP #03 + SWP ] GET-PORT-RIGHT-RAW
		( req note ) DUP CHAR-DOT ! ,&is-active JCN [ POP POP2 POP2r RTN ] &is-active GET-NOTE STH ADDr
	( req bang ) ;get-bang JSR2 ,&is-bang [ JCN POP2 POP2r RTN ] &is-bang
	STHr .Audio0/pitch STHr 4MOD 10* + DEO
	IO-TYPE SET-TYPE
	POP POP2
	.head/addr LDZ2 STH2k
	( channel ) INC2 ;get-port-right-value JSR2 [ ,&ch STR ]
	( octave ) STH2kr #0002 ++ ;get-port-right-value JSR2
	( note ) STH2r #0003 ++ ;get-port-right-raw JSR2
	( has note ) DUP CHAR-DOT ! ,&has-note JCN [ POP2 RTN ] &has-note
	( has bang ) ;get-bang JSR2 ,&is-bang JCN [ POP2 RTN ] &is-bang
	( get note ) GET-NOTE SWP [ #0c * ] +
	( play ) .Audio0/pitch [ LIT &ch $1 ] 4MOD 10* + DEO

RTN