Jump to content

Trying to display past value.


slo
 Share

Recommended Posts

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"

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...