Noob here trying to come up with a scheme to display past values alongside current active values from an encoder.
The code below demonstrates the problem I’m having. Setting encoder 1 in bank 2 and then switching back between banks produces the desired result, but in bank 1 it looks like the past value is getting over written so encoder 1 bank 1 is not displayed. Using a SSD 1306 display. Below is the .ngc ,ngr .ngl
I need a better scheme or hints to the path forward. Thanks.
RESET\_HW LCD "%C@(9:1:1)GLCD Test" #increments/decrements the bank EVENT\_ENC id=65 hw\_id= 65 type=Meta meta=SetBank range=1:2 meta=RunSection:1 #This is a dummy LED without assigned hardware (hw\_id=2000 not used anywhere else) and without MIDI event. #the purpose of this EVENT item is to print the bank whenever the LCD is refreshed EVENT\_LED id=2000 fwd\_to\_lcd=1 lcd\_pos=9:17:1 label="Bank%q" ###Bank 1 EVENT\_ENC id=1 hw\_id=1 bank= 1 fwd\_id=LED\_MATRIX:1 LED\_MATRIX\_PATTERN n= 1 range= 16:122 type= cc chn=1 cc= 20 lcd\_pos=1:1:2 label="&bOSC1 Ran@(1:6:6)&b^range " EVENT\_ENC id=2 hw\_id=2 bank= 1 fwd\_id=LED\_MATRIX:2 LED\_MATRIX\_PATTERN n= 1 range= 0:127 type= cc chn=1 cc= 21 lcd\_pos=1:1:2 label="&bLFO Rate@(1:6:6)&b ^volume" ###Bank 2 EVENT\_ENC id=17 hw\_id=1 bank= 2 fwd\_id=LED\_MATRIX:1 LED\_MATRIX\_PATTERN n= 1 range= 16:122 type= cc chn=1 cc= 32 lcd\_pos=1:1:2 label="&bOSC2 Ran@(1:6:6)&b^range " ###Inactive encoders bank 2 EVENT\_ENC id=4001 hw\_id=2 bank= 2 fwd\_id=LED\_MATRIX:2 LED\_MATRIX\_PATTERN n= 4 value= 64 ###print past values EVENT\_LED id=1001 bank= 1 fwd\_to\_lcd=1 lcd\_pos=1:1:6 label="&b^range " EVENT\_LED id=1002 bank= 1 fwd\_to\_lcd=1 lcd\_pos=1:1:6 label="&b^volume" EVENT\_LED id=1017 bank= 2 fwd\_to\_lcd=1 lcd\_pos=1:1:6 label="&b^range " # encoder hardware configuration ENC n= 1 sr= 1 pins=0:1 type=non\_detented ENC n= 2 sr= 1 pins=2:3 type=non\_detented ENC n= 65 sr= 6 pins=0:1 type=non\_detented # LEDring configuration # NOTE: with ULN2803 based transistor arrays we've to invert the selection lines! # -\> inverted=1 # if you don't use these arrays, please set inverted=0 DOUT\_MATRIX n= 1 rows=16 inverted=1 sr\_dout\_sel1= 1 sr\_dout\_sel2= 2 sr\_dout\_r1= 3 sr\_dout\_r2= 4 sr\_dout\_g1= 0 sr\_dout\_g2= 0 sr\_dout\_b1= 0 sr\_dout\_b2= 0 # modified ledring patterns for 16 LEDs # LED\_MATRIX\_PATTERNs LED\_MATRIX\_PATTERN n= 1 pos= 0 pattern=1000000000000000 LED\_MATRIX\_PATTERN n= 1 pos= 1 pattern=1100000000000000 LED\_MATRIX\_PATTERN n= 1 pos= 2 pattern=1110000000000000 LED\_MATRIX\_PATTERN n= 1 pos= 3 pattern=1111000000000000 LED\_MATRIX\_PATTERN n= 1 pos= 4 pattern=1111100000000000 LED\_MATRIX\_PATTERN n= 1 pos= 5 pattern=1111110000000000 LED\_MATRIX\_PATTERN n= 1 pos= 6 pattern=1111111000000000 LED\_MATRIX\_PATTERN n= 1 pos= 7 pattern=1111111100000000 LED\_MATRIX\_PATTERN n= 1 pos= M pattern=1111111110000000 LED\_MATRIX\_PATTERN n= 1 pos= 8 pattern=1111111110000000 LED\_MATRIX\_PATTERN n= 1 pos= 9 pattern=1111111111000000 LED\_MATRIX\_PATTERN n= 1 pos=10 pattern=1111111111100000 LED\_MATRIX\_PATTERN n= 1 pos=11 pattern=1111111111110000 LED\_MATRIX\_PATTERN n= 1 pos=12 pattern=1111111111111000 LED\_MATRIX\_PATTERN n= 1 pos=13 pattern=1111111111111100 LED\_MATRIX\_PATTERN n= 1 pos=14 pattern=1111111111111110 LED\_MATRIX\_PATTERN n= 1 pos=15 pattern=1111111111111111 LED\_MATRIX\_PATTERN n= 4 pos= 0 pattern=0111110000000000 LED\_MATRIX\_PATTERN n= 4 pos= 1 pattern=0111110000000000 LED\_MATRIX\_PATTERN n= 4 pos= 2 pattern=0111110000000000 LED\_MATRIX\_PATTERN n= 4 pos= 3 pattern=0111110000000000 LED\_MATRIX\_PATTERN n= 4 pos= 4 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos= 5 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos= 6 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos= 7 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos= M pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos= 8 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos= 9 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos=10 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos=11 pattern=0000000000000000 LED\_MATRIX\_PATTERN n= 4 pos=12 pattern=0000000000111110 LED\_MATRIX\_PATTERN n= 4 pos=13 pattern=0000000000111110 LED\_MATRIX\_PATTERN n= 4 pos=14 pattern=0000000000111110 LED\_MATRIX\_PATTERN n= 4 pos=15 pattern=0000000000111110
################################################## ###Note that ^section == 0 is called after boot### #### Section 0 #### if ^section == 0 log "running section0" #initialize all banks to 1 log "call bank 1 for all parameters" set ^bank 1 exec\_meta RunSection:1 exit endif ##################################### ### Store encoder values bank 1 ### if ^bank == 1 LOG "First Bank" set LED:1001 ENC:1 set LED:1002 ENC:2 ##################################### ### Store encoder values bank 2 ### elsif ^bank == 2 LOG "Second Bank" set LED:1017 ENC:1 endif exit
COND\_LABEL range COND \<30 "Lo " COND \<50 "32'" COND \<75 "16'" COND \<100 "8'" COND \<110 "4'" COND \<122 "2'" COND\_ELSE "2'" COND\_LABEL volume COND \<5 "0 " COND \<10 "1 " COND \<21 "2 " COND \<43 "3 " COND \<50 "4 " COND \<64 "5 " COND \<75 "6 " COND \<85 "7 " COND \<106 "8 " COND \<112 "9 " COND \<127 "10" COND\_ELSE "10"