uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit f59537d993b201797be8e8503020b68a45143e03
parent d111146eb6a2cdc6f62397b4f0710fb5842c0b31
Author: neauoire <aliceffekt@gmail.com>
Date:   Sun, 15 Aug 2021 18:03:34 -0700

Use NEQk NIP pattern for piano

Diffstat:
Mprojects/examples/demos/piano.tal | 33+++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/projects/examples/demos/piano.tal b/projects/examples/demos/piano.tal @@ -4,6 +4,7 @@ %< { LTH } %> { GTH } %= { EQU } %! { NEQ } %++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } %<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } +%!~ { NEQk NIP } %RTN { JMP2r } %TOS { #00 SWP } @@ -114,21 +115,21 @@ BRK #40 .Screen/sprite DEO .Controller/key DEI - DUP #61 ! ,&no-c JCN + [ LIT 'a ] !~ ,&no-c JCN #30 .octave LDZ #0c * + ;play JSR2 &no-c - DUP #73 ! ,&no-d JCN + [ LIT 's ] !~ ,&no-d JCN #32 .octave LDZ #0c * + ;play JSR2 &no-d - DUP #64 ! ,&no-e JCN + [ LIT 'd ] !~ ,&no-e JCN #34 .octave LDZ #0c * + ;play JSR2 &no-e - DUP #66 ! ,&no-f JCN + [ LIT 'f ] !~ ,&no-f JCN #35 .octave LDZ #0c * + ;play JSR2 &no-f - DUP #67 ! ,&no-g JCN + [ LIT 'g ] !~ ,&no-g JCN #37 .octave LDZ #0c * + ;play JSR2 &no-g - DUP #68 ! ,&no-a JCN + [ LIT 'h ] !~ ,&no-a JCN #39 .octave LDZ #0c * + ;play JSR2 &no-a - DUP #6a ! ,&no-b JCN + [ LIT 'j ] !~ ,&no-b JCN #3b .octave LDZ #0c * + ;play JSR2 &no-b - DUP #6b ! ,&no-c2 JCN + [ LIT 'k ] !~ ,&no-c2 JCN #3c .octave LDZ #0c * + ;play JSR2 &no-c2 POP @@ -185,10 +186,10 @@ BRK .Mouse/x DEI2 .octave-view/x1 LDZ2 -- 8// NIP #09 ! ,&no-mod JCN .Mouse/y DEI2 .octave-view/y1 LDZ2 -- 8// NIP - DUP #00 ! ,&no-incr JCN + [ #00 ] !~ ,&no-incr JCN .octave LDZ #03 = ,&no-incr JCN .octave LDZ #01 + .octave STZ &no-incr - DUP #02 ! ,&no-decr JCN + [ #02 ] !~ ,&no-decr JCN .octave LDZ #ff = ,&no-decr JCN .octave LDZ #01 - .octave STZ &no-decr POP @@ -208,27 +209,27 @@ BRK @on-touch-adsr-view ( -> ) .Mouse/x DEI2 .adsr-view/x1 LDZ2 -- 8// NIP #03 / - DUP #00 ! ,&no-a JCN + [ #00 ] !~ ,&no-a JCN .Audio0/adsr DEI #10 .Mouse/state DEI #10 = #e0 * + + .Audio0/adsr DEO &no-a - DUP #01 ! ,&no-d JCN + [ #01 ] !~ ,&no-d JCN .Audio0/adsr DEI DUP #f0 AND STH #01 .Mouse/state DEI #10 = #0e * + + #0f AND STHr + .Audio0/adsr DEO &no-d - DUP #02 ! ,&no-s JCN + [ #02 ] !~ ,&no-s JCN .Audio0/adsr #01 + DEI #10 .Mouse/state DEI #10 = #e0 * + + .Audio0/adsr #01 + DEO &no-s - DUP #03 ! ,&no-r JCN + [ #03 ] !~ ,&no-r JCN .Audio0/adsr #01 + DEI DUP #f0 AND STH #01 .Mouse/state DEI #10 = #0e * + + #0f AND STHr + .Audio0/adsr #01 + DEO &no-r - DUP #05 ! ,&no-left JCN + [ #05 ] !~ ,&no-left JCN .Audio0/volume DEI #10 .Mouse/state DEI #10 = #e0 * + + .Audio0/volume DEO &no-left - DUP #06 ! ,&no-right JCN + [ #06 ] !~ ,&no-right JCN .Audio0/volume DEI DUP #f0 AND STH #01 .Mouse/state DEI #10 = #0e * + + #0f AND STHr + .Audio0/volume DEO &no-right